如何使用我通常手动在终端中写入的参数运行 GDB?

问题描述 投票:0回答:1

我有一些程序,其本质是分析崩溃,它与GDB一起工作。

它如何工作的一个例子:我在 GDB 中运行一个应用程序,我想分析崩溃,然后我使用“source”将我的程序加载到 GDB 中,写“run”以使应用程序工作,然后如果它崩溃我写“analyze”(这个命令触发我的崩溃分析程序)然后我得到一份关于错误的完整报告。我的程序完全是用 python 编写的。

问题:我可以用 python 或其他东西编写脚本来制作一个可执行文件,该文件将运行上述整个过程,而无需手动运行 gdb 并在那里编写命令“source”、“analyze”、“运行”等等。基本上,我需要以某种方式制作一个程序,我将在其中传递目标(用于分析的应用程序),可能是一个输入文件(例如,正在研究的程序需要一个会崩溃的文件),以及这个程序将运行GDB,写入“source”、“analyze”等,然后在文本文件中生成报告。

我试图在google上查找信息,但不幸的是没有成功。也许我没那么认真,我不知道。 Ubuntu 20.04.

python ubuntu gdb gdb-python
1个回答
0
投票

这个程序会运行GDB,写入“source”、“analyze”等,然后在文本文件中生成报告。

GDB 可以以 批处理模式 运行并解释从脚本文件给出的任何命令:

gdb --batch -x script-file --args /path/to/executable [args-to-pass-to-exe...]

您还可以用内联命令替换脚本文件,例如

gdb --batch -ex run -ex where -ex quit --args /path/to/exe [args-to-pass-to-exe...]
© www.soinside.com 2019 - 2024. All rights reserved.