意味のあるすべての関数にブレークポイントを設定しようとしましたが、プログラムはそれらのいずれかに到達する前に終了します。何が起こっているのかを確認できるように、プログラムを最初からステップバイステップ モードで実行する方法はありますか?
重要な場合は /usr/bin/id をデバッグしようとしています(カスタムプラグインがあり、動作が正しくありません)
ここでPS Startコマンドが機能しません(コメントである必要がありますが、十分な担当者がいません)
プログラムのエントリ ポイント アドレスを取得し、そのアドレスにブレークポイントを挿入します。
これを行う 1 つの方法は、「エントリ ポイント: 0x4045a4」などの情報ファイルを作成することです。次に、「break *0x4045a4」を実行します。プログラムを実行すると、すぐに停止します。
ここからは、単一のステップ命令 (step や stepi など) を使用して続行できます。
デバッグしようとしているシステムを教えていません。コードが読み取り専用メモリにある場合、そのシステムでサポートされている場合は、ハードウェア ブレークポイント (hbreak) を使用する必要がある場合があります。
開始コマンドを使用する
'start' コマンドは、メイン プロシージャの先頭に一時的なブレークポイントを設定してから 'run' コマンドを呼び出すのと同じことを行います。
例えば
デバッグ情報mainを含むプログラム、および次のような使用法: main arg1 arg2
gdb main
(gdb) start arg1 arg2