In GDB, posso usare "info line func_name" per ottenere l'indirizzo di memoria di func_name, e quindi usare "set $ PC = memory_address" per avviare il debug di questa funzione. Come faccio lo stesso all'interno di lldb? Grazie in anticipo!Come trovare l'indirizzo di memoria di una funzione con lldb?
5
A
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
- 1. lldb: Stampa dell'indirizzo di una variabile
- 2. Come trovare perdite di memoria con Clang
- 3. Come posso trovare una perdita di memoria su Heroku?
- 4. Come trovare una perdita di memoria nell'app Meteor
- 5. Come trovare una derivata di una funzione utilizzando c
- 6. memoria dinamica creato all'interno di una funzione
- 7. Trovare le proprietà di una funzione reale
- 8. Trovare il massimo di una funzione
- 9. messaggio di errore strano in Xcode 4.3 con LLDB
- 10. Come trovare la memoria usata dall'oggetto ruby?
- 11. Come trovare se una funzione è rientrante
- 12. Il comando 'thread return' di LLDB emette un errore in una funzione Swift
- 13. Come trovare il tipo di una funzione in Elm repl
- 14. Trovare l'indice di un elemento all'interno di una funzione live
- 15. LLDB manuale/documentazione
- 16. Impossibile trovare la perdita di memoria
- 17. Come allocare una memoria con autorizzazioni di esecuzione?
- 18. jQuery - trovare non una funzione?
- 19. LLDB: aggiungi un file di simboli?
- 20. Come trovare problemi di smaltimento e di memoria? C#
- 21. Come utilizzare il contenuto dello stack in una condizione di punto di interruzione LLDB?
- 22. Tracciamento * massimo * dell'utilizzo della memoria con una funzione Python
- 23. Come catturare una memoria scrivere e chiamare la funzione con l'indirizzo di scrittura
- 24. Come trovare perdite di memoria in un'applicazione Phoneegap
- 25. Ricorsione con allocazione di memoria
- 26. Algoritmo per trovare il valore minimo di una funzione
- 27. Come utilizzare Application Verifier per trovare perdite di memoria
- 28. Come posso trovare perdite di memoria nel mio programma Python?
- 29. Memoria libera allocata in una funzione diversa?
- 30. LLDB C++ debugging