わたすけです。皆さんGDB使ってますか?Gnu DeBuggerことGDBです。
何か意図しない挙動が起こった時、ブレークポイントを配置してステップ実行していく・・・という使い方を知っている人はなかなか多いと思います。
しかし、毎回GDBを起動してブレークポイントを置いて起動する・・・というのは面倒ですよね(簡略化する方法はいくらでもありますがなかったことにしてください)。
そこで、今回はGDBの --batch
引数を紹介します。
batch引数について
通常、GDBは起動後にコマンドを入力してデバッグを行います。が、--batch
を指定することにより、起動後に入力したいコマンドをコマンドライン引数で渡すことができます!
使い方は簡単で、gdbコマンドに --batch
と -ex <command>
と --args /path/to/executable
を渡すだけです。もちろん <command>
の部分と /path/to/executable
の部分は適宜置き換えてください。また、 -ex
オプションは複数指定可能です。
例えば、gdbでデバッグ対象のプログラムを起動するときは run
コマンドを使います。デバッグらしきことを全くせず、ただ実行するときは gdb --batch -ex "run" --args /path/to/executable
とすることができます。
例
いきなりセグフォするようになってしまい、バックトレースを見たい時、こんな風に起動できます↓
gdb --batch -ex "run" -ex "bt" --args /path/to/executable
小ネタ
デバッグするものによっては起動中にスレッドが立ち上がった時にログを出力してくれますが、--ex "set print thread-events off"
で無効化出来ます
終わりに
デバッガに頼って快適な開発体験を推し進めていきましょう。
コメント