Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: "karthikeyan.s" <informkarthik@gmail.com>
To: Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
Cc: gdb@sourceware.org
Subject: Re: [ARM] dlopen and remote debugging
Date: Fri, 25 Jun 2010 15:18:00 -0000	[thread overview]
Message-ID: <AANLkTik1fDKq2JUIKYHugLNpDCi1SjySWSgHNEk61p9K@mail.gmail.com> (raw)
In-Reply-To: <1277470068.10416.4.camel@e102319-lin.cambridge.arm.com>

Sorry I did not mention that we do start gdb with the binary app X.
So in the host we start with:
$ arm-none-linux-gnueabi-gdb <targetfs_path>/usr/bin/X

and then
 # (gdb) set sysroot <targetfs_path>
 # (gdb) target remote 10.0.0.3:10000
 # (gdb) continue

I think one does not need to specify the source binary again.

1) One difference I see in the working and non-working case is that
other libraries that X depends on are stripped in the failing case.
So if X depends on x.so,y.so,our_driver.so. In the failing case, case
x.so,y.so are stripped. Not that this is the reason for the failure,
but just a difference in the conditions in succeeding and failing
case.
And X is stripped in both the cases.

2) Also, with the above method, I could manually specify the .text
address (along with values of variables too by specifying other
section addresses) of the library using add-file-symbol. And then was
able to hit breakpoints disassemble the library.

add-symbol-file <targetfs_path>/usr/lib/xorg/driver.so <text address>
<text address> = library load address + text offset in the library.

-Karthik

On Fri, Jun 25, 2010 at 6:17 PM, Matthew Gretton-Dann
<matthew.gretton-dann@arm.com> wrote:
> Karthik,
>
> On Thu, 2010-06-24 at 23:42 +0530, karthikeyan.s wrote:
>> Hi,
>> We recently encountered an issue with gdb wherein it does not get the
>> symbols from a shared library when loaded with dlopen. The following
>> steps does not give us the shared library's symbols. The binary is
>> Xorg.
>>
>> 1)
>> <target> gdbserver :10000 /usr/bin/X -ac
>> <host gdb> set sysroot <targetfs_path>
>> <host gdb> target remote 10.0.0.3:10000
>> <host gdb> continue
>> <host> cntrl-C
>> We do not get the library's symbols here. But with cat
>> /proc/{x_pid}/maps we can see the library is loaded in memory.
>>
>> 2) But with the following steps, the libraries get loaded
>> <target>  /usr/bin/X -ac &
>> <target> gdbserver :10000 --attach <X_pid>
>> <host gdb> set sysroot <targetfs_path>
>> <host gdb> target remote 10.0.0.3:10000
>>
>> We can see the library's symbols and hit breakpoint, debug etc. etc.
>>
>
> Section 20.3.2 of the gdb manual says that you need to load the symbols
> for your application using the file command before you connect (see
> http://sourceware.org/gdb/download/onlinedocs/gdb/Server.html#Server).
> Can you try this, and report back if you are still having problems?
>
> I would imagine the commands to your host gdb would be something like:
> (gdb) set sysroot <targetfs_path>
> (gdb) file <program_being_debugged>
> (gdb) target remote 10.0.0.3:10000
> (gdb) continue
>
> Thanks,
>
> Matt
>
> --
> Matthew Gretton-Dann
> Principal Engineer - PDSW Tools
> ARM Ltd
>
>



-- 
---
S. Karthikeyan | +919980814745
---


  reply	other threads:[~2010-06-25 15:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-24 18:12 karthikeyan.s
2010-06-25 12:47 ` Matthew Gretton-Dann
2010-06-25 15:18   ` karthikeyan.s [this message]
2010-07-01  5:02     ` karthikeyan.s

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTik1fDKq2JUIKYHugLNpDCi1SjySWSgHNEk61p9K@mail.gmail.com \
    --to=informkarthik@gmail.com \
    --cc=gdb@sourceware.org \
    --cc=matthew.gretton-dann@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox