* Re: Multiple breakpoint locations
[not found] <18233.63439.953202.586908@kahikatea.snap.net.nz>
@ 2007-11-17 11:55 ` Eli Zaretskii
2007-11-17 13:55 ` Vladimir Prus
2007-11-18 1:24 ` Nick Roberts
0 siblings, 2 replies; 4+ messages in thread
From: Eli Zaretskii @ 2007-11-17 11:55 UTC (permalink / raw)
To: Nick Roberts; +Cc: gdb, gdb-patches
> From: Nick Roberts <nickrob@snap.net.nz>
> Date: Wed, 14 Nov 2007 08:15:27 +1300
>
>
> The new code for breakpoints with multiple locations looks very good and
> addresses a common complaint about GDB. I have a couple of points and
> apologise if they have already been discussed.
Thanks for your suggestions, I fixed the manual as shown below:
2007-11-17 Eli Zaretskii <eliz@gnu.org>
* gdb.texinfo (Set Breaks, Disabling): Clarify behavior of
breakpoints with multiple locations.
(Breakpoint Menus): Improve wording.
Index: gdb/doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.444
diff -u -r1.444 gdb.texinfo
--- gdb/doc/gdb.texinfo 15 Nov 2007 18:43:23 -0000 1.444
+++ gdb/doc/gdb.texinfo 17 Nov 2007 11:48:53 -0000
@@ -2992,7 +2992,7 @@
@item Enabled or Disabled
Enabled breakpoints are marked with @samp{y}. @samp{n} marks breakpoints
that are not enabled. An optional @samp{(p)} suffix marks pending
-breakpoints --- breakpoints for which address is either not yet
+breakpoints---breakpoints for which address is either not yet
resolved, pending load of a shared library, or for which address was
in a shared library that was since unloaded. Such breakpoint won't
fire until a shared library that has the symbol or line referred by
@@ -3001,7 +3001,7 @@
Where the breakpoint is in your program, as a memory address. For a
pending breakpoint whose address is not yet known, this field will
contain @samp{<PENDING>}. A breakpoint with several locations will
-have @samp{<MULTIPLE>} in this field --- see below for details.
+have @samp{<MULTIPLE>} in this field---see below for details.
@item What
Where the breakpoint is in the source for your program, as a file and
line number. For a pending breakpoint, the original string passed to
@@ -3060,16 +3060,16 @@
In all those cases, @value{GDBN} will insert a breakpoint at all
the relevant locations.
-A breakpoint with multiple locations is displayed in the
-breakpoint table using several rows --- one header row, followed
-by one row for each breakpoint location. The header row
-has @samp{<MULTIPLE>} in the address column. The rows for
-individual locations contain the actual addresses for locations,
-and say what functions those locations are in. The number
-column for a location has number in the format
+A breakpoint with multiple locations is displayed in the breakpoint
+table using several rows---one header row, followed by one row for
+each breakpoint location. The header row has @samp{<MULTIPLE>} in the
+address column. The rows for individual locations contain the actual
+addresses for locations, and show the functions to which those
+locations belong. The number column for a location is of the form
@var{breakpoint-number}.@var{location-number}.
For example:
+
@smallexample
Num Type Disp Enb Address What
1 breakpoint keep y <MULTIPLE>
@@ -3081,11 +3081,17 @@
Each location can be individually enabled or disabled by passing
@var{breakpoint-number}.@var{location-number} as argument to the
-@code{enable} and @code{disable} commands.
+@code{enable} and @code{disable} commands. Note that you cannot
+delete the individual locations from the list, you can only delete the
+entire list of locations that be long to their parent breakpoint (with
+the @kbd{delete @var{num}} command, where @var{num} is the number of
+the parent breakpoint, 1 in the above example). Disabling or enabling
+the parent breakpoint (@pxref{Disabling}) affects all of the locations
+that belong to that breakpoint.
@cindex pending breakpoints
It's quite common to have a breakpoint inside a shared library.
-The shared library may be loaded and unloaded explicitly,
+Shared libraries can be loaded and unloaded explicitly,
and possibly repeatedly, as the program is executed. To support
this use case, @value{GDBN} updates breakpoint locations whenever
any shared library is loaded or unloaded. Typically, you would
@@ -3093,7 +3099,7 @@
debugging session, when the library is not loaded, and when the
symbols from the library are not available. When you try to set
breakpoint, @value{GDBN} will ask you if you want to set
-a so called @dfn{pending breakpoint} --- breakpoint whose address
+a so called @dfn{pending breakpoint}---breakpoint whose address
is not yet resolved.
After the program is run, whenever a new shared library is loaded,
@@ -3544,6 +3550,9 @@
@code{info watch} to print a list of breakpoints, watchpoints, and
catchpoints if you do not know which numbers to use.
+Disabling and enabling a breakpoint that has multiple locations
+affects all of its locations.
+
A breakpoint, watchpoint, or catchpoint can have any of four different
states of enablement:
@@ -3808,8 +3817,8 @@
to be defined several times, for application in different contexts.
This is called @dfn{overloading}. When a function name is overloaded,
@samp{break @var{function}} is not enough to tell @value{GDBN} where you want
-a breakpoint. If you realize this is a problem, you can use
-something like @samp{break @var{function}(@var{types})} to specify which
+a breakpoint. You can use explicit signature of the function, as in
+@samp{break @var{function}(@var{types})}, to specify which
particular version of the function you want. Otherwise, @value{GDBN} offers
you a menu of numbered choices for different possible breakpoints, and
waits for your selection with the prompt @samp{>}. The first two
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Multiple breakpoint locations
2007-11-17 11:55 ` Multiple breakpoint locations Eli Zaretskii
@ 2007-11-17 13:55 ` Vladimir Prus
2007-11-17 15:35 ` Eli Zaretskii
2007-11-18 1:24 ` Nick Roberts
1 sibling, 1 reply; 4+ messages in thread
From: Vladimir Prus @ 2007-11-17 13:55 UTC (permalink / raw)
To: gdb-patches
Eli Zaretskii wrote:
>> From: Nick Roberts <nickrob@snap.net.nz>
>> Date: Wed, 14 Nov 2007 08:15:27 +1300
>>
>>
>> The new code for breakpoints with multiple locations looks very good and
>> addresses a common complaint about GDB. I have a couple of points and
>> apologise if they have already been discussed.
>
> Thanks for your suggestions, I fixed the manual as shown below:
>
> 2007-11-17 Eli Zaretskii <eliz@gnu.org>
>
> * gdb.texinfo (Set Breaks, Disabling): Clarify behavior of
> breakpoints with multiple locations.
> (Breakpoint Menus): Improve wording.
>
>
> Index: gdb/doc/gdb.texinfo
> ===================================================================
> RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
> retrieving revision 1.444
> diff -u -r1.444 gdb.texinfo
> --- gdb/doc/gdb.texinfo 15 Nov 2007 18:43:23 -0000 1.444
> +++ gdb/doc/gdb.texinfo 17 Nov 2007 11:48:53 -0000
> @@ -2992,7 +2992,7 @@
> @item Enabled or Disabled
> Enabled breakpoints are marked with @samp{y}. @samp{n} marks breakpoints
> that are not enabled. An optional @samp{(p)} suffix marks pending
> -breakpoints --- breakpoints for which address is either not yet
> +breakpoints---breakpoints for which address is either not yet
> resolved, pending load of a shared library, or for which address was
> in a shared library that was since unloaded. Such breakpoint won't
> fire until a shared library that has the symbol or line referred by
> @@ -3001,7 +3001,7 @@
> Where the breakpoint is in your program, as a memory address. For a
> pending breakpoint whose address is not yet known, this field will
> contain @samp{<PENDING>}. A breakpoint with several locations will
> -have @samp{<MULTIPLE>} in this field --- see below for details.
> +have @samp{<MULTIPLE>} in this field---see below for details.
> @item What
> Where the breakpoint is in the source for your program, as a file and
> line number. For a pending breakpoint, the original string passed to
> @@ -3060,16 +3060,16 @@
> In all those cases, @value{GDBN} will insert a breakpoint at all
> the relevant locations.
>
> -A breakpoint with multiple locations is displayed in the
> -breakpoint table using several rows --- one header row, followed
> -by one row for each breakpoint location. The header row
> -has @samp{<MULTIPLE>} in the address column. The rows for
> -individual locations contain the actual addresses for locations,
> -and say what functions those locations are in. The number
> -column for a location has number in the format
> +A breakpoint with multiple locations is displayed in the breakpoint
> +table using several rows---one header row, followed by one row for
> +each breakpoint location. The header row has @samp{<MULTIPLE>} in the
> +address column. The rows for individual locations contain the actual
> +addresses for locations, and show the functions to which those
> +locations belong. The number column for a location is of the form
> @var{breakpoint-number}.@var{location-number}.
>
> For example:
> +
> @smallexample
> Num Type Disp Enb Address What
> 1 breakpoint keep y <MULTIPLE>
> @@ -3081,11 +3081,17 @@
>
> Each location can be individually enabled or disabled by passing
> @var{breakpoint-number}.@var{location-number} as argument to the
> -@code{enable} and @code{disable} commands.
> +@code{enable} and @code{disable} commands. Note that you cannot
> +delete the individual locations from the list, you can only delete the
> +entire list of locations that be long to their parent breakpoint (with
Was "be long" meant to be "belong"?
- Volodya
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Multiple breakpoint locations
2007-11-17 13:55 ` Vladimir Prus
@ 2007-11-17 15:35 ` Eli Zaretskii
0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2007-11-17 15:35 UTC (permalink / raw)
To: Vladimir Prus; +Cc: gdb-patches
> From: Vladimir Prus <ghost@cs.msu.su>
> Date: Sat, 17 Nov 2007 16:54:51 +0300
>
> > +entire list of locations that be long to their parent breakpoint (with
>
> Was "be long" meant to be "belong"?
Yes, of course (one of those typos a speller won't catch). Thanks, I
fixed that now.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Multiple breakpoint locations
2007-11-17 11:55 ` Multiple breakpoint locations Eli Zaretskii
2007-11-17 13:55 ` Vladimir Prus
@ 2007-11-18 1:24 ` Nick Roberts
1 sibling, 0 replies; 4+ messages in thread
From: Nick Roberts @ 2007-11-18 1:24 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: gdb-patches
> Thanks for your suggestions, I fixed the manual as shown below:
>
> 2007-11-17 Eli Zaretskii <eliz@gnu.org>
>
> * gdb.texinfo (Set Breaks, Disabling): Clarify behavior of
> breakpoints with multiple locations.
> (Breakpoint Menus): Improve wording.
Since the concept of a parent breakpoint has been used, perhaps this could
be used with "header row". Also breakpoint-number is abbreviated to BNUM
elsewhere. Here are a few ideas:
--
Nick http://www.inet.net.nz/~nickrob
*** gdb.texinfo.~1.446.~ 2007-11-18 13:23:21.000000000 +1300
--- gdb.texinfo 2007-11-18 14:19:45.000000000 +1300
*************** In all those cases, @value{GDBN} will in
*** 3061,3072 ****
the relevant locations.
A breakpoint with multiple locations is displayed in the breakpoint
! table using several rows---one header row, followed by one row for
! each breakpoint location. The header row has @samp{<MULTIPLE>} in the
! address column. The rows for individual locations contain the actual
! addresses for locations, and show the functions to which those
! locations belong. The number column for a location is of the form
! @var{breakpoint-number}.@var{location-number}.
For example:
--- 3061,3074 ----
the relevant locations.
A breakpoint with multiple locations is displayed in the breakpoint
! table using several rows---one header row for the parent breakpoint,
! followed by one row for each breakpoint location. The header row has
! @samp{<MULTIPLE>} in the address column. The rows for individual
! locations contain the actual addresses for locations, and show the
! functions to which those locations belong. The number column for a
! location is of the form @var{bnum}.@var{lnum} where @var{bnum} is is
! the number of the parent breakpoint and @var{lnum} the location
! number.
For example:
*************** Num Type Disp Enb Address
*** 3080,3093 ****
@end smallexample
Each location can be individually enabled or disabled by passing
! @var{breakpoint-number}.@var{location-number} as argument to the
! @code{enable} and @code{disable} commands. Note that you cannot
! delete the individual locations from the list, you can only delete the
! entire list of locations that belong to their parent breakpoint (with
! the @kbd{delete @var{num}} command, where @var{num} is the number of
! the parent breakpoint, 1 in the above example). Disabling or enabling
! the parent breakpoint (@pxref{Disabling}) affects all of the locations
! that belong to that breakpoint.
@cindex pending breakpoints
It's quite common to have a breakpoint inside a shared library.
--- 3082,3094 ----
@end smallexample
Each location can be individually enabled or disabled by passing
! @var{bnum}.@var{lnum} as argument to the @code{enable} and
! @code{disable} commands. Note that you cannot delete the individual
! locations from the list, you can only delete the entire list of
! locations that belong to their parent breakpoint (with the @kbd{delete
! @var{bnum}} command, where @var{bnum} is 1 in the above example).
! Disabling or enabling the parent breakpoint (@pxref{Disabling})
! affects all of the locations that belong to that breakpoint.
@cindex pending breakpoints
It's quite common to have a breakpoint inside a shared library.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-11-18 1:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <18233.63439.953202.586908@kahikatea.snap.net.nz>
2007-11-17 11:55 ` Multiple breakpoint locations Eli Zaretskii
2007-11-17 13:55 ` Vladimir Prus
2007-11-17 15:35 ` Eli Zaretskii
2007-11-18 1:24 ` Nick Roberts
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox