如何运行GDB,在命令行中输入文本并查看可执行文件如何处理这些条目?

时间:2013-04-07 17:43:14

标签: c++ c linux emacs gdb

如何在允许从命令行交互输入字符的同时运行GDB,同时“打印”这些条目中解析后的字符所产生的变量值?

换句话说,如何运行gdb,在命令行中输入文本并查看可执行文件如何处理这些条目?

如果我在带有M-x gdb的Emacs中运行它,那么gdb的行为是否有任何区别?使用C-c C-c挂起可执行文件,然后尝试打印变量值的行为与我预期的不符。它似乎没有从正在调试的挂起的可执行文件中识别出有效的变量值。我确实从Clang生成了一个带有-ggdb -O0标记的“可调试”可删除。

我还尝试将gdb链接到在单独终端中运行的程序可执行文件的pid,但仍然遇到困难。程序需要以交互方式解析命令行条目;我无法将它们作为初始命令行参数传递。

我希望我明白我的问题。

1 个答案:

答案 0 :(得分:1)

启动M-x gdb后,输入M-x gdb-many-windows。这将在您的框架中打开新窗口,显示程序的堆栈,断点,本地,代码和I / O,这意味着如果您在那里键入,则输入将被提供给您的可执行文件。