繁体   English   中英

在运行GDB时通过cmd行设置break

[英]Setting break via cmd line on running GDB

有没有办法在使用GDB时通过cmd行设置断点。

目前在运行GDB时,我需要设置

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

如果我再次关闭并打开GDB,我需要设置所有断点:(。有没有办法在cmd行本身设置GDB的断点,就像

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

GDB提供-ex选项,用于在命令行调用GDB时设置GDB命令,例如'break''info''set print''display x',如下所示

    $> gdb -ex 'break main' -ex 'info b' -ex 'set print pretty on' ./myprog

手册页或GDB帮助中未指定-ex选项的选项:(

break命令放在一个文件中,然后使用-x标志将文件传递给命令行中的gdb。

来自man gdb

  -x file Execute GDB commands from file file. 

事实证明, 没有对同样穿过命令的命令,但该命令行:既-ex-eval-command允许你通过一个人的命令。 它似乎已在版本7中引入:它在gdb 6.3.5上不可用,但在7.3.1中可用。 -ex-eval-command都记录在与其他命令行参数的在线文档GDB 这里

所以,举个例子:

$> gdb -ex 'break fun1' -ex 'break fun2' -ex 'break fun3' ./myprog

其他答案就此接受了我的教训。

您可以使用命令gdb -ex 'b fun1' -ex 'b fun2' -eval-command gdb -ex 'b fun1' -ex 'b fun2' (或长格式-eval-command )。

奇怪的是,它在man gdb缺失,但它在info gdb 当然,在消息来源中!

我不知道你是否可以在gdb之外设置断点,但我知道你可以在gdb中使用Linux命令,这样你就不必经常退出gdb了。 gdb命令是shell yourcommand ,如果你想运行ls,只需在gdb下键入shell ls

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM