問題タブ [gdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2830 参照

debugging - GDBで型属性を出力するにはどうすればよいですか?

GDB内からtype属性を出力する方法はありますか?
例:整数'サイズ。

0 投票する
3 に答える
1528 参照

debugging - QtCreator で gdbmacros.cpp を使用するにはどうすればよいですか?

Linux の QtCreator でデバッグしようとすると、次のメッセージが表示されます。

デバッグされたバイナリには、Qt データ型の適切な表示に必要な情報が含まれていません。

ファイルを含めてみてください

.../share/qtcreator/gdbmacros/gdbmacros.cpp

プロジェクトに直接。

~/qtcreator/gdbmacros/gdbmacros.cpp をプロジェクト ファイルに追加しても解決しません。

何か案は?

0 投票する
5 に答える
57912 参照

debugging - GDBでメモリアドレスのシンボル名を取得するには?

たとえば、0x46767f0 が NSString* に属していることはわかっていますが、探しているバグを見つけるのに役立つ NSString を見つける方法はありますか?

0 投票する
3 に答える
1886 参照

dynamic - 変数の値を含む gdb を介した完全な制御フローを出力します

アイデアは、プログラムに特定の入力が与えられると、どういうわけか自動的に完全なプログラムにステップインし、その制御フローを、クラスとその変数のように使用されているすべてのデータと共にダンプしたいということです。これを行う簡単な方法はありますか?または、これは gdb を介したスクリプトによって実行できますか、または gdb で変更する必要がありますか?

この質問の理由は、デバッグ ツールに関するアイデアのためです。それがすることはこれです。プログラムに 2 つの異なる入力が与えられた場合、1 つは正しくない出力を引き起こし、もう 1 つは正しい出力を引き起こした場合、制御フローのどの部分が異なるかがわかります。

したがって、必要になると思うのは、差分エンジンに入るこれら 2 つの制御フローの完全なダンプです。そして、2 つの入力が同様の制御フローに従っている場合、(多くの場合) それらの diff は、バグが存在する理由についての良いアイデアを提供します。

これは、その上に構築された多くの機能を備えた非常に魅力的なツールにすることができます。

0 投票する
7 に答える
18254 参照

dynamic - 次のN実行行をGDBで自動的に印刷する方法は?

私はしばらくの間、プログラムの制御フローをトレースする GDB の進行を自動化する方法を見つけようと試みてきました。

コマンドを自動化する簡単な方法でも、nルーチンが呼び出される順序を確認できます。

n xx が GDB のステップ スルー回数である場合、問題が発生する可能性があることは認識していますが、問題は、コマンドは表示されますが、ルーチンのアドレスは表示されないことです! ただしn、GDB で手動で押すと (次に Return キーを押して前のコマンドを発行すると)、アドレスが表示されます。

GDBで次のことを試しました:

GDBは言い<breakpoint 1 at 0x123456>ます。私はタイプする:

しかし、期待どおりにループせず、アドレスの場所も表示されません :-(.

どんな助けでも大歓迎です!確かに、ルーチンが呼び出された順序を自動的に記録するのは簡単に違いありません??

0 投票する
1 に答える
150 参照

c - gccを使用した共有ライブラリでの「-g」の伝播

私はプログラムを持っていabcます。 ライブラリをabc使用し、次にライブラリを含めます。defdefghi

現在、libghi.soを使用してコンパイルおよびリンクされていgcc -gます。 またlibdef.so、を使用してコンパイルおよびリンクされます。ただし、とはリンクされていません。gcc -gabc -g

問題は、でデバッグabcする場合、とgdbの記号を表示できるかどうかです。defghi

プロジェクトはかなり大きく、コンパイルには数時間かかります。そのため、自分でテストする前に質問しています。

0 投票する
5 に答える
21028 参照

assembly - x86はアドレスにジャンプします

セキュリティクラスの割り当てとして、__asm__("jmp 0xbffff994");コードで使用しようとしていますが、gdbで逆アセンブルすると、命令がに変更されjmp 0xc8047e2aます。特定のアドレスにジャンプする理由と方法はありますか?

0 投票する
5 に答える
3674 参照

c++ - gdbを使用したデバッグ-ベストプラクティス

私はGDBの初心者であり、正しく機能するようになりました。しかし、これが大きなプロジェクトでどのように使用されているのか疑問に思っています。makefileとg++を使用してビルドを行うプロジェクトがあります。GDBを機能させるには、デバッグシンボルをオンにしてコンパイルする必要があります(g ++ -gファイル)。

質問

  1. make debugのようなデバッグビルドを作成できるように、makefileに「debug」のような新しいターゲットを作成する必要がありますか。これはベストプラクティスですか?
  2. foo.cppのみをデバッグする必要があり、mainを含むプログラム全体をビルドする以外の目的でのみデバッグシンボルを生成することは可能ですか?

何かご意見は?