如何在bash脚本中使用gdb使用命令行参数运行程序?

在gdb上运行程序时,通常在run命令中给出程序的参数。 有没有办法使用gdb来运行程序,并且在shell脚本中提供参数?

我在相关问题中看到了一个答案,提到我们可以在脚本开始执行后将gdb附加到程序中。 但之后我将不得不“等待”节目。

我很好奇是否有其他方法可以做到这一点。


你可以用--args参数运行gdb,

gdb --args executablename arg1 arg2 arg3

如果你想让它自动运行,将一些命令放在一个文件中(例如'run'),并将其作为参数:-x / tmp / cmds。 您也可以选择以批模式运行。

gdb -batch -x /tmp/cmds --args executablename arg1 arg2 arg3

gdb -ex=r --args myprogram arg1 arg2

-ex=r-ex=run简称, -ex=run告诉gdb立即运行你的程序,而不是等你提示时输入“run”。 然后--args说,接下来的所有内容都是命令和参数,就像通常在命令行提示符下键入它们一样。


另一种做法是,我个人发现稍微更方便和直观(不必记住--args参数),就是正常编译,并直接从gdb中使用r arg1 arg2 arg3 ,如下所示:

gcc -g *.c *.h
gdb ./a.out
(gdb) r arg1 arh2 arg3
链接地址: http://www.djcxy.com/p/86035.html

上一篇: How do I run a program with commandline args using gdb within a bash script?

下一篇: How to print register values in GDB?