web-dev-qa-db-ja.com

Linux用のC ++ gdb GUIはありますか?

簡単に言うと、最近のバージョンのVisual C++で得られる機能セットと同等またはそれに近い機能を提供するgdbのGUIを知っている人はいますか?

詳細:Windowsでのプログラミングに多くの時間を費やした人として、LinuxでC++をコーディングする必要があるたびに見つけた大きな障害の1つは、コマンドラインgdbを使用してデバッグを行うと、何倍も時間がかかることですVisual Studio、そしてそれは練習で良くなっていないようです。いくつかのことは、グラフィカルに表現するのが簡単または高速です。

具体的には、次のようなGUIを探しています。

  • コードのステップオーバーおよびコードへのステップイン、変数およびブレークポイントの監視など、すべての基本を処理します
  • 複雑でネストされたC++データ型の内容を理解し、表示できます
  • パラメータタイプなどの関連情報を表示しながら、テンプレートコードとデータ構造を混乱させず、インテリジェントにステップ実行できるのが望ましい
  • スレッド化されたアプリケーションを処理し、異なるスレッド間を切り替えて、ステップスルーまたは状態を表示できます
  • Gdbでプログラムを起動することに加えて、既に開始されたプロセスへのアタッチまたはコアダンプの読み取りを処理できます。

そのようなプログラムが存在しない場合は、少なくともいくつかの箇条書きを満たすプログラムで人々が経験したことを聞きたいと思います。誰にも推奨事項はありますか?

編集:
可能性をリストアップすることは素晴らしいことであり、私が得られるものを取り上げますが、回答に含めることができればさらに役立つでしょう:
(a)このGUIを実際に使用したかどうか、使用している場合は、どのような肯定的/否定的なフィードバックがありますか。
(b)ご存じの場合、上記の機能のどれがサポートされている/サポートされていないか

リストは簡単に入手できます。このようなサイトは、アプリケーションの人々の個人的な体験を知ることができるので素晴らしいです。

204
HappyDude

anythingが見つかりません。GDBをオーバーレイすると、Visual Studioデバッガーの生のパワーと競合できます。強力すぎるだけでなく、IDEに統合されすぎています。

Linuxの代替手段として、フリーソフトウェアがあなたのものであればDDDを試してください。

55
Vicent Marti

Eclipse CDTは、Visual Studioの使用に匹敵するエクスペリエンスを提供します。コードを記述し、ローカルおよびリモートプロセスをデバッグするために、Eclipse CDTを毎日使用しています。

EclipseベースのIDEの使用に慣れていない場合、GUIは少し慣れる必要があります。ただし、Eclipseに固有のGUIアイデア(パースペクティブなど)を理解したら、ツールを使用することは素晴らしい経験になります。

CDTツールは、適切なC/C++インデクサーを提供します。これにより、コードベースのメソッドへの参照をすばやく見つけることができます。また、Niceマクロ展開ツールと限定的なリファクタリングのサポートも提供します。

デバッグのサポートに関して、CDTはコアダンプの読み取りを除き、リスト内のすべてを実行できます(これをサポートする場合がありますが、この機能を使用したことはありません)。また、テンプレートを使用したコードのデバッグの経験は限られているため、この点に関してCDTがどのような経験を提供するのかわかりません。

Eclipse CDTを使用したデバッグの詳細については、次のガイドをご覧ください。

84
Jon Ball

gdb -tuiは、GUIに似た何かが必​​要な場合でも問題なく機能しますが、それでも文字ベースです。

78
Carleton

Nemiver C/C++ Debugger を確認してください。 Ubuntuへのインストールは簡単です(開発者ツール/デバッグ)。

更新:新しいリンク。

47
Sergey Shandar

Windows開発のアイデアは嫌いですが、VC++デバッガーは私が見た中で最高のものです。 VCに近いGUIフロントエンドが見つかりません。

GDBは、実際に慣れると素晴らしいものになります。それを十分に怒らせて使うと、あなたはとても上手になります。あなたがリストしたすべてのことを、それほど手間をかけずに行うプログラムをあちこち見て回ることができます。習熟するまでに、リモートサーバーへのSSHリンクで1か月ほどかかりました。私は二度と戻りません。

DDDは本当に強力ですが、かなりバグがありました。 GDBから理解できなかったというメッセージを受け取ったとき、フリーズすることが非常に頻繁にありました。 gdbインターフェースウィンドウがあり、何が起こっているかを確認したり、gdbと直接やり取りしたりできるので便利です。何らかの理由で、私の環境のリモートXセッションでDDDを使用することはできません(Unix開発を行うときにシンクライアントに座っているため、実際の問題です)。

KDevelopは典型的なKDEスタイルに従い、すべてをユーザーに公開しました。また、KDevelopで非KDevelopプログラムをデバッグすることもできませんでした。

Gnat Programming Studio(GPS)は、実際にはGDBの非常に優れたフロントエンドです。 Adaプロジェクトを管理するだけではないため、デバッガが必要な場合は試してみる価値があります。

Eclipseを使用することもできますが、非常に重く、私と一緒に働いた経験豊富なUnixの人々(私も含めて)の多くは、そのインターフェイスをあまり気にしません。 Eclipseも多くのスペースを占有し、犬のように走るようです。

29
Adam Hawes

Qt Creatorは良いもののようです。同僚がデバッグ用に設定する方法を1つ示してくれました。

  • 新しいプロジェクト「Makefileベースのプロジェクトのインポート」を作成します。
  • ルートプロジェクトフォルダーを指定します(その下にあるソースのインデックスが作成され、非常に高速です)。
  • プロジェクト設定に移動して実行構成を追加し、デバッグする実行可能ファイルとその引数を指定します。
  • Qt Creatorは、デバッグする前にプロジェクトをビルドするように主張しているようです。それが望ましくない場合、またはmakeを使用しない場合は、makeコマンドをオーバーライドできます。 「true」に変更しました。 :)

すでにコンパイルしたアプリをデバッグするのは少し大変なように思えるかもしれませんが、それだけの価値はあります。デバッガーは、Visual Studioと同様の方法でスレッド、スタック、ローカル変数を表示し、同じキーボードショートカットの多くを使用します。少なくともstd :: stringとstd :: mapのテンプレートをうまく処理しているようです。既存のプロセスとコアダンプへのアタッチはサポートされているようですが、まだテストしていません。

今は1時間未満しか使用していませんが、今のところ感心しています。

28
Soulman

シンプルで便利なgdbを使用します

26
cod

私はDDDを頻繁に使用しますが、DDDの使い方を学ぶと非常に強力です。私が言うことの1つは、XでWANを介して使用しないでください。多くの不必要な画面更新を行うようです。

また、GDBと交配しておらず、少額の現金を支払うことを気にしない場合は、TotalViewを試してみます。それは少し急な学習曲線を持っています(間違いなくより直感的かもしれません)が、それは私が今までどんなプラットフォームでも使用した中で最高のC++デバッガであり、カスタム方法でオブジェクトを内省するために拡張することができますオブジェクトの実際のリストとしてのSTLリストであり、混乱を招く内部データメンバなどの束ではありません)

16
Nick Bastin

Eclipse CDTプロジェクトを調べてください。これは、C/C++開発を対象としたEclipseのプラグインであり、かなり機能豊富なデバッグパースペクティブ(舞台裏ではGDBを使用)が含まれています。さまざまなプラットフォームで利用できます。

8
user14636

Eclipse gdbフロントエンドと同様に快適なのはemacsフロントエンドで、emacs IDEに緊密に結び付けられています。すでにemacsを使用している場合は、次のことを気に入るでしょう:

GDB Emacsフロントエンド

KDbgを使用しました(KDEでのみ動作します)。

6
codeguru

Qt Creator-on-Linuxは確かに、最近のC++のVisual Studio-on-Windowsと同等です。デバッガー側の方が良いとさえ言えます。

5
Marv

このリストにない、非常に効率的なIDEが1つあります(多くのC/C++プロジェクトで問題なく使用しています): Netbeans

5
Florent

DDDはgdbのGNUフロントエンドです。 http://www.gnu.org/software/ddd/

5
mmattax

私はgdbに対していくつかの異なるGUIを試してみましたが、DDDの方が優れていることがわかりました。また、Linux用の他の非gdb製品についてはコメントできませんが、他のプラットフォームでは他の多くのデバッガーを使用しました。

gdbは、ウィッシュリストにあるものの大部分を実行します。 DDDはそれらにより良いフロントを置きます。たとえば、スレッドの切り替えがより簡単になります。ブレークポイントの設定は、予想どおり簡単です。

また、やりたいことがはっきりしないものがある場合は、cliウィンドウを取得します。

私が使用した他のどのデバッガよりも優れているDDDの機能の1つは、データの「グラフ化」です。これにより、構造、オブジェクト、およびメモリをドラッグ可能なボックスとして表示および配置できます。ポインターをダブルクリックすると、参照解除されたデータが開き、親への視覚的なリンクが表示されます。

5

DS-5デバッガー を見たことはありますか?

多くの便利な機能を含む有料版がありますが、Community Editionを無料で使用することもできます(特に組み込みシステムでは非常に便利です)。

Eclipseを使用して実際のデバイスでAndroidアプリケーションをデバッグするときに、このツールで良い経験があります。

3
Viktor Malyi

Visual Studioに精通している人として、私はいくつかのオープンソースIDEを見て、それを置き換えました。プロジェクトをデバッグモードで実行すると、gdbが使用されますが、kdevelopはほとんどすべてを処理するため、gdbであることを知る必要はありません。単一のステップ実行またはウォッチを変数に割り当てるだけです。

残念ながら、まだVisual Studio Debuggerほど優れていません。

3
Dennis Ferron

Windowsを使用しているかUNIXを使用しているかは言及しません。

UNIXシステムでは、 KDevelop は良いですが、私は KDbg を使用します。これは使いやすく、KDevelopで開発されていないアプリでも動作するためです。

Eclipse は両方のプラットフォームで適切です。

Windowsには、 Wascana Desktop Developer という素晴らしいパッケージがあります。これは、Eclipse CDTおよびMinGWがすべてパッケージ化され、最小限の苦労でうまく構成されています。 WindowsでGNUコードを開発するために見つけた最高のものです。

これらのデバッガーをすべて使用しましたが、いずれもMS Dev Studioほど優れたものではありません。 Eclipse/Wascanaはおそらく最も近いかもしれませんが、DLLにステップインできないなどの制限があり、変数の検査がうまくいきません。

3
Adam Pierce

ステップスルーできるものは、g ++が生成するデバッグ情報によって大幅に制限されます。 Emacsはgdbへのインターフェースを提供します。gdbを使用すると、ツールバー/メニューを介して制御したり、データを個別のウィンドウに表示したり、gdbコマンドを直接入力したりできます。 EclipseのCDTは同様のツールを提供します。 AnjutaとCode :: Blocksについて聞いたことがありますが、使用したことはありません。

3
Allen

Code:Blocks C++ IDEにはグラフィカルラッパーがあり、必要な機能がいくつかありますが、VSのパワーには似ていません。

2
crobar

VisualGDB は、Linuxおよび組み込みプラットフォームでアプリケーションを開発およびデバッグするための別のVisual Studioプラグインです。

2
Sergey Zhukov

Cygwin gdbでgdb -wを試しましたか。かなりうまく機能するWindowsインターフェースがあると思われます。

私が見つけた唯一の問題は、現在のマシンでは、dddをインストールするまで、そのように実行されなかったことです。 dddをインストールしたときにインストールされたtcltkが必要だと思います。

1
BubbaT

KDevelopは非常にうまく機能します。

1
Harold Ekstrom

Visual Studioでgdbを探している場合は、 WinGDB を確認してください。

0
Dominic.wig

Geanyの最新バージョンがサポートしています(ただし、Linuxのみ)

0
Milan Babuškov

過去15か月間、私は洞察を使用しました(FC6で実現しました)。 Tcl/Tkで書かれていますが、素晴らしくはありませんが、シンプルで便利です。 DDDの品質/ユーティリティは似ていますが、使用がやや困難です(さまざまなGUIの落とし穴と省略)。また、gdbをIDEのSlickEditと統合しようとしました。それは問題なく動作しました(私はそれで4時間ほどプレイしました)が、GUIコンテキストスイッチは好きではありませんでした。デバッグ中にIDEが変更されないようにします。 Windowsでは、IDEにSlickEditを使用し、デバッグにVisual Studio Debuggerを使用します。そのため、3:Insight、DDD、およびSlickEditから、Insightが最初の選択肢であり、95%を超える時間を使用し、コマンドラインgdbとDDDが残りの5%を占めています。機会があれば、ある時点でEclipseを評価します。職場のPCには、Eclipseを適切に実行するのに十分なRAM(1GBのみ)がないようです。

また、就職の面接での最初の手を含め、TotalViewに対する多くの賞賛を聞いています。 2008年後半に私は会社の評価を取得しましたが、最終的にはgdbがニーズに十分であったため、先に進みませんでした。そしてそれは無料でどこにでもあります。

0
Radim Cernej

実行中のプログラムをステップ実行するデバッガーを探していました。説明:添付します。このプログラムはEclipseを使用してビルドされましたが、おそらくマルチスレッド化されたいくつかの障害のために、ソースファイルはありません。なんでも。

NetBeansに非常に満足しています。

  • [デバッグ]メニューから-> Deuggerを接続...
  • プロセスがデバッグするものを選択したため
  • プロジェクトとして[新しいプロジェクト]

ウィンドウが消え、何も表示されなくなります。プロセスから切り離します。読み取り広場の「停止」が役立ちます。

  • プロジェクトからソースをインポートしますフォルダ。 ".../MyProject/src
  • これでプロジェクトに表示され、ブレークポイントを設定できます。
  • 再びデバッガーを接続します
  • デバッグするプロセスを選択しました。
  • programmが次のブレークポイントに達すると、デバッガーが停止するはずです。

[ウィンドウ]-> [デバッグ]->ウィンドウが快適になりますか。

0
Cutton Eye

Www.zero-bugs.com/ Zeroデバッガーを使用します。gccのC++ 0xサポートが必要です

0
siddhusingh