2012-08-17 18 views

Respuesta

13

El comando en lldb es "búsqueda de imágenes". Creo que recientemente se agregó un ejemplo de "info func" < -> "búsqueda de imágenes" a la página de comandos lldb/gdb - http://lldb.llvm.org/lldb-gdb.html

p.

(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) 

aunque esto es sólo mostrando el desplazamiento en libsystem_c.dylib aquí (0x11d9a) - para ver la dirección de la carga real que tendría que utilizar la opción "-v" para buscar la imagen que se mostrará la gama de direcciones que pone cubiertas. O usted puede hacer esto de manera más directa con la notación de la garrapata de vuelta en 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 Tuve que desechar puts() porque LLDB necesario un prototipo de función aquí - no muy práctico, pero si se trata de una de sus propias funciones eso no es necesario:

(lldb) reg write pc `main` 
(lldb) reg read pc 
    rip = 0x0000000100000f20 a.out`main at a.c:2 
Cuestiones relacionadas