From: Michael Brown Date: Thu, 1 Feb 2007 02:17:59 +0000 (+0000) Subject: Also print out stack pointer (with optional stack dump) X-Git-Tag: v0.9.3~470 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c650c8c84ac18e7403df5cc60c35db8aa80ec4fe;p=thirdparty%2Fipxe.git Also print out stack pointer (with optional stack dump) --- diff --git a/src/arch/i386/core/nulltrap.c b/src/arch/i386/core/nulltrap.c index 61fe5564c..3046fbecf 100644 --- a/src/arch/i386/core/nulltrap.c +++ b/src/arch/i386/core/nulltrap.c @@ -3,6 +3,7 @@ __attribute__ (( noreturn, section ( ".text.null_trap" ) )) void null_function_trap ( void ) { + void *stack; /* 128 bytes of NOPs; the idea of this is that if something * dereferences a NULL pointer and overwrites us, we at least @@ -42,7 +43,9 @@ void null_function_trap ( void ) { __asm__ __volatile__ ( "nop ; nop ; nop ; nop" ); __asm__ __volatile__ ( "nop ; nop ; nop ; nop" ); - printf ( "NULL method called from %p\n", - __builtin_return_address ( 0 ) ); + __asm__ __volatile__ ( "movl %%esp, %0" : "=r" ( stack ) ); + printf ( "NULL method called from %p (stack %p)\n", + __builtin_return_address ( 0 ), stack ); + DBG_HD ( stack, 256 ); while ( 1 ) {} }