【发布时间】:2014-10-06 03:20:43
【问题描述】:
我想调试一个程序,使用 gdb。但我通过脚本调用该程序。
如何使用 gdb? 该脚本很长,我无法使用 gdb 中的命令行参数直接调用该程序。
脚本启动时创建的进程也是短暂的,因此无法将 gdb 附加到进程。
我想做的是,用那个程序启动 gdb,然后添加我的断点 执行脚本(仅供参考 - 它也需要参数),然后当它到达断点时执行我想要的任何操作。
我查看了 gdb 中的 shell 选项,但如果我没记错,它会生成一个新的 shell,并在完成后返回 gdb。这不是我想要的。
如果有更好的方法,请告诉我。
【问题讨论】:
-
“脚本很长,我无法直接使用gdb的命令行参数调用程序。”,你能在脚本中找到程序吗?
-
你不能编辑调用你要调试的程序的脚本,并用“gdb program -ex”run
”或类似的东西替换程序吗? -
我的脚本调用了另一个 perl 脚本,该脚本添加了一堆参数,然后最后调用了原始二进制文件,我试了一下,它成功了。谢谢@dbrank0。但是有没有办法从 gdb 中执行此操作而不是搜索和编辑脚本?