我希望gdb
立即运行该可执行文件,就像我键入“ run”一样(动机:我不喜欢键入“ run”)。
一种方法是将命令传递给gdb
这样:
$ echo run | gdb myApp
但是这种方法的问题是您与失去了互动性gdb
。如果断点触发或myApp
崩溃,则gdb
退出。这种方法是讨论在这里。
查看中的选项--help
,我看不到执行此操作的方法,但也许我缺少了一些东西。
Answers:
./a.out a b
gdb -x
在Linux系统上使用。OS X使用LLVM和clang,因此请检查的调试功能lldb
。
我会使用gdb脚本:
gdb -x your-script
在那里你的脚本中包含类似:
file a.out
b main
r
之后,您将获得正常的交互式gdb提示符
编辑:
这是真正懒惰的优化:
.gdbinit
的working directory
。之后,您只需将gdb运行为
gdb
...和gdb自动加载并执行.gdbinit的内容。
fg
后r
线,它的作用三立
(echo r ; cat) | gdb a.out
猫允许您在gdb中断后继续输入内容。
Make breakpoint pending on future shared library load? (y or [n])
将自动假定答案为“否”。
start
命令
此命令是另一个不错的选择:
gdb -ex start --args ./a.out arg1 arg2
就像运行一样,但它还会在处设置一个临时断点main
并在此处停止。
一旦被击中,该临时断点将被停用。
starti
还有一个相关的代码starti
可以启动程序并在第一条指令处停止,另请参见:在GDB中的第一条机器代码指令处停止
当您在做一些低级的工作时,这很棒。