Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Simon Marchi <simon.marchi@ericsson.com>,
	"Tedeschi, Walfred" <walfred.tedeschi@intel.com>,
	Simon Marchi <simon.marchi@polymtl.ca>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH V4] symlookup: improves symbol lookup when a file is specified.
Date: Fri, 20 Oct 2017 15:29:00 -0000	[thread overview]
Message-ID: <d74ab50a-2308-3c90-c95d-893f0b5134ac@redhat.com> (raw)
In-Reply-To: <ac5f215e-1e6f-be19-07e7-b40a2dda0aba@ericsson.com>

On 10/20/2017 03:28 PM, Simon Marchi wrote:
> On 2017-10-20 03:45 AM, Tedeschi, Walfred wrote:
>> Hi Simon,
>>
>> Thanks for your review!
>> For all the comment above I agree, Thanks again!
>>
>> For the one below there are different point of views. 
>> How I see it: Very few sane people will add a symbols in a shared library that
>> will collide like the case we presented here.  If one does so how can the debugger
>> help?
> 
> I think one usual use case is plugins implemented with shared library.  Although
> the data symbols will commonly be static, and the plugin will only expose some
> function symbols.
> 
>> Providing the same value as the runtime or linker does? 
>> This one user already knows. 
>> Or providing what the debug information provides as value created by the library itself.
>> In final end both are right. :|
>>
>> But when specifying the scope if user is provided the value of the debug info it should
>> be easier to spot that there is something weird going on in the code.
> 
> I think what you just said summarizes the problem well and I think it makes sense.
> I just don't think I have enough experience about symbol handling to understand
> the situation fully.  Could another maintainer with more experience about symbols
> give the final ok?

I disagree.  Having
 (gdb) frame
 #0 0x000000000040073b in function () at source.c:22
 (gdb) print foo
and:
 (gdb) print 'source.c':foo

show different values when you're stopped in a function in
the source.c file would look inconsistent to me.

Actually, the patch introduces what looks like a related clear
regression to me.  With the print-file-var.exp test program, try
stepping into get_version_2, and printing the this_version_id
global.  And then type finish.  Vis:

 (gdb) s
 get_version_2 () at gdb.base/print-file-var-lib2.c:22
 22        return this_version_id;
 (gdb) p this_version_id
 $1 = 203
 (gdb) finish
 Run till exit from #0  get_version_2 () at gdb.base/print-file-var-lib2.c:22
 0x000000000040073b in main () at gdb.base/print-file-var-main.c:24
 24        int v2 = get_version_2 ();
 Value returned is $2 = 104
 (gdb) 

GDB says "203", while the program returns "104".
That looks like a bug to me.  I'd expect the print
to show me the current value of the variable in scope.

In current master (without the patch), we get:

 (gdb) s
 get_version_2 () at gdb.base/print-file-var-lib2.c:22
 22        return this_version_id;
 (gdb) p this_version_id
 $1 = 104
 (gdb) finish
 Run till exit from #0  get_version_2 () at gdb.base/print-file-var-lib2.c:22
 0x000000000040073b in main () at gdb.base/print-file-var-main.c:24
 24        int v2 = get_version_2 ();
 Value returned is $2 = 104

Thanks,
Pedro Alves


  reply	other threads:[~2017-10-20 15:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-18  9:01 Walfred Tedeschi
2017-10-19 19:07 ` Simon Marchi
2017-10-20  7:45   ` Tedeschi, Walfred
2017-10-20 14:28     ` Simon Marchi
2017-10-20 15:29       ` Pedro Alves [this message]
2017-10-20 15:54         ` [PATCH] Enhance gdb.base/print-file-var.exp testcase (Re: [PATCH V4] symlookup: improves symbol lookup when a file is specified.) Pedro Alves
2017-10-21 10:48         ` [PATCH V4] symlookup: improves symbol lookup when a file is specified Tedeschi, Walfred
2017-10-23  9:03           ` Tedeschi, Walfred
2017-10-23 10:07             ` Pedro Alves
2017-10-25  9:39               ` Tedeschi, Walfred

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=d74ab50a-2308-3c90-c95d-893f0b5134ac@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=simon.marchi@ericsson.com \
    --cc=simon.marchi@polymtl.ca \
    --cc=walfred.tedeschi@intel.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