Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <vladimir.prus@gmail.com>
To: gdb-patches@sourceware.org
Subject: Re: [PATCH 2/2] Testsuite for varobj updation after symbol removal
Date: Mon, 27 Apr 2015 19:10:00 -0000	[thread overview]
Message-ID: <553E83ED.80000@gmail.com> (raw)
Message-ID: <20150427191000.x8tGNKHHdmtCcQB_4PD8_FebRRGeCVrPNOdekAf0iM8@z> (raw)
In-Reply-To: <5538A7A6.3000908@codesourcery.com>

On 04/23/2015 11:04 AM, Taimoor wrote:
> Hi Vladimir,
>
> Thanks for reviewing the patch.
>
> On 04/17/2015 08:18 PM, Vladimir Prus wrote:
>>
>>
>> On 04/16/2015 06:32 AM, Taimoor Mirza wrote:
>>  > This patch provides testcases for variable object updation after
>> removing
>>  > symbols. Test programs are same as used for testing remove-symbol-file
>>  > command in gdb.base. sym-file-main.c is modified to just add a global
>>  > variable for which varible object is created in testsuite.
>>  >
>>
>> Taimoor,
>>
>> thanks for the patch, and testsuite change. Looking at it, it appears
>> that 'count' is
>> a global variable, and it's modified in one place, in the main function,
>> and after that
>> you do 'remove-symbol-files' and verify that var-update reports reports
>> 'count' as
>> changed. But what does it test exactly? Since count is explicitly
>> modified in the
>> test, I'd imagine that -var-update will report it as changed even without
>> 'remove-symbol-file'. In other words, does this testcase fail if the
>> code patch is not
>> applied?
>
> Yes. This testcase fails without applying this patch. Below is problematic scenario:
>
>
> 1) Run GDB session and load symbols from file a.
> 2) Create varobj for some global variable test.
> 3) put some breakpoint in some function and run to that breakpoint.
> 4) Use add-symbol-file to load symbols of file b.
> 5) Put breakpoint on some other function that is called after updating
> global variable test.
> 6) When this breakpoint gets hit, remove symbols of b using
> 'remove-symbol-file'.
> 7) print value of test. Its updated and different from initial value.
> 8) give 'var-update' command for variable object of 'test' and
> changelist will be empty.
>
> I know its not a common scenario but as long as it is valid
> according to individual command specifications we have all the right to
> expect it will produce the intended results.
>
>>
>> Even if so, does it test exactly what is your real case? It's easy to
>> see why 'remove-symbol-files'
>> can make some global variables no longer present. But how it can change
>> value of some expression?
>
> Its not the case of global variable not present. Its problem with properly displaying changeset for a valid global variable whose value is
> changed.
> Step 7 in above scenario displays updated value of variable but -var-update for varobj of that variable gives empty changeset. The reason
> for this is mentioned in source code patch [PATCH 1/2].

Hi Taimoor,

thanks, so the issue is that removing a symbol file recreates *all* global varobjs, and in the process clears any change of value
since the last update. I agree the patch is fixing that.

There's a second change, it seems - to invalidate varobj that refers to types in unloaded objfile - is there a test for that?

Thanks,


-- 
Vladimir Prus
CodeSourcery / Mentor Embedded
http://vladimirprus.com


  reply	other threads:[~2015-04-27 18:46 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-16  3:33 [PATCH 0/2] Improved variable object invalidation in GDB Taimoor Mirza
2015-04-16  3:33 ` [PATCH 1/2] Fix varobj updation after symbol removal Taimoor Mirza
2015-04-16  3:33 ` [PATCH 2/2] Testsuite for " Taimoor Mirza
2015-04-17 15:18   ` Vladimir Prus
2015-04-23  8:05     ` Taimoor
2015-04-27 18:53       ` Vladimir Prus [this message]
2015-04-27 19:10         ` Vladimir Prus
2015-05-11 13:49         ` Taimoor
2015-05-28  9:52           ` Taimoor
2015-06-05  3:03           ` [PATCH 2/2] [PING]Testsuite " Taimoor
  -- strict thread matches above, loose matches on Subject: below --
2019-10-17 10:03 [PATCH 0/2] Improved variable object invalidation in GDB Raza, Saqlain
2019-10-17 10:03 ` [PATCH 2/2] Testsuite for varobj updation after symbol removal Raza, Saqlain
2014-06-27 10:14 [PATCH 0/2] Improved variable object invalidation in GDB Taimoor Mirza
2014-06-27 10:14 ` [PATCH 2/2] Testsuite for varobj updation after symbol removal Taimoor Mirza
2014-07-13 16:11   ` Taimoor

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=553E83ED.80000@gmail.com \
    --to=vladimir.prus@gmail.com \
    --cc=gdb-patches@sourceware.org \
    /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