【问题标题】:How to run gdb on an executable with arguments?如何在带有参数的可执行文件上运行 gdb?
【发布时间】:2015-12-17 00:27:24
【问题描述】:

我怎样才能运行gdb -e path/to/exe -ex 'run --argnamae argvalue'之类的东西?

让我们假设最近一两年内的 gfb 版本。

Gdb 运行并打印响应,但不是交互式的。

【问题讨论】:

标签: gdb


【解决方案1】:

我想你想要gdb --args path/to/exe command line arguments

这将启动 gdb 调试 path/to/exe 将三个命令行参数传递给您的 exe commandlinearguments,然后您可以在发出运行命令之前与 gdb 交互。

至于ImportError: No module named 'libstdcxx',我相信这已经回答了here,它指向了一个错误报告here

似乎某些版本的 GCC 有一个损坏的漂亮打印机 python 脚本,您可能需要调整 python sys.path(gdb) python sys.path.append("/usr/share/gcc-4.8/python"),调整路径以匹配系统上实际存在的任何 GCC 版本。您可能可以将这样的命令添加到您的 .gdbinit 文件中,以节省每次输入的时间。

【讨论】:

  • 很高兴知道!但是gdb --args path/to/exe command line="can have whitespace in" arguments 呢?运行 gdb 时报告 path/to/exe can't handle command-line argument containing whitespace。任何处理带有空格的参数的解决方案?
  • 只有在使用set startup-with-shell 0 时才会出现该错误(我认为)。现在,除了不禁用 startup-with-shell 之外,我没有看到其他解决方法 (sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/…)
【解决方案2】:

我怎样才能运行类似 ...

你可以这样做:

gdb path/to/exe -ex 'set args arg1 arg2 arg3'

或者使用上述的简写符号:

gdb --args path/to/exe arg1 arg2 arg3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多