GDB 7.2 gets SIGSEGV when step into a function in a shared library

Yao Qi yao@codesourcery.com
Thu Sep 15 16:13:00 GMT 2011


On 09/15/2011 12:21 AM, Liang Cheng wrote:
> Hi,
>
> The application and library under debug were built for ARM.  The
> target is running Android OS,
> and the host is Linux X86 64.  As long as we try to step into the
> function xa_fun_in_lib, it would
> cause segmentation fault in gdb. Same thing happened if step the instructions.
>
> Here are the experiments I did for this issue, and some notes.
>

If you are reporting a problem of gdb, please describe the problem as 
clear as possible.  A clean and simple debug session is helpful for 
other people here to understand what is your problem.  Please don't mix 
the experiments or your work in the problem description.

>
> So far I am stuck because of no idea why PC gets messed up. Anyone
> else the similar issue
> when trying to debug function in library?  And any input to how to
> investigate gdb/gdbserver side
> also is appreciated.  (below some other information is dumped).
>

Due to lack of clear steps you did in gdb, and its output, I have no 
idea what the problem is and how do you get to the problem, except for 
some wild guess,

 > (gdb) disassemble /m 0x8d14
 > Dump of assembler code for function main:
 > ....
 > 286         z = xa_fun_in_lib(10);
 > =>  0x00008d18<+84>:    mov.w   r0, #10
 >    0x00008d1c<+88>:    blx     0x8628
 >    0x00008d20<+92>:    mov     r3, r0
 >    0x00008d22<+94>:    str     r3, [r7, #44]   ; 0x2c

How do you get SIGSEGV from here?  I guess you typed `step' try to step 
into xa_fun_in_lib, but get a SIGSEGV afterwards.

Last but not least, as Hui suggested, please try GDB 7.3 release or GDB 
CVS trunk.

-- 
Yao (齐尧)



More information about the Gdb mailing list