我试图在一行上运行多个命令,e.g如何在单行中运行多个命令?
(gdb) info threads; c
Args must be numbers or '$' variables.
但它看起来像GDB不支持如此。有任何想法吗?
我试图在一行上运行多个命令,e.g如何在单行中运行多个命令?
(gdb) info threads; c
Args must be numbers or '$' variables.
但它看起来像GDB不支持如此。有任何想法吗?
使用define
命令来定义自己的命令:
(gdb) define mycommand
Type commands for definition of "mycommand".
End with a line saying just "end".
>info threads
>c
>end
(gdb) mycommand
有关详细信息,您可以参考:https://sourceware.org/gdb/onlinedocs/gdb/Define.html#Define。
gdb没有这个语法。所以,你不能这样做。
如果您希望能够运行固定序列,请参阅“define”命令。
您可以先把断点实现它,然后使用“命令 GDB内部和提及所有在这个特殊的断点击中应该被执行的命令。这样我们就可以和自动化我们的调试会话。
(GDB)help命令时,遇到断点将被执行
Set命令。 给断点号为后的参数 “命令”。 没有参数时,目标断点是最后一个集合。 命令本身在下一行开始。 键入包含“end”的行以指示它们的结束。 给“沉默”作为第一行使断点保持沉默; 然后在命中时不输出任何输出,除了命令打印的内容。
(gdb) break main
Breakpoint 1 at 0x40113e: file thread.cpp, line 19.
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040113e in main() at thread.cpp:19
(gdb) commands 1
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>info locals
>print argc
>print argv
>backtrace
>end
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040113e in main() at thread.cpp:19
info locals
print argc
print argv
backtrace
(gdb)
可能重复[多个命令在gdb separted由某种分隔符';'?](http://stackoverflow.com/questions/1262639/multiple-commands-in-gdb-separted-by-some-sort -of分隔符) – ks1322