RTEMS-6
Annotated Report
libstackchk
Mon Mar 1 00:23:54 2021

0000000040023d30 <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 ) {
    40023d30:   90000723    adrp    x3, 40107000 <rtems_libio_iops+0xa8>                  
    40023d34:   9125e064    add x4, x3, #0x978                                            
    40023d38:   f9400480    ldr x0, [x4, #8]                                              
    40023d3c:   b4000040    cbz x0, 40023d44 <rtems_stack_checker_begin_extension+0x14>   
    40023d40:   d65f03c0    ret                                                           
{                                                                                         
    40023d44:   a9be7bfd    stp x29, x30, [sp, #-32]!                                     
    stack->area = cpu_self->interrupt_stack_low;                                          
    40023d48:   90000720    adrp    x0, 40107000 <rtems_libio_iops+0xa8>                  
    40023d4c:   91270005    add x5, x0, #0x9c0                                            
{                                                                                         
    40023d50:   910003fd    mov x29, sp                                                   
    40023d54:   a90153f3    stp x19, x20, [sp, #16]                                       
  return memcmp(                                                                          
    40023d58:   d00000a1    adrp    x1, 40039000 <__trunctfdf2+0x2a0>                     
    40023d5c:   d2800202    mov x2, #0x10                   // #16                        
    stack->area = cpu_self->interrupt_stack_low;                                          
    40023d60:   f944e013    ldr x19, [x0, #2496]                                          
  return memcmp(                                                                          
    40023d64:   913c6021    add x1, x1, #0xf18                                            
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -                    
    40023d68:   f94004b4    ldr x20, [x5, #8]                                             
    stack->area = cpu_self->interrupt_stack_low;                                          
    40023d6c:   f9000493    str x19, [x4, #8]                                             
  return memcmp(                                                                          
    40023d70:   aa1303e0    mov x0, x19                                                   
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -                    
    40023d74:   cb130294    sub x20, x20, x19                                             
    40023d78:   f904bc74    str x20, [x3, #2424]                                          
  return memcmp(                                                                          
    40023d7c:   9400370b    bl  400319a8 <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 ) ) {                                
    40023d80:   350000e0    cbnz    w0, 40023d9c <rtems_stack_checker_begin_extension+0x6c><== NEVER TAKEN
  memset(                                                                                 
    40023d84:   d1004282    sub x2, x20, #0x10                                            
    40023d88:   91004260    add x0, x19, #0x10                                            
  }                                                                                       
                                                                                          
#if defined(RTEMS_SMP)                                                                    
  _Thread_Dispatch_enable( cpu_self );                                                    
#endif                                                                                    
}                                                                                         
    40023d8c:   a94153f3    ldp x19, x20, [sp, #16]                                       
  memset(                                                                                 
    40023d90:   528014a1    mov w1, #0xa5                   // #165                       
}                                                                                         
    40023d94:   a8c27bfd    ldp x29, x30, [sp], #32                                       
  memset(                                                                                 
    40023d98:   14003743    b   40031aa4 <memset>                                         
    40023d9c:   d28a8a41    mov x1, #0x5452                 // #21586                     <== NOT EXECUTED
    40023da0:   f2a929c1    movk    x1, #0x494e, lsl #16                                  <== NOT EXECUTED
    40023da4:   52800100    mov w0, #0x8                    // #8                         <== NOT EXECUTED
    40023da8:   940002ba    bl  40024890 <_Terminate>                                     <== NOT EXECUTED
    40023dac:   00000000    udf #0                                                        
                                                                                          

0000000040023db0 <rtems_stack_checker_switch_extension>: */ void rtems_stack_checker_switch_extension( Thread_Control *running, Thread_Control *heir ) {
    40023db0:   a9ba7bfd    stp x29, x30, [sp, #-96]!                                     
    40023db4:   910003fd    mov x29, sp                                                   
    40023db8:   a9025bf5    stp x21, x22, [sp, #32]                                       
    if ( sp < the_stack->area ) {                                                         
    40023dbc:   91052016    add x22, x0, #0x148                                           
{                                                                                         
    40023dc0:   a90153f3    stp x19, x20, [sp, #16]                                       
    40023dc4:   aa0003f3    mov x19, x0                                                   
    if ( sp < the_stack->area ) {                                                         
    40023dc8:   f94006d4    ldr x20, [x22, #8]                                            
{                                                                                         
    40023dcc:   f9001bf7    str x23, [sp, #48]                                            
    if ( sp < the_stack->area ) {                                                         
    40023dd0:   eb1d029f    cmp x20, x29                                                  
    40023dd4:   54000328    b.hi    40023e38 <rtems_stack_checker_switch_extension+0x88>  // b.pmore<== NEVER TAKEN
  return memcmp(                                                                          
    40023dd8:   d00000b5    adrp    x21, 40039000 <__trunctfdf2+0x2a0>                    
    40023ddc:   913c62b5    add x21, x21, #0xf18                                          
    40023de0:   aa1503e1    mov x1, x21                                                   
    40023de4:   aa1403e0    mov x0, x20                                                   
    40023de8:   d2800202    mov x2, #0x10                   // #16                        
    40023dec:   940036ef    bl  400319a8 <memcmp>                                         
    if ( sp > (the_stack->area + the_stack->size) ) {                                     
    40023df0:   f940a661    ldr x1, [x19, #328]                                           
  return memcmp(                                                                          
    40023df4:   2a0003f7    mov w23, w0                                                   
    if ( sp > (the_stack->area + the_stack->size) ) {                                     
    40023df8:   8b010281    add x1, x20, x1                                               
    40023dfc:   eb0103bf    cmp x29, x1                                                   
    40023e00:   54000288    b.hi    40023e50 <rtems_stack_checker_switch_extension+0xa0>  // b.pmore<== NEVER TAKEN
#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 ) {                                                          
    40023e04:   35000260    cbnz    w0, 40023e50 <rtems_stack_checker_switch_extension+0xa0>
  }                                                                                       
#endif                                                                                    
                                                                                          
  stack = &Stack_check_Interrupt_stack[ _SMP_Get_current_processor() ];                   
                                                                                          
  if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) {           
    40023e08:   90000720    adrp    x0, 40107000 <rtems_libio_iops+0xa8>                  
    40023e0c:   f944c000    ldr x0, [x0, #2432]                                           
    40023e10:   b40000a0    cbz x0, 40023e24 <rtems_stack_checker_switch_extension+0x74>  <== NEVER TAKEN
  return memcmp(                                                                          
    40023e14:   aa1503e1    mov x1, x21                                                   
    40023e18:   d2800202    mov x2, #0x10                   // #16                        
    40023e1c:   940036e3    bl  400319a8 <memcmp>                                         
  if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) {           
    40023e20:   35000680    cbnz    w0, 40023ef0 <rtems_stack_checker_switch_extension+0x140><== NEVER TAKEN
    rtems_fatal(                                                                          
      RTEMS_FATAL_SOURCE_STACK_CHECKER,                                                   
      rtems_build_name( 'I', 'N', 'T', 'R' )                                              
    );                                                                                    
  }                                                                                       
}                                                                                         
    40023e24:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40023e28:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40023e2c:   f9401bf7    ldr x23, [sp, #48]                                            
    40023e30:   a8c67bfd    ldp x29, x30, [sp], #96                                       
    40023e34:   d65f03c0    ret                                                           
  return memcmp(                                                                          
    40023e38:   aa1403e0    mov x0, x20                                                   <== NOT EXECUTED
    40023e3c:   d00000a1    adrp    x1, 40039000 <__trunctfdf2+0x2a0>                     <== NOT EXECUTED
    40023e40:   d2800202    mov x2, #0x10                   // #16                        <== NOT EXECUTED
    40023e44:   913c6021    add x1, x1, #0xf18                                            <== NOT EXECUTED
    40023e48:   940036d8    bl  400319a8 <memcmp>                                         <== NOT EXECUTED
    40023e4c:   2a0003f7    mov w23, w0                                                   <== NOT EXECUTED
  printk("BLOWN STACK!!!\n");                                                             
    40023e50:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023e54:   9138c000    add x0, x0, #0xe30                                            
    40023e58:   94001036    bl  40027f30 <printk>                                         
  printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);                   
    40023e5c:   aa1303e1    mov x1, x19                                                   
    40023e60:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023e64:   91390000    add x0, x0, #0xe40                                            
    40023e68:   94001032    bl  40027f30 <printk>                                         
  printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);                       
    40023e6c:   b9401261    ldr w1, [x19, #16]                                            
    40023e70:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023e74:   91398000    add x0, x0, #0xe60                                            
    40023e78:   9400102e    bl  40027f30 <printk>                                         
  printk(                                                                                 
    40023e7c:   b9401a61    ldr w1, [x19, #24]                                            
    40023e80:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023e84:   9139e000    add x0, x0, #0xe78                                            
    40023e88:   9400102a    bl  40027f30 <printk>                                         
  _Thread_Get_name(running, name, sizeof(name));                                          
    40023e8c:   d2800402    mov x2, #0x20                   // #32                        
    40023e90:   910103a1    add x1, x29, #0x40                                            
    40023e94:   aa1303e0    mov x0, x19                                                   
    40023e98:   940007ee    bl  40025e50 <_Thread_Get_name>                               
  printk("task name string: %s\n", name);                                                 
    40023e9c:   910103a1    add x1, x29, #0x40                                            
    40023ea0:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023ea4:   913a4000    add x0, x0, #0xe90                                            
    40023ea8:   94001022    bl  40027f30 <printk>                                         
    (intptr_t) stack->area,                                                               
    40023eac:   f94006c2    ldr x2, [x22, #8]                                             
  printk(                                                                                 
    40023eb0:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023eb4:   913aa000    add x0, x0, #0xea8                                            
    (unsigned long) stack->size,                                                          
    40023eb8:   f940a661    ldr x1, [x19, #328]                                           
  printk(                                                                                 
    40023ebc:   8b010043    add x3, x2, x1                                                
    40023ec0:   9400101c    bl  40027f30 <printk>                                         
  if (!pattern_ok) {                                                                      
    40023ec4:   35000097    cbnz    w23, 40023ed4 <rtems_stack_checker_switch_extension+0x124><== ALWAYS TAKEN
    40023ec8:   b9401a61    ldr w1, [x19, #24]                                            
    40023ecc:   52800100    mov w0, #0x8                    // #8                         
    40023ed0:   94000270    bl  40024890 <_Terminate>                                     
    printk(                                                                               
    40023ed4:   91004283    add x3, x20, #0x10                                            
    40023ed8:   aa1403e2    mov x2, x20                                                   
    40023edc:   d00000a0    adrp    x0, 40039000 <__trunctfdf2+0x2a0>                     
    40023ee0:   d2800201    mov x1, #0x10                   // #16                        
    40023ee4:   913b8000    add x0, x0, #0xee0                                            
    40023ee8:   94001012    bl  40027f30 <printk>                                         
    40023eec:   17fffff7    b   40023ec8 <rtems_stack_checker_switch_extension+0x118>     
    40023ef0:   d28a8a41    mov x1, #0x5452                 // #21586                     <== NOT EXECUTED
    40023ef4:   f2a929c1    movk    x1, #0x494e, lsl #16                                  <== NOT EXECUTED
    40023ef8:   52800100    mov w0, #0x8                    // #8                         <== NOT EXECUTED
    40023efc:   94000265    bl  40024890 <_Terminate>                                     <== NOT EXECUTED