From 67cad729e609bcefba28db8a2b0b276ebed8edb1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 27 Feb 2009 15:09:14 +0000 Subject: 2009-02-27 Joel Sherrill * shared/startup/bspgetworkarea.c: Add check to determine if current stack pointer is in work area. --- c/src/lib/libbsp/powerpc/ChangeLog | 5 +++++ .../libbsp/powerpc/shared/startup/bspgetworkarea.c | 25 +++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog index 4013e15aad..eaa508b0da 100644 --- a/c/src/lib/libbsp/powerpc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/ChangeLog @@ -1,3 +1,8 @@ +2009-02-27 Joel Sherrill + + * shared/startup/bspgetworkarea.c: Add check to determine if current + stack pointer is in work area. + 2009-02-26 Joel Sherrill * shared/startup/bspgetworkarea.c: Make debug messages same as diff --git a/c/src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c b/c/src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c index b0e9b7fe78..9ad049767f 100644 --- a/c/src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c +++ b/c/src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c @@ -50,11 +50,26 @@ void bsp_get_work_area( * you are allocating the Work Area in a new BSP. */ #ifdef BSP_GET_WORK_AREA_DEBUG - printk( "work_area_start = %p\n", *work_area_start ); - printk( "work_area_size = %d 0x%08x\n", *work_area_size, *work_area_size ); - printk( "end = %p\n", *work_area_start + *work_area_size ); - printk( "heap_start = %p\n", *heap_start ); - printk( "heap_size = %d\n", *heap_size ); + { + void *sp = __builtin_frame_address(0); + void *end = *work_area_start + *work_area_size; + printk( + "work_area_start = 0x%p\n" + "work_area_size = %d 0x%08x\n" + "end = 0x%p\n" + "heap_start = 0x%p\n" + "heap_size = %d\n" + "current stack pointer = 0x%p%s\n", + *work_area_start, + *work_area_size, /* decimal */ + *work_area_size, /* hexadecimal */ + end, + *heap_start, + *heap_size, + sp, + ((sp >= *work_area_start && sp <= end) ? " OVERLAPS!" : "") + ); + } #endif } -- cgit v1.2.3