11

GDB を使用してコマンドラインでブレークポイントを設定する方法はありますか?

現在GDBを実行しているため、設定する必要があります

 (gdb) b fun1
 (gdb) b fun2
 (gdb) b fun3

そして、GDBを閉じて再度開くと、すべてのブレークポイントを設定する必要があります:( 。コマンドライン自体でGDBのブレークポイントを設定する方法はありますか?

  $> gdb -break fun1 -break fun2 -break fun3 ./myprog
4

4 に答える 4

16

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 ヘルプで指定されていません :(

于 2012-08-30T15:59:05.757 に答える
7

コマンドをファイルに入れ、コマンド ラインでフラグ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

他の答えはこれについて私に教えてくれました。

于 2012-08-30T13:16:22.613 に答える
1

コマンドgdb -ex 'b fun1' -ex 'b fun2'(または長い形式-eval-command) を使用できます。

不思議なことに、 にはありませんがman gdb、 にはありinfo gdbます。もちろんソースにも!

于 2012-08-30T16:28:51.270 に答える
0

gdbの外部でブレークポイントを設定できるかどうかはわかりませんが、gdbの内部でLinuxコマンドを使用できるため、gdbを頻繁に終了する必要はありません。gdbコマンドはshell yourcommand、lsを実行したい場合は、gdbの下に入力するだけshell lsです。

于 2012-08-30T15:51:00.120 に答える