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

Yao Qi
2011-09-16T13:55:27Z

On 09/16/2011 12:39 AM, Liang Cheng wrote:
> Sorry for not being clear.
> Here is the debug session getting SIGSEGV. xa_fun_in_lib is the
> function defined in shared library, and its symbols has been found by
> gdb. Step instruction also caused the same issue. The reason that I
> attach those disassemble dump is to avoid rounds of ask-give. Let me
> know if disassemble of the piece of code is needed. Any idea of why
> it happens?
>

This debug session is much clear than last one. Thanks.

> Breakpoint 1, main (argc=1, argv=0xbef25ca4) at vendor/altestavplayback.c:284
> 284 CheckErr(res);
> 3: x/i $pc
> => 0x8d12 <main+78>: ldr r0, [r7, #52] ; 0x34
> (gdb) n
> 286 z = xa_fun_in_lib(10);
> 3: x/i $pc
> => 0x8d18 <main+84>: mov.w r0, #10
> (gdb) s
>

Before you run `step', turn on some debug output first. Like this `set
debug infrun 1'. Then, when you run `step', you can see some debug
output, which will show how PC is changed and events inferior gets
during command `step'.

However, before we go into the details of debug output, could you check
whether GDB cvs trunk works or not. You just have to build gdb for arm,
and I think GDB cvs trunk should be able to work with your 7.2 gdbserver.

> Program received signal SIGSEGV, Segmentation fault.
> 0x00008d22 in main (argc=1, argv=0xbef25ca4) at vendor/altestavplayback.c:286
> 286 z = xa_fun_in_lib(10);
> 3: x/i $pc
> => 0x8d22 <main+94>: str r3, [r7, #44] ; 0x2c
> (gdb) info address xa_fun_in_lib
> Symbol "xa_fun_in_lib(int)" is a function at address 0x800036fc.
>
> On Thu, Sep 15, 2011 at 11:13 AM, Yao Qi <yao@codesourcery.com> wrote:
>> On 09/15/2011 12:21 AM, Liang Cheng wrote:

--
Yao (é½å°§)