2011-06-22 9 views
10

Me resulta realmente molesto tener que desmontar grandes porciones de código de la biblioteca solo para tener suficiente contexto para ver qué está causando un bloqueo. ¿Hay alguna forma de que pueda simplemente objdump una dirección, y hacer que encuentre los límites de la función que contiene para mí?¿Puedo darle a objdump una dirección y hacer que desarme la función que lo contiene?

EDITAR: Mejor aún, ¿puedo tenerlo desmontar todo un rastro de pila para mí?

+0

¿No puedes cargar el núcleo de choque en el BGF y explorar allí? (¿O cómo terminas con la dirección de bloqueo sin usar core o gdb?) – Rup

+0

No estoy seguro de si el bloqueo está generando un núcleo de bloqueo. Esto va hacia la depuración del kernel, y la biblioteca que está fallando lo hace muy temprano en el proceso de arranque. – Alex

Respuesta

14

¿Algo así como esto?

$ objdump -S --start-address=0x42 foo.o | awk '{print $0} $3~/retq?/{exit}' 

imprime el desmontaje lista partir de 0x42 hasta que encuentra un ret(q), suponiendo que el límite está marcada por ret(q)

Cuestiones relacionadas