GDB を使用してコマンドラインでブレークポイントを設定する方法はありますか?
現在GDBを実行しているため、設定する必要があります
(gdb) b fun1
(gdb) b fun2
(gdb) b fun3
そして、GDBを閉じて再度開くと、すべてのブレークポイントを設定する必要があります:( 。コマンドライン自体でGDBのブレークポイントを設定する方法はありますか?
$> gdb -break fun1 -break fun2 -break fun3 ./myprog
GDB 以下に示すように、コマンド ラインから GDB を呼び出すときに、「break」、「info」、「set print」、「display x」などの GDB コマンドを設定する -ex オプションを提供します。
$> gdb -ex 'break main' -ex 'info b' -ex 'set print pretty on' ./myprog
-ex オプションのオプションは、man ページまたは GDB ヘルプで指定されていません :(
コマンドをファイルに入れ、コマンド ラインでフラグbreakを使用してそのファイルを gdb に渡します。-x
からman gdb:
-x file Execute GDB commands from file file.
同様にコマンドを渡すためのコマンドがあることがわかりましたが、コマンド ライン上にあります。両方-exと-eval-command、個々のコマンドを渡すことができます。バージョン7で導入されたようです: gdb 6.3.5では利用できませんが、7.3.1で利用できます。オンラインの gdb ドキュメントに記載されており、その他のコマンドライン引数-exはこちら.-eval-command
したがって、あなたの例では:
$> gdb -ex 'break fun1' -ex 'break fun2' -ex 'break fun3' ./myprog
他の答えはこれについて私に教えてくれました。
コマンドgdb -ex 'b fun1' -ex 'b fun2'(または長い形式-eval-command) を使用できます。
不思議なことに、 にはありませんがman gdb、 にはありinfo gdbます。もちろんソースにも!
gdbの外部でブレークポイントを設定できるかどうかはわかりませんが、gdbの内部でLinuxコマンドを使用できるため、gdbを頻繁に終了する必要はありません。gdbコマンドはshell yourcommand、lsを実行したい場合は、gdbの下に入力するだけshell lsです。