从VirtualBox VM中的gdb记录中提取执行日志

从VirtualBox VM中的gdb记录中提取执行日志,gdb,virtualbox,record,reverse-debugging,Gdb,Virtualbox,Record,Reverse Debugging,我正在尝试使用gdb的记录功能来生成为 我可以使用gdb记录成功地向前和向后移动,并使用“记录保存”将执行日志保存到文件中 我想我要做的是“记录指令历史”,它来自 从记录的执行日志中反汇编指令 但当我尝试这样做时,我得到了一个错误: 当你的目标是“记录满”时,你不能这样做 尝试将记录目标设置为btrace时返回错误: 目标不支持分支跟踪 我正在VirtualBox VM中运行gdb 7.6,我是否需要以本机方式运行,或者我是否缺少一些其他魔法。您的问题来自于执行此操作时VirtualBox本身的

我正在尝试使用gdb的记录功能来生成为

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

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

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

但当我尝试这样做时,我得到了一个错误:

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

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

目标不支持分支跟踪


我正在VirtualBox VM中运行gdb 7.6,我是否需要以本机方式运行,或者我是否缺少一些其他魔法。

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

if (packet->support != PACKET_ENABLE)
    error (_("Target does not support branch tracing."));
这个问题已经解释清楚了

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


我会继续搜索信息。

非常好的研究Jean,我不再研究这个问题了,但不管怎样,我很高兴能得到答案,将标记为解决方案,但将更改标题以反映问题的特定于虚拟盒的性质。需要的
cpuinfo
标志是
intel\u pt
:您还应查看英特尔SDE:
But VirtualBox does NOT
emulate certain debugging features of modern x86 CPUs like branch target
store or performance counters.