我正在尝试使用 gdb 的记录功能来生成为教程示例执行的指令列表
我可以使用 gdb 记录成功地前进和后退,并使用“记录保存”将执行日志保存到文件中。
我想我想做的是“记录指令历史”,它来自文档
从记录的执行日志中反汇编指令
但是当我尝试这个时,我得到了错误:
当您的目标是“记录已满”时,您不能这样做
尝试将记录目标设置为 btrace 会返回错误:
Target 不支持分支跟踪。
我在 VirtualBox VM 中运行 gdb 7.6,我需要在本地运行还是我缺少其他一些魔法。
我正在尝试使用 gdb 的记录功能来生成为教程示例执行的指令列表
我可以使用 gdb 记录成功地前进和后退,并使用“记录保存”将执行日志保存到文件中。
我想我想做的是“记录指令历史”,它来自文档
从记录的执行日志中反汇编指令
但是当我尝试这个时,我得到了错误:
当您的目标是“记录已满”时,您不能这样做
尝试将记录目标设置为 btrace 会返回错误:
Target 不支持分支跟踪。
我在 VirtualBox VM 中运行 gdb 7.6,我需要在本地运行还是我缺少其他一些魔法。
您的问题来自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允许您执行此类操作的其他功能,或者切换到新的虚拟环境。
我会继续寻找资料。