From c650c8c84ac18e7403df5cc60c35db8aa80ec4fe Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 1 Feb 2007 02:17:59 +0000 Subject: [PATCH] Also print out stack pointer (with optional stack dump) --- src/arch/i386/core/nulltrap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/arch/i386/core/nulltrap.c b/src/arch/i386/core/nulltrap.c index 61fe5564..3046fbec 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 ) {} }