From: Pedro Alves <palves@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 2/2] new tracepoint downloaded MI notification.
Date: Fri, 02 Nov 2012 15:46:00 -0000 [thread overview]
Message-ID: <5093EAE2.4090301@redhat.com> (raw)
In-Reply-To: <5091C383.1080705@codesourcery.com>
On 11/01/2012 12:34 AM, Yao Qi wrote:
> On 11/01/2012 01:59 AM, Pedro Alves wrote:
>>> From the frontend's point of view, {number, location number} is better, and the schema "number.location_number" has been used in "=breakpoint-modified" notification. However, if we want to use {number, location number} here, we have to guarantee that the location number is an attribute of bp_location, because:
>> This is not a particular issue of tracepoint locations, so, if it was a problem, it
>> would be a problem for the existing notifications and MI commands as well.
>>
>> IOW, this would need to be fixed for all those other cases that expose location
>> numbers, not just come up with an ad hoc solution.
>>
>
> I agree.
>
>> IOW, there's no good justification for deviating this notification from
>> existing practice.
>>
>
> What do you mean by "existing practice"? Is {number, location number} the "existing practise"?
Almost. AFAICS, the existing practice is "bp_number.loc_number" in MI, just like in the CLI.
&"b main\n"
~"Breakpoint 8 at 0x457aab: main. (2 locations)\n"
=breakpoint-created,bkpt={number="8",type="breakpoint",disp="keep",enabled="y",addr="<MULTIPLE>",times="0",original-location="main"},{number="8.1",enabled="y",addr="0x0000000000457aab",func="main",file="../../src/gdb/gdb.c",fullname="/home/pedro/gdb/mygit/src/gdb/gdb.c",line="29"},{number="8.2",enabled="y",addr="0x0000000000457aab",func="main",file="../../src/gdb/gdb.c",fullname="/home/pedro/gdb/mygit/src/gdb/gdb.c",line="29"}
^done
Note 'number="8.1"'.
Or,
(gdb)
-break-disable 9.1
^done
(gdb)
info breakpoint
&"info breakpoint\n"
~"Num Type Disp Enb Address What\n"
~"9 tracepoint keep y <MULTIPLE> \n"
~"9.1 n 0x0000000000457aab in main at ../../src/gdb/gdb.c:29 inf 1\n"
~"9.2 y 0x0000000000457aab in main at ../../src/gdb/gdb.c:29 inf 2\n"
Looks like a =breakpoint-modified notification is missing for this, BTW:
disable 8.1
&"disable 8.1\n"
^done
(gdb)
While this emitted the notification:
disable 8
&"disable 8\n"
=breakpoint-modified,bkpt={number="8",type="breakpoint",disp="keep",enabled="n",addr="<MULTIPLE>",times="0",original-location="main"},{number="8.1",enabled="n",addr="0x0000000000457aab",func="main",file="../../src/gdb/gdb.c",fullname="/home/pedro/gdb/mygit/src/gdb/gdb.c",line="29"},{number="8.2",enabled="y",addr="0x0000000000457aab",func="main",file="../../src/gdb/gdb.c",fullname="/home/pedro/gdb/mygit/src/gdb/gdb.c",line="29"}
^done
(gdb)
>>> >In short, if we can make location number persistent (unchanged for a given bp_location object), then {number, location number} is fine, otherwise, I'd prefer {number, address}.
>> {number, address} may looks stabler, but not even that is completely stable.
>> Change the program's code a little, recompile, reload symbols, and you'll see the
>> address change. Whatever smarts you'd want the frontend to have to track
>> locations, GDB could do instead, once for all frontends, and better, because
> ^^^^^^^^^
> IIUC, "locations" here mean location address instead of location number.
I mean location as the abstract location a bp_location represents. By track, I mean,
recognize that a given location is the same as another location (remember that
catchpoints often don't even have a concept of address!).
>
>> it may use properties other than the address to decided whether a new instance
>> of a location is logically the same as the old one (think of stap probes or static
>> tracepoints, where the address is really a very low target side detail; or just
>> consider line number instead of address). I think all this goes hand in hand with
>> redesigning how GDB handles breakpoint re-setting (or rather, get rid of re-setting as is),
>> which will make this whole stabler locations issue better. Keith will be going to
>> work on that very soon, IIUC.
>
> FAOD, we should continue to use {number, location number}, and it requires improvement of breakpoint re-setting, correct?
Yes. Though AFAICS, current notifications and commands use 'number="N.M"', not '{number, location number}'.
--
Pedro Alves
next prev parent reply other threads:[~2012-11-02 15:46 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-28 0:49 [RFC 0/2] Two new MI notifications Yao Qi
2012-09-28 0:49 ` [PATCH 2/2] new tracepoint downloaded MI notification Yao Qi
2012-09-28 7:37 ` Eli Zaretskii
2012-09-28 17:44 ` Pedro Alves
2012-09-28 17:44 ` Pedro Alves
2012-09-28 17:47 ` Pedro Alves
2012-09-29 14:13 ` Yao Qi
2012-10-09 8:12 ` Yao Qi
2012-10-31 17:59 ` Pedro Alves
2012-10-31 19:20 ` Doug Evans
2012-11-01 0:34 ` Yao Qi
2012-11-02 15:46 ` Pedro Alves [this message]
2012-11-02 15:50 ` Pedro Alves
2012-10-18 1:16 ` Yao Qi
2012-10-18 1:28 ` Yao Qi
2012-10-30 7:07 ` [ping]: " Yao Qi
2012-10-30 17:22 ` Eli Zaretskii
2012-10-18 4:43 ` Eli Zaretskii
2012-10-18 19:54 ` Tom Tromey
2012-09-28 18:27 ` Tom Tromey
2012-09-28 18:29 ` Tom Tromey
2012-10-15 18:03 ` dje
2012-10-31 18:03 ` Pedro Alves
2012-10-31 19:10 ` Marc Khouzam
2012-11-01 0:22 ` Yao Qi
2012-11-22 18:33 ` Pedro Alves
2012-11-29 15:47 ` Yao Qi
2012-11-29 16:00 ` Pedro Alves
2012-11-29 19:34 ` Marc Khouzam
2012-09-28 0:49 ` [PATCH 1/2] new memory-changed " Yao Qi
2012-09-28 7:36 ` Eli Zaretskii
2012-09-28 7:58 ` Yao Qi
2012-09-28 8:25 ` Eli Zaretskii
2012-09-28 17:17 ` Tom Tromey
2012-09-29 1:18 ` Yao Qi
2012-10-09 7:44 ` Yao Qi
2012-10-15 17:58 ` dje
2012-10-15 19:07 ` Tom Tromey
2012-10-16 7:12 ` Yao Qi
2012-10-15 19:03 ` Tom Tromey
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=5093EAE2.4090301@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=yao@codesourcery.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