221

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

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

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

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

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

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

リストは簡単に手に入れることができます。このようなサイトは、人々のアプリケーションに関する個人的な経験を知ることができるため、優れています。

4

28 に答える 28

86

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

Eclipse ベースの IDE の使用に慣れていない場合は、GUI に慣れるまで少し時間がかかります。ただし、Eclipse に固有の GUI の考え方 (パースペクティブなど) を理解すると、ツールを使用するのが楽しくなります。

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

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

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

于 2008-09-17T02:28:17.177 に答える
79

gdb -tui は、GUI っぽいものが必要な場合でも問題なく動作しますが、それでも文字ベースです。

于 2008-09-17T02:08:37.457 に答える
56

Visual Studio デバッガーの生の能力と競合できる GDB をオーバーレイするものは何も見つかりません。あまりにも強力で、IDE 内にうまく統合されすぎています。

Linux の代替として、フリー ソフトウェアが好きな場合は DDD を試してください。

于 2008-09-17T01:45:42.397 に答える
49

Nemiver C/C++ Debuggerをチェックしてください。Ubuntu へのインストールは簡単です (Developer Tools/Debugging)。

更新:新しいリンク。

于 2011-06-01T05:43:20.873 に答える
32

Qt Creator は良いもののようです。同僚が、デバッグ用にセットアップする方法を 1 つ教えてくれました。

  • 新しいプロジェクト「Makefile ベースのプロジェクトのインポート」を作成します。
  • ルート プロジェクト フォルダーを指定します (その下にあるソースのインデックスが作成され、非常に高速です)。
  • プロジェクト設定に移動し、実行構成を追加してから、デバッグする実行可能ファイルとその引数を指定します。
  • Qt Creator は、プロジェクトをデバッグする前にビルドすることを要求しているようです。それが望ましくない場合、または make を使用しない場合は、projects -> build (左側のパネル) に移動し、右側のパネルの "Build Steps" で、デフォルトのステップを含むすべてのステップを削除します。プロジェクトを作成しました。

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

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

于 2010-08-24T13:40:34.567 に答える
30

私は Windows 開発のアイデアを嫌いますが、VC++ デバッガーは私が見た中で最高のものの 1 つです。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 はまた、多くのスペースを占有し、犬のように走るようです。

于 2009-02-02T01:29:55.360 に答える
27

シンプルで便利なcgdbを使用しています

于 2009-07-15T11:54:53.840 に答える
16

私は DDD をよく使いますが、使い方を覚えればとても強力です。私が言いたいことの 1 つは、X を WAN 経由で使用しないことです。これは、不必要な画面更新が多く行われるように思われるためです。

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

于 2008-09-17T02:10:07.547 に答える
8

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

于 2008-09-17T01:48:54.680 に答える
7

eclipse gdb フロントエンドと同様に使いやすいのは emacs フロントエンドで、emacs IDE と密接に結びついています。すでに emacs を使用している場合は、気に入るはずです。

GDB Emacs フロントエンド

于 2009-01-03T15:49:44.707 に答える
7

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

于 2008-09-17T01:50:48.623 に答える
6

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

于 2008-10-25T19:01:28.570 に答える
5

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

于 2010-11-20T15:47:24.847 に答える
5

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

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

やりたいことが曖昧な場合に備えて、cli ウィンドウも表示されます。

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

于 2008-09-23T12:10:04.580 に答える
3

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

于 2008-09-17T01:47:34.403 に答える
3

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

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

于 2008-09-17T02:16:58.997 に答える
3

Windows と UNIX のどちらを使用しているかについては触れていません。

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

Eclipseは両方のプラットフォームで優れています。

Windows では、 Wascana Desktop Developerと呼ばれる優れたパッケージがあります。これは、Eclipse CDT と MinGW がすべてパッケージ化され、最小限の手間で適切に事前構成されています。これは、Windows で GNU コードを開発するために私が見つけた最高のものです。

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

于 2009-02-02T01:01:44.340 に答える
3

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

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

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

于 2015-04-07T11:56:54.527 に答える
2

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

于 2014-05-27T23:08:52.583 に答える
2

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

于 2011-11-24T11:15:01.287 に答える
1

KDevelop はかなりうまく機能します。

于 2008-09-17T01:53:34.530 に答える
1

cygwin gdb で gdb -w を試しましたか。かなりうまく機能するWindowsインターフェースを持っていると思われます。

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

于 2009-01-02T01:52:23.003 に答える
0

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

于 2008-09-17T02:08:21.890 に答える
0

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

私は NetBeans にとても慣れました。

  • [デバッグ] メニューから -> デバッガーをアタッチ...
  • プロセスがデバッグするものを選択したため
  • as project [新規プロジェクト]

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

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

[ウィンドウ] -> [デバッグ] -> あなたのウィンドウは快適になりますか?

于 2016-07-04T19:41:26.710 に答える
0

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

于 2009-12-03T20:35:23.237 に答える
0

過去 15 か月間、私はインサイト (FC6 に付属) を使用しています。Tcl/Tk で書かれていますが、シンプルで便利です。DDD は同様の品質/ユーティリティですが、やや使いにくいです (さまざまな GUI の落とし穴や省略)。また、gdb を私の IDE である SlickEdit と統合しようとしました。問題なく動作しました (4 時間ほどプレイしました) が、GUI コンテキストの切り替えが気に入らなかったのです。デバッグ中は IDE を変更しないでおくのが好きです。Windows では、IDE には SlickEdit を使用し、デバッグには Visual Studio Debugger を使用します。したがって、Insight、DDD、および SlickEdit の 3 つのうち、Insight が私の第 1 の選択肢です。95% 以上の時間で Insight を使用し、コマンドライン gdb と DDD が残りの 5% を占めています。機会があれば、ある時点で Eclipse を評価します。私の仕事用 PC には、Eclipse を適切に実行するのに十分な RAM (1GB のみ) がないようです。

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

于 2009-12-03T20:53:12.263 に答える
0

www.zero-bugs.com/ Zero デバッガーを使用してください。gcc からの C++0x サポートが必要です。

于 2012-02-16T07:21:52.200 に答える