gdbはログファイルをどこに保存しますか?

gdbはログファイルをどこに保存しますか?

この部分は次から始まります。gdbがエイリアスが好きではないのはなぜですか?

今私は次のような主張をします。

gdb firefox-esr
(gdb) set logging file my-firefox-esr-1802018.log
(gdb) set pagination 0
(gdb) show logging 
Future logs will be written to firefox-esr-020818.log.
Logs will be appended to the log file.
Output will be logged and displayed.
(gdb) run --safe-mode

それが墜落したとき、私はそうしました -

(gdb) bt
(gdb) thread apply all bt

全スレッドとその中の出力表示が完了したら

(gdb) quit

ただし、/home/shirishにある場合はログファイルを見ることができません。フルパスを提供する必要がありますか?

答え1

set logging fileデフォルトでは、inディレクティブはgdb現在のディレクトリに書き込みます。

firefox-esrしたがって、あなたの例では、使用しているユーザーがそのディレクトリへの書き込み権限を持っている場合、ログファイルがディレクトリに書き込まれます。

したがって、答えは「はい」です。ホームディレクトリにログファイルを書き込むには、フルパスを指定する必要がありますset logging file

バラより gdbがファイルに戻すあなたの仕事をすることができる面白いトリック:

alias bt = 'echo 0 | gdb -batch-silent -ex "run" -ex "ログオーバーライド設定" -ex "ログファイル設定 gdb.bt" -ex "ロギング設定" -ex "ページングオフ設定" -ex " SIG33 pass nostop noprint 処理" -ex "echo backtrace:\n" -ex "backtrace full" -ex "echo \n\nregisters:\n" -ex "info Registers" -ex "echo \n\n現在のコマンド:\ n" -ex " "x/16i \$pc" -ex "echo \n\nスレッド逆追跡:\n" -ex "スレッドはすべての逆追跡を適用します。 -ex "ログアウト設定" -ex "Exit" --args '

bt $crashing_application

また、見ることができますGentooを使った逆追跡

答え2

gdbが常にpwdにgdb.txtまたはカスタムログファイルを生成するわけではありません。 gdb端末で "setloggingon"コマンドを実行して明示的に指定する必要があります。これでのみ出力が記録されます。

関連情報