わたすけです。皆さん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" で無効化出来ます
終わりに
デバッガに頼って快適な開発体験を推し進めていきましょう。



コメント