Bug 14670

Summary: Shared libraries issue
Product: gdb Reporter: Roberto Viola <r.viola>
Component: serverAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED INVALID    
Severity: normal CC: palves
Priority: P2    
Version: 7.1   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:

Description Roberto Viola 2012-10-04 10:18:39 UTC
Hi,
        it's my first time here, so be gently :)

I'm working on ARM system with gdb 7.1. I'm using this tool to debug an
application composed by several shared libraries.

If I debug this application on the ARM side, with gdb 7.1 i can see the
shared loaded libraries (digiting "share"). Perfect!

I'm trying to do the same thing remotelly with gdb for arm on windows
host and gdbserver on ARM.

So i have:
1) gdb on windows for arm v.7.4.1 (i've tried 7.3.1 too)
2) gdbserver on arm v.7.1

On Windows i can debug everything flawless except for the shared
libraries: infact, when i tried to digit "share" it says there isn't any
shared loaded libraries. I'm absolutely sure that at least one library
has loaded (on arm side the same situation works fine).

Any idea?

Thanks in advance
Roberto Viola
Comment 1 Roberto Viola 2012-10-09 07:47:53 UTC
probably i've found something: 

In gcc on arm, when i ask for shared loaded libraries ("share") it calls function solib.c:info_sharedlibrary_command with full support for solib. (and it works fine) 

Instead, when i ask for the same command on gdb on windows and gdbserver on arm, it passes the command "qXfer:libraries:read:" that doesn't manage any solib, only dlls! And the dlls list is obviously empty. 

Did i miss something?
Comment 2 Pedro Alves 2012-10-09 14:41:15 UTC
Hard to say without more info - e.g., how exactly you've configured gdb.
You need to configure it for arm-linux, not just bare metal arm.
Comment 3 Roberto Viola 2012-10-09 15:10:16 UTC
(In reply to comment #2)
> Hard to say without more info - e.g., how exactly you've configured gdb.
> You need to configure it for arm-linux, not just bare metal arm.

Do you mean gdb or gdbserver?
I configure gdbserver with these settings
CC=arm-angstrom-linux-gnueabi-gcc ./configure --target=arm-linux --host=arm-linux --disable-tui

gdb on windows is yagarto ( http://www.yagarto.de/ ).

Do you think is host side related or arm side?
Comment 4 Pedro Alves 2012-10-09 15:19:23 UTC
I mean gdb.  (gdbserver is a linux program; never bare metal).

That page talks about embedded toolchains, and arm-none-eabi.  That's for bare metal, not GNU/Linux.  To confirm, what does the "This GDB was configured as ..." line when you startup gdb say?

If it doesn't say arm-linux-gnueabi or something similar with "linux" in it, that's the problem.
Comment 5 Pedro Alves 2012-10-09 15:20:55 UTC
FAOD, I think this is host side related.
Comment 6 Roberto Viola 2012-10-09 15:23:00 UTC
It says:

This GDB was configured as "--host=i686-pc-mingw32 --target=arm-none-eabi"

So i need to recompile it, i will let you know if it will work.
Thanks again for your precious help.
Comment 7 Roberto Viola 2012-10-09 21:00:02 UTC
Thanks! 
It works flawless now! 
Cheers

Roberto