RTEMS-5
Annotated Report
Fri Aug 10 14:30:03 2018
40007b00 <rtems_stack_checker_begin_extension>:
static inline uint32_t _Per_CPU_Get_index( const Per_CPU_Control *cpu )
{
const Per_CPU_Control_envelope *per_cpu_envelope =
( const Per_CPU_Control_envelope * ) cpu;
return ( uint32_t ) ( per_cpu_envelope - &_Per_CPU_Information[ 0 ] );
40007b00: 07 33 33 33 sethi %hi(0xcccccc00), %g3
<== NOT EXECUTED
40007b04: 86 10 e0 cd or %g3, 0xcd, %g3 ! cccccccd <RAM_END+0x8c8ccccd>
<== NOT EXECUTED
40007b08: 03 10 02 44 sethi %hi(0x40091000), %g1
<== NOT EXECUTED
if ( stack->area == NULL ) {
40007b0c: 05 10 02 36 sethi %hi(0x4008d800), %g2
<== NOT EXECUTED
40007b10: 82 10 62 40 or %g1, 0x240, %g1
<== NOT EXECUTED
40007b14: 84 10 a2 7c or %g2, 0x27c, %g2
<== NOT EXECUTED
40007b18: 82 21 80 01 sub %g6, %g1, %g1
<== NOT EXECUTED
40007b1c: 83 38 60 04 sra %g1, 4, %g1
<== NOT EXECUTED
40007b20: 82 58 40 03 smul %g1, %g3, %g1
<== NOT EXECUTED
40007b24: 83 28 60 03 sll %g1, 3, %g1
<== NOT EXECUTED
40007b28: 86 00 80 01 add %g2, %g1, %g3
<== NOT EXECUTED
40007b2c: da 00 e0 04 ld [ %g3 + 4 ], %o5
<== NOT EXECUTED
40007b30: 80 a3 60 00 cmp %o5, 0
<== NOT EXECUTED
40007b34: 22 80 00 04 be,a 40007b44 <rtems_stack_checker_begin_extension+0x44>
<== NOT EXECUTED
40007b38: d0 01 a0 08 ld [ %g6 + 8 ], %o0
<== NOT EXECUTED
}
40007b3c: 81 c3 e0 08 retl
<== NOT EXECUTED
40007b40: 01 00 00 00 nop
<== NOT EXECUTED
stack->area = cpu_self->interrupt_stack_low;
40007b44: d0 20 e0 04 st %o0, [ %g3 + 4 ]
<== NOT EXECUTED
Stack_check_Dope_stack( stack );
40007b48: 92 10 20 a5 mov 0xa5, %o1
<== NOT EXECUTED
stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -
40007b4c: c8 01 a0 0c ld [ %g6 + 0xc ], %g4
<== NOT EXECUTED
40007b50: 88 21 00 08 sub %g4, %o0, %g4
<== NOT EXECUTED
Stack_check_Dope_stack( stack );
40007b54: 94 10 00 04 mov %g4, %o2
<== NOT EXECUTED
stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -
40007b58: c8 20 80 01 st %g4, [ %g2 + %g1 ]
<== NOT EXECUTED
Stack_check_Dope_stack( stack );
40007b5c: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
40007b60: 40 01 65 a6 call 400611f8 <memset>
<== NOT EXECUTED
40007b64: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
40007c70 <rtems_stack_checker_report_usage_with_plugin>:
*/
void rtems_stack_checker_report_usage_with_plugin(
const rtems_printer* printer
)
{
40007c70: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
uint32_t cpu_max;
uint32_t cpu_index;
rtems_printf(
40007c74: 13 10 01 f2 sethi %hi(0x4007c800), %o1
<== NOT EXECUTED
40007c78: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
40007c7c: 40 00 12 57 call 4000c5d8 <rtems_printf>
<== NOT EXECUTED
40007c80: 92 12 62 f8 or %o1, 0x2f8, %o1
<== NOT EXECUTED
" STACK USAGE BY THREAD\n"
"ID NAME LOW HIGH CURRENT AVAIL USED\n"
);
/* iterate over all threads and dump the usage */
rtems_task_iterate(
40007c84: 92 10 00 18 mov %i0, %o1
<== NOT EXECUTED
40007c88: 11 10 00 1e sethi %hi(0x40007800), %o0
<== NOT EXECUTED
40007c8c: 40 00 47 4a call 400199b4 <rtems_task_iterate>
<== NOT EXECUTED
40007c90: 90 12 22 84 or %o0, 0x284, %o0 ! 40007a84 <Stack_check_Dump_threads_usage>
<== NOT EXECUTED
Stack_check_Dump_threads_usage,
RTEMS_DECONST( rtems_printer *, printer )
);
cpu_max = rtems_get_processor_count();
40007c94: 40 00 46 30 call 40019554 <rtems_get_processor_count>
<== NOT EXECUTED
40007c98: 01 00 00 00 nop
<== NOT EXECUTED
for ( cpu_index = 0; cpu_index < cpu_max; ++cpu_index ) {
40007c9c: b4 92 20 00 orcc %o0, 0, %i2
<== NOT EXECUTED
40007ca0: 02 80 00 10 be 40007ce0 <rtems_stack_checker_report_usage_with_plugin+0x70>
<== NOT EXECUTED
40007ca4: 39 10 02 36 sethi %hi(0x4008d800), %i4
<== NOT EXECUTED
Stack_check_Dump_stack_usage(
40007ca8: 37 10 01 f2 sethi %hi(0x4007c800), %i3
<== NOT EXECUTED
40007cac: b8 17 22 7c or %i4, 0x27c, %i4
<== NOT EXECUTED
for ( cpu_index = 0; cpu_index < cpu_max; ++cpu_index ) {
40007cb0: ba 10 20 00 clr %i5
<== NOT EXECUTED
Stack_check_Dump_stack_usage(
40007cb4: b6 16 e3 80 or %i3, 0x380, %i3
<== NOT EXECUTED
40007cb8: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
40007cbc: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
40007cc0: 98 10 00 18 mov %i0, %o4
<== NOT EXECUTED
40007cc4: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
40007cc8: 7f ff ff 29 call 4000796c <Stack_check_Dump_stack_usage>
<== NOT EXECUTED
40007ccc: 92 10 20 00 clr %o1
<== NOT EXECUTED
for ( cpu_index = 0; cpu_index < cpu_max; ++cpu_index ) {
40007cd0: ba 07 60 01 inc %i5
<== NOT EXECUTED
40007cd4: 80 a6 80 1d cmp %i2, %i5
<== NOT EXECUTED
40007cd8: 12 bf ff f8 bne 40007cb8 <rtems_stack_checker_report_usage_with_plugin+0x48>
<== NOT EXECUTED
40007cdc: b8 07 20 08 add %i4, 8, %i4
<== NOT EXECUTED
&Stack_check_Interrupt_stack[ cpu_index ],
cpu_index,
printer
);
}
}
40007ce0: 81 c7 e0 08 ret
<== NOT EXECUTED
40007ce4: 81 e8 00 00 restore
<== NOT EXECUTED
40007b68 <rtems_stack_checker_switch_extension>:
{
40007b68: 9d e3 bf 80 save %sp, -128, %sp
<== NOT EXECUTED
if ( sp < the_stack->area ) {
40007b6c: fa 06 20 d0 ld [ %i0 + 0xd0 ], %i5
<== NOT EXECUTED
40007b70: b8 07 60 08 add %i5, 8, %i4
<== NOT EXECUTED
40007b74: 13 10 01 f2 sethi %hi(0x4007c800), %o1
<== NOT EXECUTED
40007b78: 94 10 20 10 mov 0x10, %o2
<== NOT EXECUTED
40007b7c: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
40007b80: 80 a7 80 1d cmp %fp, %i5
<== NOT EXECUTED
40007b84: 0a 80 00 0e bcs 40007bbc <rtems_stack_checker_switch_extension+0x54>
<== NOT EXECUTED
40007b88: 92 12 63 90 or %o1, 0x390, %o1
<== NOT EXECUTED
40007b8c: 40 01 64 e8 call 40060f2c <memcmp>
<== NOT EXECUTED
40007b90: 01 00 00 00 nop
<== NOT EXECUTED
if ( sp > (the_stack->area + the_stack->size) ) {
40007b94: c2 06 20 cc ld [ %i0 + 0xcc ], %g1
<== NOT EXECUTED
40007b98: 82 07 40 01 add %i5, %g1, %g1
<== NOT EXECUTED
40007b9c: 80 a7 80 01 cmp %fp, %g1
<== NOT EXECUTED
40007ba0: 18 80 00 0a bgu 40007bc8 <rtems_stack_checker_switch_extension+0x60>
<== NOT EXECUTED
40007ba4: b6 10 00 08 mov %o0, %i3
<== NOT EXECUTED
if ( !sp_ok || !pattern_ok ) {
40007ba8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40007bac: 12 80 00 08 bne 40007bcc <rtems_stack_checker_switch_extension+0x64>
<== NOT EXECUTED
40007bb0: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
}
40007bb4: 81 c7 e0 08 ret
<== NOT EXECUTED
40007bb8: 81 e8 00 00 restore
<== NOT EXECUTED
40007bbc: 40 01 64 dc call 40060f2c <memcmp>
<== NOT EXECUTED
40007bc0: 01 00 00 00 nop
<== NOT EXECUTED
40007bc4: b6 10 00 08 mov %o0, %i3
<== NOT EXECUTED
printk("BLOWN STACK!!!\n");
40007bc8: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007bcc: 40 00 12 60 call 4000c54c <printk>
<== NOT EXECUTED
40007bd0: 90 12 22 18 or %o0, 0x218, %o0 ! 4007ca18 <rtems_blkdev_imfs_node+0x80>
<== NOT EXECUTED
printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);
40007bd4: 92 10 00 18 mov %i0, %o1
<== NOT EXECUTED
40007bd8: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007bdc: 40 00 12 5c call 4000c54c <printk>
<== NOT EXECUTED
40007be0: 90 12 22 28 or %o0, 0x228, %o0 ! 4007ca28 <rtems_blkdev_imfs_node+0x90>
<== NOT EXECUTED
printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);
40007be4: d2 06 20 08 ld [ %i0 + 8 ], %o1
<== NOT EXECUTED
40007be8: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007bec: 40 00 12 58 call 4000c54c <printk>
<== NOT EXECUTED
40007bf0: 90 12 22 48 or %o0, 0x248, %o0 ! 4007ca48 <rtems_blkdev_imfs_node+0xb0>
<== NOT EXECUTED
printk(
40007bf4: d2 06 20 0c ld [ %i0 + 0xc ], %o1
<== NOT EXECUTED
40007bf8: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007bfc: 40 00 12 54 call 4000c54c <printk>
<== NOT EXECUTED
40007c00: 90 12 22 60 or %o0, 0x260, %o0 ! 4007ca60 <rtems_blkdev_imfs_node+0xc8>
<== NOT EXECUTED
_Thread_Get_name(running, name, sizeof(name));
40007c04: 94 10 20 20 mov 0x20, %o2
<== NOT EXECUTED
40007c08: 92 07 bf e0 add %fp, -32, %o1
<== NOT EXECUTED
40007c0c: 40 00 59 58 call 4001e16c <_Thread_Get_name>
<== NOT EXECUTED
40007c10: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
printk("task name string: %s\n", name);
40007c14: 92 07 bf e0 add %fp, -32, %o1
<== NOT EXECUTED
40007c18: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007c1c: 40 00 12 4c call 4000c54c <printk>
<== NOT EXECUTED
40007c20: 90 12 22 78 or %o0, 0x278, %o0 ! 4007ca78 <rtems_blkdev_imfs_node+0xe0>
<== NOT EXECUTED
(unsigned long) stack->size,
40007c24: d2 06 20 cc ld [ %i0 + 0xcc ], %o1
<== NOT EXECUTED
(intptr_t) stack->area,
40007c28: d4 06 20 d0 ld [ %i0 + 0xd0 ], %o2
<== NOT EXECUTED
printk(
40007c2c: 96 02 80 09 add %o2, %o1, %o3
<== NOT EXECUTED
40007c30: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007c34: 40 00 12 46 call 4000c54c <printk>
<== NOT EXECUTED
40007c38: 90 12 22 90 or %o0, 0x290, %o0 ! 4007ca90 <rtems_blkdev_imfs_node+0xf8>
<== NOT EXECUTED
if (!pattern_ok) {
40007c3c: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
40007c40: 12 80 00 05 bne 40007c54 <rtems_stack_checker_switch_extension+0xec>
<== NOT EXECUTED
40007c44: 96 07 60 18 add %i5, 0x18, %o3
<== NOT EXECUTED
40007c48: d2 06 20 0c ld [ %i0 + 0xc ], %o1
<== NOT EXECUTED
40007c4c: 40 00 4b 13 call 4001a898 <_Terminate>
<== NOT EXECUTED
40007c50: 90 10 20 08 mov 8, %o0
<== NOT EXECUTED
printk(
40007c54: 94 10 00 1c mov %i4, %o2
<== NOT EXECUTED
40007c58: 92 10 20 10 mov 0x10, %o1
<== NOT EXECUTED
40007c5c: 11 10 01 f2 sethi %hi(0x4007c800), %o0
<== NOT EXECUTED
40007c60: 40 00 12 3b call 4000c54c <printk>
<== NOT EXECUTED
40007c64: 90 12 22 c0 or %o0, 0x2c0, %o0 ! 4007cac0 <rtems_blkdev_imfs_node+0x128>
<== NOT EXECUTED
40007c68: 10 bf ff f9 b 40007c4c <rtems_stack_checker_switch_extension+0xe4>
<== NOT EXECUTED
40007c6c: d2 06 20 0c ld [ %i0 + 0xc ], %o1
<== NOT EXECUTED