2012-08-17 29 views

risposta

13

Il comando in lldb è "ricerca immagine". Penso che un esempio di "info func" < -> "image lookup" sia stato recentemente aggiunto alla pagina di comando lldb/gdb - http://lldb.llvm.org/lldb-gdb.html

ad es.

(lldb) im loo -n puts 
1 match found in /usr/lib/system/libsystem_c.dylib: 
     Address: libsystem_c.dylib[0x0000000000011d9a] (libsystem_c.dylib.__TEXT.__text + 69850) 
     Summary: libsystem_c.dylib`puts 
(lldb) 

anche se questo è solo la visione di l'offset in libsystem_c.dylib qui (0x11d9a) - per vedere l'indirizzo di carico effettivo si avrebbe bisogno di utilizzare l'opzione "-v" per ricerca di immagini che mostrerà la gamma di indirizzi che mette le copertine. Oppure si potrebbe fare questo in modo più diretto con la notazione segno di spunta nel lldb,

(lldb) reg read pc 
    rip = 0x0000000100000f2b a.out`main + 11 at a.c:3 
(lldb) reg write pc `(void(*)())puts` 
(lldb) reg read pc 
    rip = 0x00007fff99ce1d9a libsystem_c.dylib`puts 

OK ho dovuto lanciare puts() perché lldb necessario un prototipo di funzione qui - non super conveniente, ma se si tratta di una delle proprie funzioni non è necessario:

Problemi correlati