summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/stackchk
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-22 19:59:35 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-06-22 19:59:35 +0000
commitba6f945a7e852a75c5b91474b4c9e0515962ebe0 (patch)
tree325a992406ec9d9845826649d7e699f95dd99d68 /testsuites/libtests/stackchk
parent2010-06-22 Jennifer Averett <Jennifer.Averett@OARcorp.com> (diff)
downloadrtems-ba6f945a7e852a75c5b91474b4c9e0515962ebe0.tar.bz2
2010-06-22 Joel Sherrill <joel.sherrilL@OARcorp.com>
* stackchk/blow.c, stackchk/stackchk.scn: Print a stack check report before blowing stack.
Diffstat (limited to 'testsuites/libtests/stackchk')
-rw-r--r--testsuites/libtests/stackchk/blow.c31
-rw-r--r--testsuites/libtests/stackchk/stackchk.scn7
2 files changed, 23 insertions, 15 deletions
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 <rtems.h>
+#include <rtems/stackchk.h>
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????????