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 
__________________________________________________________________

Reply via email to