この部分は次から始まります。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"コマンドを実行して明示的に指定する必要があります。これでのみ出力が記録されます。