質問

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

詳細に:Windows でのプログラミングに多くの時間を費やしてきた私が、Linux で C++ をコード化する必要があるときにいつも発見する大きな障害の 1 つは、コマンドライン gdb を使用して何かをデバッグすると、Visual Studio で行う場合よりも数倍の時間がかかることです。そして練習しても上達するようには見えません。いくつかのことは、グラフィックで表現するほうが簡単または速くなります。

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

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

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

編集:
可能性を列挙するのは素晴らしいことです。入手できるものはすべて取り上げますが、ご回答に次の内容を含めていただけるとさらに助かります。
(a) この GUI を実際に使用したかどうか、使用した場合は、それについてどのような肯定的/否定的なフィードバックがあるか。
(b) ご存知の場合は、上記の機能のうちどの機能がサポートされているか、サポートされていないかを教えてください。

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

役に立ちましたか?

解決

見つからないでしょう 何でも Visual Studio デバッガーの本来の能力と競合できるオーバーレイ GDB。これは非常に強力であり、IDE 内にうまく統合されています。

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

他のヒント

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

Eclipse ベースの IDE の使用に慣れていない場合は、GUI に慣れるまでに少し時間がかかります。ただし、Eclipse に固有の GUI の考え方 (例:という視点)、ツールを使用することは素晴らしい経験になります。

CDT ツールは、コード ベース内のメソッドへの参照を迅速に検索できる適切な C/C++ インデクサーを提供します。また、優れたマクロ拡張ツールと限定的なリファクタリングのサポートも提供します。

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

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

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

チェックアウト Nemiver C/C++ デバッガー. 。Ubuntu へのインストールは簡単です (開発者ツール/デバッグ)。

アップデート: 新しいリンク。

私は Windows 開発という考えが大嫌いですが、VC++ デバッガーは私がこれまで見た中で最高のものの 1 つです。VC に近い GUI フロントエンドは見つかりませんでした。

GDB は、慣れてしまえば素晴らしいものです。怒りの中でそれを十分に使用すると、非常に熟練するでしょう。私はもう、あなたがリストしたすべてのことを実行するプログラムをそれほど苦労せずに動かすことができます。熟練するまでに、リモート サーバーへの SSH リンクに苦労するのに 1 か月ほどかかりました。でも二度と戻りません。

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

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

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

Eclipse を使用することもできますが、これは非常に重量があり、私が一緒に仕事をした多くの経験豊富な Unix 担当者 (私も含め) はそのインターフェースをあまり気にしません。Eclipse も多くのスペースを占有し、犬のように動作するようです。

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

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

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

まだ使用したのは 1 時間未満ですが、これまでのところ感銘を受けています。

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

私は DDD をよく使いますが、一度使い方を覚えてしまえば非常に強力です。私が言えるのは、WAN 経由で X を使用しないでください。不必要な画面更新が頻繁に行われるようです。

また、GDB に慣れておらず、多少のお金を稼ぐのを気にしないのであれば、TotalView を試してみるとよいでしょう。これには少し急な学習曲線がありますが (間違いなくより直感的になる可能性があります)、これは私がこれまであらゆるプラットフォームで使用した中で最高の C++ デバッガーであり、カスタム方法でオブジェクトをイントロスペクトするように拡張できます (したがって、 STL リストはオブジェクトの実際のリストであり、混乱を招く内部データ メンバーの束などではありません)。

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

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

GDB Emacs フロントエンド

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

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

Linux 上の Qt Creator は、確かに、今日の C++ の Windows 上の Visual Studio と同等です。デバッガー側ではさらに良いと言えます。

このリストには含まれていないものの、非常に効率的な IDE が 1 つあります (私はこれを多くの C/C++ プロジェクトで問題なく使用しています)。 ネットビーンズ.

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

gdb は、ウィッシュリストにあるほとんどのことを実行します。DDD は、より良い前面を出します。たとえば、スレッドの切り替えが簡単になります。ブレークポイントの設定は、ご想像のとおり簡単です。

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

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

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

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

残念ながら、これはまだ Visual Studio デバッガーほど優れていません。

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

UNIX システムでは、 K開発 良いけど使ってる KDbg 使いやすく、KDevelop で開発されていないアプリでも動作するためです。

日食 どちらのプラットフォームでも良好です。

Windows には、と呼ばれる素晴らしいパッケージがあります。 Wascana デスクトップ開発者 これは、Eclipse CDT と MinGW がすべてパッケージ化されており、苦痛を最小限に抑えるために適切に事前構成されています。これは、Windows で GNU コードを開発するために私が見つけた最高のものです。

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

ご覧になったことはありますか DS-5 デバッガ?

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

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

コード:ブロック C++ IDE にはグラフィカル ラッパーがあり、必要な機能がいくつか備わっていますが、VS の機能に匹敵するものはありません。

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

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

cygwin gdb で gdb -w を試してみましたか。かなりうまく動作する Windows インターフェイスを備えていると考えられます。

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

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

Visual Studio で gdb を探している場合は、チェックしてください。 WinGDB.

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

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

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

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

NetBeans に非常に慣れてきました。

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top