8

我正在尝试使用 gdb 的记录功能来生成为教程示例执行的指令列表

我可以使用 gdb 记录成功地前进和后退,并使用“记录保存”将执行日志保存到文件中。

我想我想做的是“记录指令历史”,它来自文档

从记录的执行日志中反汇编指令

但是当我尝试这个时,我得到了错误:

当您的目标是“记录已满”时,您不能这样做

尝试将记录目标设置为 btrace 会返回错误:

Target 不支持分支跟踪。

我在 VirtualBox VM 中运行 gdb 7.6,我需要在本地运行还是我缺少其他一些魔法。

4

1 回答 1

2

您的问题来自VirtualBox执行此操作本身的问题。正如您在此链接中看到的,更具体地说,在此行中:

if (packet->support != PACKET_ENABLE)
    error (_("Target does not support branch tracing."));

这里解释了这个问题

But VirtualBox does NOT
emulate certain debugging features of modern x86 CPUs like branch target
store or performance counters.

我最好的猜测是安装一些VirtualBox允许您执行此类操作的其他功能,或者切换到新的虚拟环境。

我会继续寻找资料。

于 2013-12-26T17:26:54.023 回答