問題タブ [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 に答える
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を含むプログラム全体をビルドする以外の目的でのみデバッグシンボルを生成することは可能ですか?

何かご意見は?

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

gdb - 「監視」GDB を使用するにはどうすればよいですか?

「watch a」コマンドで「int a」の変化を見てみました。しかし、プログラムは 12 に変わっても停止しません。なぜですか?

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

gdb - GDB ブレークポイントの同じ関数が複数回表示される

gdb を使用すると、奇妙な問題が発生しました。3 回表示されるメソッドがあります。

3 つのインスタンスすべてがファイル Logger.cpp の 552 行目にあるという事実から、実際には同じメソッドを参照していると推測できます。これはどういう意味ですか?Logger::Logger コンストラクターが誤ってバイナリに 3 回入りましたか、それとも gdb のバグですか?

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

multithreading - gdbのブレークポイントに達したときに、他のすべてのスレッドの実行を停止することは可能ですか?

それで、あるスレッドでブレークポイントに到達するとすぐに、続行するまで他のスレッドを停止することは可能ですか?

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

cocoa - (Xcodeを介して)gdbで定数を出力して使用するにはどうすればよいですか?

xcode-gdbを使用してCocoaアプリケーションをデバッグしています。私はブレークポイントにあり、いくつかのCocoa定数(つまりNSControlKeyMask)の値を表示し、現在のスタックフレームの値を使用してテストを実行したいと考えています。具体的には私は

そして私はやったdbプロンプトで。今やりたいdbは、「現在のコンテキストではシンボル「NSControlKeyMask」はありません」と言っています。

更新:
Xcodeには「テキストの修正と続行」機能があります。そこで、この機能でDan M.とn8grayソリューションを使用したので、すべての定数のプロキシを作成する必要はありません。

0 投票する
2 に答える
2031 参照

objective-c - gdb を使用して Objective-C プログラム (Apple が提供する pbcopy) をデバッグするには?

Objective-C プログラムをデバッグする必要があります。main() function にブレークポイントを設定すると、次のようになります。

返信から「開始」を呼び出すと、同じエラーが返されます。max os x ではやり方が違うのではないでしょうか?

目的のCプログラムと同等のものは何ですか?

ところで、exit() 関数を中断する方法は?

編集: Lyndsey によって提案された -[NSApplication run] を破ってみます

それは非常に奇妙です.gdbはどのようにしてシンボルのアドレスを見つけるのですか?しかし、私は ld が再配置を行う必要があると思うので、それは私を傷つけません。スタックトレースを見ると、たくさんあります?? ここでは、アプリケーションをトリガーする通常の方法は使用しないと仮定します (?? 大きな仮定 ...:/)

0 投票する
4 に答える
326 参照

debugging - カーネルをクラッシュさせるユーザーランド コードのポイントを見つける必要があります

システムを激しくクラッシュさせる大きなシステムがあります。起動すると、コアダンプすらありません。システムがダウンするまで実行されるすべての行をログに記録するとします。私はその邪悪なコードを見つけます。

GDB のすべてのソース コード行をファイルに記録できますか?

アップデート:

わかりました、バグを見つけました。それは厄介でした。起動したアプリケーションはシステムを停止しませんでした。mdb を使用したコアダンプ インスペクションといくつかの gdb ステッピングについて学んだ後、ダンプの原因となっているシステム コールが実装されていないことがわかりました。システムを最新のカーネルに更新すると、問題が解決します。皆さんのお陰で。

私の教訓:

どのプロセスがコアダンプを引き起こしているかを確認してください。それはいつもあなたが始めたものではありません。

0 投票する
6 に答える
20844 参照

xcode - GDBチートシート

gbd の良いチート シートを推奨できる人はいますか? 私はwindbgコマンドの経験があり、lml(ロードされたモジュールのリスト)、~*k(すべてのスレッドスタック)、ba(アクセス時にブレーク)、dt(ダンプタイプ)、dv(ダンプフレーム変数)に相当するgdbを探しています)、sxe (SEH ハンドラーのセットアップ) など。1 対 1 の同等物がないことは理解していますが、最も使用されている/有用なコマンドの要約が必要なだけです。