Извлечь журнал выполнения из записи GDB в виртуальной машине VirtualBox

Я пытаюсь использовать функцию записи GDB для генерации списка инструкций, выполненных для примера учебника

Я могу использовать запись GDB для успешного продвижения вперед и назад и сохранить журнал выполнения в файл, используя "сохранение записи".

Я думаю, что я хочу сделать, это "запись истории инструкций", которая из документов

Разбирает инструкции из записанного журнала выполнения

Но когда я пытаюсь это сделать, я получаю сообщение об ошибке:

Вы не можете сделать это, когда ваша цель "переполнена"

Попытка установить цель записи равной btrace возвращает ошибку:

Цель не поддерживает трассировку веток.

Я использую GDB 7.6 на виртуальной машине VirtualBox, нужно ли мне работать на нём или есть какая-то другая магия, которой мне не хватает.

1 ответ

Решение

Ваша проблема связана с проблемой 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 функции, которые позволяют выполнять такие операции или переключаться в новую виртуальную среду.

Я буду продолжать искать информацию.

Другие вопросы по тегам