0

我正在尝试将 GDB 的输出定向到文件以供进一步参考。我不想使用run > file,因为到目前为止我注意到它从开始到结束执行它。我需要的是能够调用一些命令并记录所有这些。我尝试过使用set logging on哪种工作,但是当我调用应该打印到stdout它的函数时,它不会保存这些信息。我的意思是说:

set logging on
p myVar
$0 = 1
call myFunc()
This is output from myFunc

myFunc() 在哪里

void myFunc() {
    cout<< "This is output from myFunc\n";
}

而在 gdb.txt 我只能看到

$0 = 1

我怎样才能看到呼叫的输出?

4

1 回答 1

0

我需要的是能够调用一些命令并记录所有这些

有两种“标准”方法可以实现这一目标。

对于手动交互,请使用脚本实用程序。

对于与 GDB 的编程交互,请使用DejaGNU(或期望3,它是基于它的)。这就是 GDB 本身的测试方式;您可以在 GDB 源代码中看到许多示例。

于 2020-11-27T16:41:38.423 回答