Sto usando lldb all'interno di Xcode e una delle mie variabili contiene un enorme frammento di dati JSON. L'utilizzo di po myVar
non è molto utile per analizzare questi dati, poiché verrà emesso nella minuscola console di debug di Xcode.Reindirizzare l'output lldb sul file
C'è un modo per reindirizzare l'output di lldb in un file?
vidi here che tale caratteristica sembra essere disponibile sul gdb come:
(gdb) set logging on
(gdb) set logging file /tmp/mem.txt
(gdb) x/512bx 0xbffff3c0
(gdb) set logging off
ed è "tradotta" in lldb come:
(lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
(lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
(lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
Tuttavia, il comando memory read
no aiuto nel mio caso, e --outfile
non sembra essere disponibile per il comando print
.
Miglioramenti qui: perché non fare il comando un argomento - allora potresti dire "print_to_file po self"? Inoltre, non ho controllato se LLDB ripristini automaticamente gli handle per te, ma sembrerebbe una buona pratica reimpostare l'handle del file di output :) Infine, puoi semplicemente recuperare SBCommandReturnObject per il "comando inferiore" (po self nel esempio) e scriverlo su un file invece di dirottare lo stdout di lldb. In genere, sarei diffidente nel cercare di giocare con lo stdin/stdout se evitabile del tutto. –
C'è un modo per reindirizzare l'output * all * debugger su un file? Ho provato lo script precedente senza la riga 'HandleCommand' e non ha funzionato. – blackwing
Enrico, potresti considerare di mostrare un tuo esempio/risposta che migliora su questo? Mi piace il suono del tuo approccio, ma non ho abbastanza informazioni per testarlo. – insitusec