2013-06-07 14 views
8

Sto tentando di utilizzare la funzione di registrazione di gdb per generare un elenco delle istruzioni eseguite per la tutorial exampleestratto log di esecuzione da record di gdb in una VirtualBox VM

posso utilizzare record di gdb fare un passo in avanti e indietro con successo e salvare il registro di esecuzione in un file utilizzando "salva record".

Penso che quello che voglio fare è "record di istruzioni-storia", che da docs

Disassembles instructions from the recorded execution log

Ma quando tento questo ottengo l'errore:

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

Il tentativo di impostare il record target to btrace restituisce l'errore:

Target does not support branch tracing.

Sto eseguendo gdb 7.6 in a VirtualBox VM, devo essere in esecuzione nativamente o c'è qualche altra magia che mi manca.

+0

Si dovrebbe anche cercare in SDE Intel: http://stackoverflow.com/a/31814199/895245 –

risposta

2

Il problema deriva da un problema su VirtualBox per eseguire questa operazione. Come si può vedere nella this link, più precisamente in queste righe:

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

Questo problema è spiegato here.

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

La mia ipotesi migliore è quello di installare alcune altre VirtualBox funzionalità che consentono di eseguire tali operazioni, o passare a un nuovo ambiente virtuale.

Continuerò a cercare informazioni.

+1

Eccellente pezzo di ricerca Jean, non sto più ricercando questo problema, ma ottimo per ottenere una risposta comunque, andando a segnare come soluzione ma cambierà il titolo per riflettere la natura specifica della casella virtuale della domanda. – bcleary

+0

Il flag 'cpuinfo' necessario è' intel_pt': http://stackoverflow.com/questions/22507169/how-to-run-record-instruction-history-and-function-call-history-in-gdb/31814199# 31814199 –

Problemi correlati