From ba6f945a7e852a75c5b91474b4c9e0515962ebe0 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 22 Jun 2010 19:59:35 +0000 Subject: 2010-06-22 Joel Sherrill * stackchk/blow.c, stackchk/stackchk.scn: Print a stack check report before blowing stack. --- testsuites/libtests/ChangeLog | 5 +++++ testsuites/libtests/stackchk/blow.c | 31 ++++++++++++++++--------------- testsuites/libtests/stackchk/stackchk.scn | 7 +++++++ 3 files changed, 28 insertions(+), 15 deletions(-) (limited to 'testsuites/libtests') diff --git a/testsuites/libtests/ChangeLog b/testsuites/libtests/ChangeLog index e1d637d88c..7f0d49a68a 100644 --- a/testsuites/libtests/ChangeLog +++ b/testsuites/libtests/ChangeLog @@ -1,3 +1,8 @@ +2010-06-22 Joel Sherrill + + * stackchk/blow.c, stackchk/stackchk.scn: Print a stack check report + before blowing stack. + 2010-06-22 Jennifer Averett * Makefile.am, configure.ac: Added test that attempts to free stack diff --git a/testsuites/libtests/stackchk/blow.c b/testsuites/libtests/stackchk/blow.c index de5d4ee1fc..feefa5678c 100644 --- a/testsuites/libtests/stackchk/blow.c +++ b/testsuites/libtests/stackchk/blow.c @@ -14,6 +14,7 @@ */ #include +#include void b(void) {} @@ -28,22 +29,22 @@ b(); * does not cause problems :) */ - area = (unsigned char *)_Thread_Executing->Start.Initial_stack.area; + area = (unsigned char *)_Thread_Executing->Start.Initial_stack.area; - /* Look in the stack checker implementation for this magic offset */ - low = (volatile uint32_t *) (area + sizeof(Heap_Block) - HEAP_BLOCK_HEADER_SIZE); - high = (volatile uint32_t *) - (area + _Thread_Executing->Start.Initial_stack.size - 16); + /* Look in the stack checker implementation for this magic offset */ + low = (volatile uint32_t *) \ + (area + sizeof(Heap_Block) - HEAP_BLOCK_HEADER_SIZE); + high = (volatile uint32_t *) + (area + _Thread_Executing->Start.Initial_stack.size - 16); + low[0] = 0x11111111; + low[1] = 0x22222222; + low[2] = 0x33333333; + low[3] = 0x44444444; - low[0] = 0x11111111; - low[1] = 0x22222222; - low[2] = 0x33333333; - low[3] = 0x44444444; - - high[0] = 0x55555555; - high[1] = 0x66666666; - high[2] = 0x77777777; - high[3] = 0x88888888; - + high[0] = 0x55555555; + high[1] = 0x66666666; + high[2] = 0x77777777; + high[3] = 0x88888888; + rtems_stack_checker_report_usage(); } diff --git a/testsuites/libtests/stackchk/stackchk.scn b/testsuites/libtests/stackchk/stackchk.scn index df47a61dbb..5f30fc22ea 100644 --- a/testsuites/libtests/stackchk/stackchk.scn +++ b/testsuites/libtests/stackchk/stackchk.scn @@ -5,6 +5,13 @@ TA3 - rtems_clock_get_tod - 09:00:00 12/31/1988 TA1 - rtems_clock_get_tod - 09:00:05 12/31/1988 TA1 - rtems_clock_get_tod - 09:00:10 12/31/1988 TA2 - rtems_clock_get_tod - 09:00:10 12/31/1988 +Stack usage by thread + ID NAME LOW HIGH CURRENT AVAILABLE USED +0x09010001 IDLE 0002022AE0 - 0002023AEF 00020238B0 4096 592 +0x0A010002 TA1 0002025630 - 000202863F 0002028420 12288 2752 +0x0A010003 TA2 0002028BD8 - 000202BBE7 000202B9C0 12288 2856 +0x0A010004 TA3 000202C180 - 000202F18F 000202EF70 12288 2752 +0xFFFFFFFF INTR 0002020200 - 00020211FF 0000000000 4080 792 TA1 - rtems_clock_get_tod - 09:00:15 12/31/1988 BLOWN STACK!!! task control block: 0x???????? -- cgit v1.2.3