Hi All, We are having problems getting a stack backtrace using libunwind on arm-based embedded Linux platform. I have updated libunwind to version 1.4.0 and when we get a SIG 11 fault, I see the following backtrace:
com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: start com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #1 ip=0x00000000000220d4 sp=0x00000000b62969c0 name=CcspTr069PaSsp_GetCustomForcedInformParams + 0x85bc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #2 ip=0x00000000000227a4 sp=0x00000000b62969c8 name=sig_handler + 0x304 com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #3 ip=0x00000000b684faec sp=0x00000000b62969f8 name=_setjmp + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #4 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #5 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #6 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #7 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #8 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #9 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #10 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: #11 ip=0x0000000000000000 sp=0x00000000b6296ce8 name= + 0xc com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: Maximum backtrace level reached com.cisco.spvtg.ccsp.tr069pa: BACKTRACE: done com.cisco.spvtg.ccsp.tr069pa: Signal 11 received, exiting! Please note the IP address before the setjmp is a 0x0. I had added the Maximum backtrace level reached because if I did not have this, the backtrace function would continue indefinitely spewing out records with IP=0. I have a couple of questions… I had read somewhere that signal handlers actually switch stacks to handle the signal. Is this true? If so, how does libunwind find the application’s stack? Secondly, if I see a 0 IP address on the backtrace, what does this mean? Clearly a 0 return address is not valid. Lastly, if I run the backtrace with an application that is not built with debug enabled, will libunwind still generate a valid backtrace? My understanding is the optimizer does optimize out some code dealing with the stack frame… but hopefully not so much that a stack backtrace cannot be achieved. I do understand that symbols may not be available in a non-debug image. If anyone has any ideas on what is happening with this, I would really appreciate your thoughts and suggestions on how to fix this. Thanks! John Knight john.kni...@belkin.com<mailto:john.kni...@belkin.com> Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10 __________________________________________________________________ Confidential This e-mail and any files transmitted with it are the property of Belkin International, Inc. and/or its affiliates, are confidential, and are intended solely for the use of the individual or entity to whom this e-mail is addressed. If you are not one of the named recipients or otherwise have reason to believe that you have received this e-mail in error, please notify the sender and delete this message immediately from your computer. Any other use, retention, dissemination, forwarding, printing or copying of this e-mail is strictly prohibited. Pour la version française: http://www.belkin.com/email-notice/French.html Für die deutsche Übersetzung: http://www.belkin.com/email-notice/German.html __________________________________________________________________