This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to get Call Stack from stack data.

Note: This was originally posted on 23rd January 2009 at http://forums.arm.com

Hi everyone.

   Here is a question that puzzled me a long time. if I get stack data(HEX data),  anyone konw that how to get call stack from it.

   How to know that which is R14.
Parents
  • Note: This was originally posted on 25th March 2009 at http://forums.arm.com

    Thank you for all your reply.

         Recently, I am studying a new platform,  when system crash, it can output all task stack data and also identify which is R14 in the stack data as the following:

    [color="#FF0000"] [0a0243fc/821933fc]=00003320  TCC_Task_Shell()           [/color]      
      [0a0243f8/821933f8]=00000000 
      [0a0243f4/821933f4]=00000000 
      [0a0243f0/821933f0]=00000000 
      [0a0243ec/821933ec]=00000000 
    [color="#FF0000"] [0a0243e8/821933e8]=0000332f  TCC_Task_Shell()                   call FuncPtr (Thumb BLX R0)[/color]  [0a0243e4/821933e4]=00000000 
      [0a0243e0/821933e0]=00000000 
      [0a0243dc/821933dc]=00000000 
      [0a0243d8/821933d8]=813085ec 
      [0a0243d4/821933d4]=000b4ba8 
      [0a0243d0/821933d0]=80eb4bd4 
      [0a0243cc/821933cc]=000b4ba8 
      [0a0243c8/821933c8]=00000001 
      [0a0243c4/821933c4]=00000000 
      [0a0243c0/821933c0]=00000000 
      [color="#FF0000"][0a0243bc/821933bc]=000000c0  TCT_Control_Interrupts()         
      [0a0243b8/821933b8]=8110bec7  capi2driverTask_Entry()            call(Thumb BL) CAPI2_HandleEvent()               [/color]  [0a0243b4/821933b4]=81372868 
      [0a0243b0/821933b0]=00000011 
      [0a0243ac/821933ac]=00000000 
      [0a0243a8/821933a8]=81905240 
      [0a0243a4/821933a4]=81905220 
    [color="#FF0000"] [0a0243a0/821933a0]=80f7849f  CAPI2_HandleEvent()                call(Thumb BL) CAPI2_DispatchMsg()               [/color]  [0a02439c/8219339c]=81372868 

      and the wonderful comments in the specification:

    [color="#FF0000"]  Red colored lines are the actual function call traces[/color] The others can be ignored (they are registers/parameters/
      local variables pushed into the stack when a function is called)


      How to implement it.

      Thank you very mcuh
Reply
  • Note: This was originally posted on 25th March 2009 at http://forums.arm.com

    Thank you for all your reply.

         Recently, I am studying a new platform,  when system crash, it can output all task stack data and also identify which is R14 in the stack data as the following:

    [color="#FF0000"] [0a0243fc/821933fc]=00003320  TCC_Task_Shell()           [/color]      
      [0a0243f8/821933f8]=00000000 
      [0a0243f4/821933f4]=00000000 
      [0a0243f0/821933f0]=00000000 
      [0a0243ec/821933ec]=00000000 
    [color="#FF0000"] [0a0243e8/821933e8]=0000332f  TCC_Task_Shell()                   call FuncPtr (Thumb BLX R0)[/color]  [0a0243e4/821933e4]=00000000 
      [0a0243e0/821933e0]=00000000 
      [0a0243dc/821933dc]=00000000 
      [0a0243d8/821933d8]=813085ec 
      [0a0243d4/821933d4]=000b4ba8 
      [0a0243d0/821933d0]=80eb4bd4 
      [0a0243cc/821933cc]=000b4ba8 
      [0a0243c8/821933c8]=00000001 
      [0a0243c4/821933c4]=00000000 
      [0a0243c0/821933c0]=00000000 
      [color="#FF0000"][0a0243bc/821933bc]=000000c0  TCT_Control_Interrupts()         
      [0a0243b8/821933b8]=8110bec7  capi2driverTask_Entry()            call(Thumb BL) CAPI2_HandleEvent()               [/color]  [0a0243b4/821933b4]=81372868 
      [0a0243b0/821933b0]=00000011 
      [0a0243ac/821933ac]=00000000 
      [0a0243a8/821933a8]=81905240 
      [0a0243a4/821933a4]=81905220 
    [color="#FF0000"] [0a0243a0/821933a0]=80f7849f  CAPI2_HandleEvent()                call(Thumb BL) CAPI2_DispatchMsg()               [/color]  [0a02439c/8219339c]=81372868 

      and the wonderful comments in the specification:

    [color="#FF0000"]  Red colored lines are the actual function call traces[/color] The others can be ignored (they are registers/parameters/
      local variables pushed into the stack when a function is called)


      How to implement it.

      Thank you very mcuh
Children
No data