forked from Imagelibrary/rtems
2007-09-28 Joel Sherrill <joel.sherrill@oarcorp.com>
* libmisc/stackchk/check.c: Eliminate output with little information. Always print a blown message using the same routine. Now works with GNAT RTS -fstack-checking if you have patch for the RTEMS specific support in your GCC version.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2007-09-28 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* libmisc/stackchk/check.c: Eliminate output with little information.
|
||||
Always print a blown message using the same routine. Now works with
|
||||
GNAT RTS -fstack-checking if you have patch for the RTEMS specific
|
||||
support in your GCC version.
|
||||
|
||||
2007-09-25 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||
|
||||
* libcsupport/src/gxx_wrappers.c: Revert.
|
||||
|
||||
@@ -64,11 +64,9 @@ static inline boolean Stack_check_Frame_pointer_in_range(
|
||||
|
||||
#if defined(__GNUC__)
|
||||
if ( sp < the_stack->area ) {
|
||||
printk( "Stack Pointer Too Low!\n" );
|
||||
return FALSE;
|
||||
}
|
||||
if ( sp > (the_stack->area + the_stack->size) ) {
|
||||
printk( "Stack Pointer Too High!\n" );
|
||||
return FALSE;
|
||||
}
|
||||
#else
|
||||
@@ -225,16 +223,14 @@ void Stack_check_report_blown_task(
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
if (rtems_configuration_get_user_multiprocessing_table()) {
|
||||
printk(
|
||||
"; node=%d\n",
|
||||
"; node=%d",
|
||||
rtems_configuration_get_user_multiprocessing_table()->node
|
||||
);
|
||||
}
|
||||
#else
|
||||
printk( "\n" );
|
||||
#endif
|
||||
|
||||
printk(
|
||||
" stack covers range 0x%p - 0x%p (%d bytes)\n",
|
||||
"\n stack covers range 0x%p - 0x%p (%d bytes)\n",
|
||||
stack->area,
|
||||
stack->area + stack->size - 1,
|
||||
stack->size
|
||||
@@ -305,10 +301,17 @@ boolean rtems_stack_checker_is_blown( void )
|
||||
));
|
||||
}
|
||||
|
||||
if ( !sp_ok || !pattern_ok ) {
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
/*
|
||||
* The Stack Pointer and the Pattern Area are OK so return FALSE.
|
||||
*/
|
||||
if ( sp_ok && pattern_ok )
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* Let's report as much as we can.
|
||||
*/
|
||||
Stack_check_report_blown_task( _Thread_Executing, pattern_ok );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user