2013-06-07 2 views
8

Я пытаюсь использовать функции записи GDB, чтобы сформировать список команд, выполняемых для tutorial exampleИзвлечение журнала выполнения из GdB записи в VirtualBox VM

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

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

Disassembles instructions from the recorded execution log

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

You can't do that when your target is 'record-full'

Попытка установить рекорд target to btrace возвращает ошибку:

Target does not support branch tracing.

Я бегу gdb 7.6 в VirtualBox VM, мне нужно запускать изначально или есть какая-то другая магия, которую я не вижу.

+0

Вы также должны посмотреть в Intel SDE: http://stackoverflow.com/a/31814199/895245 –

ответ

2

Ваша проблема возникает из-за проблемы с VirtualBox для выполнения этой операции. Как вы можете видеть в this link, более конкретно в этой линии:

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

Эта проблема объясняется here.

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

Моя догадка установить некоторые другие VirtualBox функции, которые позволяют выполнять такие операции, или переключиться на новую виртуальную среду.

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

+1

Отличный пример исследования Jean, я больше не занимаюсь этой проблемой, но отлично подходит для получения ответа в любом случае, но изменит название, чтобы отразить специфику конкретного виртуального ящика вопроса. – bcleary

+0

Необходимым флагом 'cpuinfo' является' intel_pt': http://stackoverflow.com/questions/22507169/how-to-run-record-instruction-history-and-function-call-history-in-gdb/31814199# 31814199 –

Смежные вопросы