2009-06-02 9 views
5

Recentemente ho scoperto che è possibile impostare i punti di interruzione in Xcode che stamperà sulla console e proseguirà automaticamente, il che significa che è possibile inserire istruzioni di registro senza dover scrivere chiamate NSLog() e ricompilare (registrazione immediata, woot) .Come posso inserire una stringa di tempo in un registro GDB?

L'unico problema è che sembra essere un po 'limitato in ciò che è possibile visualizzare quando si esegue un registro. Mostra alcuni token che puoi inserire, come% B per stampare alcune informazioni sul punto di interruzione corrente o% H per il conteggio dei colpi.

Mi piacerebbe sapere se c'è un modo per inserire un timestamp in un particolare formato nella riga di registro?

Ho provato a giocare con il "script di shell" azione breakpoint, ma mi ha detto che il comando date non esistesse .... strano ...

Qualsiasi aiuto sarebbe impressionante, Grazie ragazzi!

risposta

2

Leggi il GDB manual about Breakpoint Command Lists

si può dare alcun punto di interruzione (o watchpoint o Catchpoint) una serie di comandi da eseguire quando il programma si ferma a causa di quel punto di interruzione. Ad esempio, potresti voler stampare i valori di determinate espressioni o abilitare altri punti di interruzione.

E in particolare:

per esempio, ecco come è possibile utilizzare i comandi punto di interruzione per stampare il valore di x al momento dell'ingresso a foo ogni volta che x è positivo.

break foo if x>0 
commands 
silent 
printf "x is %d\n",x 
cont 
end 

Questo risponde alla tua domanda?

+0

Sì, sembra quello di cui ho bisogno, grazie! – Jasarien