Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Taimoor <tmirza@codesourcery.com>
To: Luis Machado <lgustavo@codesourcery.com>, Yao Qi <qiyaoltc@gmail.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: Improving GDB's mechanism to check if function is GC'ed
Date: Wed, 10 Jun 2015 11:46:00 -0000	[thread overview]
Message-ID: <55782370.50003@codesourcery.com> (raw)
In-Reply-To: <55781D03.5070003@codesourcery.com>



On 06/10/2015 04:18 PM, Luis Machado wrote:
> On 06/10/2015 05:53 AM, Yao Qi wrote:
>> Taimoor <tmirza@codesourcery.com> writes:
>>
>> Hi Taimoor,
>> I happen to have to some time today to read your patch, here are my
>> comments below,
>>
>>>
>>> Current Problem
>>> ===============
>>>
>>> We are currently using GDB to debug Nucleus based bare-metal system
>>> that also allows to dynamically load and unload Nucleus process
>>> modules during system execution.
>>> We currently load symbols of a modules using add-symbol-file whenever
>>> a module is loaded at runtime. It is very common to have functions at
>>> address 0x0 in debug information and then lowpc in symbol table to be
>>> non-zero as it depends on section addresses given in add-symbol-file
>>> command.
>>
>> GDB just uses some heuristics to determine whether the function is GC'ed
>> by linker, so they may not be perfect.  However, GDB doesn't support
>> Nucleus, so it isn't a valid case to me.  Do we have other cases that we
>> add-symbol-file in which function address is at 0x0 on platforms GDB
>> supports?
>>
>> If the problem only exists on Nucleus, I am afraid I don't agree with
>> accepting this change, because GDB doesn't support Nucleus.  Sorry.
>
> add-symbol-file can cause things to get weird with addresses given the
> user can specify the base address as it pleases. I don't think this is
> Nucleus-specific at all, but more generally bare-metal-specific.
>
> I take it DWARF says 0x0 and GDB relocates the symbol file/addresses
> based on the provided base address? Taimoor?

Yes. Its not something specific to Nucleus. Only issue is that function 
address in DWARF is 0x0 as this object file is loaded at runtime and its 
symbols are added using "add-symbol-file" command on the basis of 
address space where it is loaded.

IMO, for any dynamic relocatable object, GDB provides a mechanism to 
load its symbols using add-symbol-file. But if that object file has 
function at 0x0, current mechanism consider it GC'ed.

Thanks,
Taimoor


  reply	other threads:[~2015-06-10 11:46 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-02 13:38 Taimoor
2015-06-09  6:16 ` Taimoor
2015-06-09 13:36   ` Yao Qi
2015-06-10  8:54 ` Yao Qi
2015-06-10 10:17   ` Pedro Alves
2015-06-10 12:04     ` Taimoor
2015-06-10 12:07     ` Yao Qi
2015-06-10 14:43       ` Pedro Alves
2015-06-11  8:30         ` Yao Qi
2015-06-11  8:54           ` Pedro Alves
2015-06-10 11:18   ` Luis Machado
2015-06-10 11:46     ` Taimoor [this message]
2015-06-10 12:25       ` Yao Qi

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=55782370.50003@codesourcery.com \
    --to=tmirza@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=lgustavo@codesourcery.com \
    --cc=qiyaoltc@gmail.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