From: Kevin Pouget <kevin.pouget@gmail.com>
To: Doug Evans <dje@google.com>
Cc: Eli Zaretskii <eliz@gnu.org>,
gdb-patches@sourceware.org, pmuldoon@redhat.com
Subject: Re: [PATCH] Add bp_location to Python interface
Date: Wed, 11 Jan 2012 09:05:00 -0000 [thread overview]
Message-ID: <CAPftXU+R6kZqwF0ZFhc_dBQW54z__581rgLgbift3DcGLcCLhA@mail.gmail.com> (raw)
In-Reply-To: <CADPb22Sj1SmW0u+usg6FfmrteOuv7inQWgd8YqxdMCuaH=KHdg@mail.gmail.com>
On Tue, Jan 10, 2012 at 11:18 PM, Doug Evans <dje@google.com> wrote:
> On Tue, Jan 10, 2012 at 6:50 AM, Kevin Pouget <kevin.pouget@gmail.com> wrote:
>>>> +@defun BpLocation.is_valid ()
>>>> +Returns @code{True} if the @code{gdb.BpLocation} object is valid,
>>>> +@code{False} if not. A @code{gdb.BpLocation} object may be invalidated by
>>>> +GDB at any moment for internal reasons. All other @code{gdb.BpLocation}
>>>> +methods and attributes will throw an exception if the object is invalid.
>>>
>>> @value{GDBN} instead of "GDB".
>>>
>>> In any case, the last 2 sentences sound scary: I could interpret them
>>> as meaning I cannot trust the locations at all. If that is indeed so,
>>> what use are they?
>>
>> that's already discussed above, but I don't want you to be scared, so
>> let me explain what I meant:
>> it's not "at any moment", but rather "after any call to GDB's Python
>> interface". We may want to say that it's only breakpoint or
>> execution-related calls, but _I_ can't ensure that this is true, and
>> it 'might' change in the future:
>>
>>> A @code{gdb.BpLocation} object may be invalidated during
>>> any call to @{GDB}'s API for internal reasons (for instance, but not limited to,
>>> breakpoint or execution-related mechanisms).
>>
>> (I'm not sure what's the right Python term here for 'mechanisms',
>> reading/writing an attribute may trigger internal functions, so 'call'
>> or 'function' seem not to suit very well)
>
> Don't take this as a requirement, but this volatility isn't a property
> of python's BpLocations,
> Thus I'd rather see the general discussion of why breakpoint locations
> are volatile, scary, whatever, elsewhere, and just have a link to that
> documentation here.
> I think that will help clear things up: In the breakpoints section of
> the manual just state what breakpoint locations are, what their
> properties are, etc. Then in the above docs you don't have to worry
> so much about scaryness or whatever: Whatever issues locations have,
> users already need to be at least somewhat aware of them.
>
> Another reason to do this is that when Guile scripting gets added, we
> don't want to have to document these issues twice. :-)
I'm not sure we can really move it away from the Python/Guile API,
because, AFAIU, this volatile aspect if purely internal. 'Normal'
users won't ever see it.
> $ i b
> Num Type Disp Enb Address What
> 1 breakpoint keep y <MULTIPLE>
> 1.1 y 0x4562c0 in main at ../../../git/gdb/gdb/gdb.c:26 inf 2
> 1.2 y 0x4562c0 in main at ../../../git/gdb/gdb/gdb.c:26 inf 1
will remain the same all the time, but the objects (both in Python and
their GDB backends) in gdb.breakpoints()[0].locations() will be
deleted and re-created at various moments (cf. previous discussions).
So far, I couldn't really understand what's the rational behind that
...
[I'm not sure how well you know this part of GDB, please don't
hesitate to correct me if I'm wrong]
Kevin
next prev parent reply other threads:[~2012-01-11 9:03 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-08 10:17 Kevin Pouget
2011-12-08 13:39 ` Phil Muldoon
2011-12-08 14:28 ` Kevin Pouget
2011-12-08 14:56 ` Phil Muldoon
2011-12-09 13:49 ` Kevin Pouget
2011-12-09 14:15 ` Phil Muldoon
2011-12-13 15:55 ` Kevin Pouget
2012-01-09 11:47 ` Kevin Pouget
2012-01-09 17:23 ` Eli Zaretskii
2012-01-10 15:09 ` Kevin Pouget
2012-01-10 16:03 ` Kevin Pouget
2012-01-10 17:25 ` Eli Zaretskii
2012-01-11 10:16 ` Kevin Pouget
2012-01-11 10:27 ` Eli Zaretskii
2012-01-10 22:24 ` Doug Evans
2012-01-11 9:05 ` Kevin Pouget [this message]
2012-01-11 19:45 ` Doug Evans
2012-01-27 13:04 ` Kevin Pouget
2012-03-30 19:51 ` Tom Tromey
2012-04-03 10:35 ` Kevin Pouget
2012-04-03 12:15 ` Phil Muldoon
2012-04-03 14:43 ` Paul_Koning
2012-04-04 8:36 ` Kevin Pouget
2012-05-09 7:18 ` Kevin Pouget
2012-04-05 16:27 ` Eli Zaretskii
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=CAPftXU+R6kZqwF0ZFhc_dBQW54z__581rgLgbift3DcGLcCLhA@mail.gmail.com \
--to=kevin.pouget@gmail.com \
--cc=dje@google.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=pmuldoon@redhat.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