RTEMS-6
Annotated Report
libstackchk
Sun Feb 28 12:35:32 2021
400035cc <rtems_stack_checker_begin_extension>:
#endif
cpu_self_index = _Per_CPU_Get_index( cpu_self );
stack = &Stack_check_Interrupt_stack[ cpu_self_index ];
if ( stack->area == NULL ) {
400035cc: 8c418793 addi a5,gp,-1852 # 40014ad4 <Stack_check_Interrupt_stack>
400035d0: 0047a703 lw a4,4(a5) # f004 <bsp_section_bss_size+0x9fc8>
400035d4: 00070463 beqz a4,400035dc <rtems_stack_checker_begin_extension+0x10>
400035d8: 00008067 ret
stack->area = cpu_self->interrupt_stack_low;
400035dc: 40019737 lui a4,0x40019
{
400035e0: ff010113 addi sp,sp,-16
stack->area = cpu_self->interrupt_stack_low;
400035e4: f8070713 addi a4,a4,-128 # 40018f80 <_Per_CPU_Information>
{
400035e8: 00812423 sw s0,8(sp)
400035ec: 00912223 sw s1,4(sp)
stack->area = cpu_self->interrupt_stack_low;
400035f0: 02072403 lw s0,32(a4)
stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -
400035f4: 02472483 lw s1,36(a4)
{
400035f8: 00112623 sw ra,12(sp)
return memcmp(
400035fc: 400135b7 lui a1,0x40013
stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -
40003600: 408484b3 sub s1,s1,s0
return memcmp(
40003604: 01000613 li a2,16
40003608: cf058593 addi a1,a1,-784 # 40012cf0 <Stack_check_Sanity_pattern>
4000360c: 00040513 mv a0,s0
stack->area = cpu_self->interrupt_stack_low;
40003610: 0087a223 sw s0,4(a5)
stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -
40003614: 0097a023 sw s1,0(a5)
return memcmp(
40003618: 6300e0ef jal ra,40011c48 <memcmp>
(char *) cpu_self->interrupt_stack_low );
/*
* Sanity pattern has been added by Stack_check_Prepare_interrupt_stack()
*/
if ( !Stack_check_Is_sanity_pattern_valid( stack ) ) {
4000361c: 02051263 bnez a0,40003640 <rtems_stack_checker_begin_extension+0x74><== NEVER TAKEN
memset(
40003620: 01040513 addi a0,s0,16
}
#if defined(RTEMS_SMP)
_Thread_Dispatch_enable( cpu_self );
#endif
}
40003624: 00812403 lw s0,8(sp)
40003628: 00c12083 lw ra,12(sp)
memset(
4000362c: ff048613 addi a2,s1,-16
}
40003630: 00412483 lw s1,4(sp)
memset(
40003634: 0a500593 li a1,165
}
40003638: 01010113 addi sp,sp,16
memset(
4000363c: 7ac0e06f j 40011de8 <memset>
40003640: 494e55b7 lui a1,0x494e5 <== NOT EXECUTED
40003644: 45258593 addi a1,a1,1106 # 494e5452 <RamEnd+0x84e5452> <== NOT EXECUTED
40003648: 00800513 li a0,8 <== NOT EXECUTED
4000364c: 3ad000ef jal ra,400041f8 <_Terminate> <== NOT EXECUTED
40003650 <rtems_stack_checker_switch_extension>:
*/
void rtems_stack_checker_switch_extension(
Thread_Control *running,
Thread_Control *heir
)
{
40003650: fc010113 addi sp,sp,-64
40003654: 02812c23 sw s0,56(sp)
40003658: 02912a23 sw s1,52(sp)
4000365c: 03212823 sw s2,48(sp)
40003660: 02112e23 sw ra,60(sp)
40003664: 03312623 sw s3,44(sp)
40003668: 03412423 sw s4,40(sp)
4000366c: 04010413 addi s0,sp,64
if ( sp < the_stack->area ) {
40003670: 0d052903 lw s2,208(a0)
{
40003674: 00050493 mv s1,a0
if ( sp < the_stack->area ) {
40003678: 07246263 bltu s0,s2,400036dc <rtems_stack_checker_switch_extension+0x8c>
return memcmp(
4000367c: 400139b7 lui s3,0x40013
40003680: 01000613 li a2,16
40003684: cf098593 addi a1,s3,-784 # 40012cf0 <Stack_check_Sanity_pattern>
40003688: 00090513 mv a0,s2
4000368c: 5bc0e0ef jal ra,40011c48 <memcmp>
if ( sp > (the_stack->area + the_stack->size) ) {
40003690: 0cc4a783 lw a5,204(s1)
return memcmp(
40003694: 00050a13 mv s4,a0
if ( sp > (the_stack->area + the_stack->size) ) {
40003698: 00f907b3 add a5,s2,a5
4000369c: 0487ec63 bltu a5,s0,400036f4 <rtems_stack_checker_switch_extension+0xa4>
#else
sp_ok = Stack_check_Frame_pointer_in_range( running );
pattern_ok = Stack_check_Is_sanity_pattern_valid( &running->Start.Initial_stack );
if ( !sp_ok || !pattern_ok ) {
400036a0: 0e051663 bnez a0,4000378c <rtems_stack_checker_switch_extension+0x13c>
}
#endif
stack = &Stack_check_Interrupt_stack[ _SMP_Get_current_processor() ];
if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) {
400036a4: 8c81a503 lw a0,-1848(gp) # 40014ad8 <Stack_check_Interrupt_stack+0x4>
400036a8: 00050a63 beqz a0,400036bc <rtems_stack_checker_switch_extension+0x6c><== NEVER TAKEN
return memcmp(
400036ac: 01000613 li a2,16
400036b0: cf098593 addi a1,s3,-784
400036b4: 5940e0ef jal ra,40011c48 <memcmp>
if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) {
400036b8: 0c051263 bnez a0,4000377c <rtems_stack_checker_switch_extension+0x12c><== NEVER TAKEN
rtems_fatal(
RTEMS_FATAL_SOURCE_STACK_CHECKER,
rtems_build_name( 'I', 'N', 'T', 'R' )
);
}
}
400036bc: 03c12083 lw ra,60(sp)
400036c0: 03812403 lw s0,56(sp)
400036c4: 03412483 lw s1,52(sp)
400036c8: 03012903 lw s2,48(sp)
400036cc: 02c12983 lw s3,44(sp)
400036d0: 02812a03 lw s4,40(sp)
400036d4: 04010113 addi sp,sp,64
400036d8: 00008067 ret
return memcmp(
400036dc: 400135b7 lui a1,0x40013 <== NOT EXECUTED
400036e0: 01000613 li a2,16 <== NOT EXECUTED
400036e4: cf058593 addi a1,a1,-784 # 40012cf0 <Stack_check_Sanity_pattern><== NOT EXECUTED
400036e8: 00090513 mv a0,s2 <== NOT EXECUTED
400036ec: 55c0e0ef jal ra,40011c48 <memcmp> <== NOT EXECUTED
400036f0: 00050a13 mv s4,a0 <== NOT EXECUTED
printk("BLOWN STACK!!!\n");
400036f4: 40013537 lui a0,0x40013 <== NOT EXECUTED
400036f8: c2050513 addi a0,a0,-992 # 40012c20 <IMFS_node_control_sym_link+0x10><== NOT EXECUTED
400036fc: 6c8040ef jal ra,40007dc4 <printk> <== NOT EXECUTED
printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);
40003700: 40013537 lui a0,0x40013 <== NOT EXECUTED
40003704: 00048593 mv a1,s1 <== NOT EXECUTED
40003708: c3050513 addi a0,a0,-976 # 40012c30 <IMFS_node_control_sym_link+0x20><== NOT EXECUTED
4000370c: 6b8040ef jal ra,40007dc4 <printk> <== NOT EXECUTED
printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);
40003710: 0084a583 lw a1,8(s1) <== NOT EXECUTED
40003714: 40013537 lui a0,0x40013 <== NOT EXECUTED
40003718: c4c50513 addi a0,a0,-948 # 40012c4c <IMFS_node_control_sym_link+0x3c><== NOT EXECUTED
4000371c: 6a8040ef jal ra,40007dc4 <printk> <== NOT EXECUTED
printk(
40003720: 00c4a583 lw a1,12(s1) <== NOT EXECUTED
40003724: 40013537 lui a0,0x40013 <== NOT EXECUTED
40003728: c6050513 addi a0,a0,-928 # 40012c60 <IMFS_node_control_sym_link+0x50><== NOT EXECUTED
4000372c: 698040ef jal ra,40007dc4 <printk> <== NOT EXECUTED
_Thread_Get_name(running, name, sizeof(name));
40003730: 02000613 li a2,32 <== NOT EXECUTED
40003734: fc040593 addi a1,s0,-64 <== NOT EXECUTED
40003738: 00048513 mv a0,s1 <== NOT EXECUTED
4000373c: 390020ef jal ra,40005acc <_Thread_Get_name> <== NOT EXECUTED
printk("task name string: %s\n", name);
40003740: 40013537 lui a0,0x40013 <== NOT EXECUTED
40003744: fc040593 addi a1,s0,-64 <== NOT EXECUTED
40003748: c7450513 addi a0,a0,-908 # 40012c74 <IMFS_node_control_sym_link+0x64><== NOT EXECUTED
4000374c: 678040ef jal ra,40007dc4 <printk> <== NOT EXECUTED
(unsigned long) stack->size,
40003750: 0cc4a683 lw a3,204(s1) <== NOT EXECUTED
(intptr_t) stack->area,
40003754: 0d04a603 lw a2,208(s1) <== NOT EXECUTED
printk(
40003758: 40013537 lui a0,0x40013 <== NOT EXECUTED
4000375c: 00068593 mv a1,a3 <== NOT EXECUTED
40003760: c8c50513 addi a0,a0,-884 # 40012c8c <IMFS_node_control_sym_link+0x7c><== NOT EXECUTED
40003764: 00d606b3 add a3,a2,a3 <== NOT EXECUTED
40003768: 65c040ef jal ra,40007dc4 <printk> <== NOT EXECUTED
if (!pattern_ok) {
4000376c: 080a1c63 bnez s4,40003804 <rtems_stack_checker_switch_extension+0x1b4><== NOT EXECUTED
40003770: 00c4a583 lw a1,12(s1)
40003774: 00800513 li a0,8
40003778: 281000ef jal ra,400041f8 <_Terminate>
4000377c: 494e55b7 lui a1,0x494e5 <== NOT EXECUTED
40003780: 45258593 addi a1,a1,1106 # 494e5452 <RamEnd+0x84e5452> <== NOT EXECUTED
40003784: 00800513 li a0,8 <== NOT EXECUTED
40003788: 271000ef jal ra,400041f8 <_Terminate> <== NOT EXECUTED
printk("BLOWN STACK!!!\n");
4000378c: 40013537 lui a0,0x40013
40003790: c2050513 addi a0,a0,-992 # 40012c20 <IMFS_node_control_sym_link+0x10>
40003794: 630040ef jal ra,40007dc4 <printk>
printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);
40003798: 40013537 lui a0,0x40013
4000379c: 00048593 mv a1,s1
400037a0: c3050513 addi a0,a0,-976 # 40012c30 <IMFS_node_control_sym_link+0x20>
400037a4: 620040ef jal ra,40007dc4 <printk>
printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);
400037a8: 0084a583 lw a1,8(s1)
400037ac: 40013537 lui a0,0x40013
400037b0: c4c50513 addi a0,a0,-948 # 40012c4c <IMFS_node_control_sym_link+0x3c>
400037b4: 610040ef jal ra,40007dc4 <printk>
printk(
400037b8: 00c4a583 lw a1,12(s1)
400037bc: 40013537 lui a0,0x40013
400037c0: c6050513 addi a0,a0,-928 # 40012c60 <IMFS_node_control_sym_link+0x50>
400037c4: 600040ef jal ra,40007dc4 <printk>
_Thread_Get_name(running, name, sizeof(name));
400037c8: 02000613 li a2,32
400037cc: fc040593 addi a1,s0,-64
400037d0: 00048513 mv a0,s1
400037d4: 2f8020ef jal ra,40005acc <_Thread_Get_name>
printk("task name string: %s\n", name);
400037d8: 40013537 lui a0,0x40013
400037dc: fc040593 addi a1,s0,-64
400037e0: c7450513 addi a0,a0,-908 # 40012c74 <IMFS_node_control_sym_link+0x64>
400037e4: 5e0040ef jal ra,40007dc4 <printk>
(unsigned long) stack->size,
400037e8: 0cc4a683 lw a3,204(s1)
(intptr_t) stack->area,
400037ec: 0d04a603 lw a2,208(s1)
printk(
400037f0: 40013537 lui a0,0x40013
400037f4: 00068593 mv a1,a3
400037f8: c8c50513 addi a0,a0,-884 # 40012c8c <IMFS_node_control_sym_link+0x7c>
400037fc: 00d606b3 add a3,a2,a3
40003800: 5c4040ef jal ra,40007dc4 <printk>
printk(
40003804: 40013537 lui a0,0x40013
40003808: 01090693 addi a3,s2,16
4000380c: 00090613 mv a2,s2
40003810: 01000593 li a1,16
40003814: cbc50513 addi a0,a0,-836 # 40012cbc <IMFS_node_control_sym_link+0xac>
40003818: 5ac040ef jal ra,40007dc4 <printk>
4000381c: f55ff06f j 40003770 <rtems_stack_checker_switch_extension+0x120>