* Re: [PATCH] Add fullname field for MI -break-info command @ 2006-01-26 7:06 Nick Roberts 0 siblings, 0 replies; 23+ messages in thread From: Nick Roberts @ 2006-01-26 7:06 UTC (permalink / raw) To: Bob Rossi; +Cc: gdb-patches I've probably not followed the whole thread, but here goes... > > Hmm, so I should update all examples of "-break-list" output as well? What > > path should I put there? Is /home/foo/bar/<whatever-the-source-file-is>.c > > fine? > Yes, please update the documentation for -break-list, -break-insert also uses print_one_breakpoint so I guess that should be updated > and I don't know > if you should even bother with -break-info. I still don't know if that > command should exist if it's identical to -break-list. A machine > interface does not need 2 commands for the same functionatlity, IMO. I don't know if its needed either but now its there I don't see any point in removing it (if it ain't broke don't fix it). Also the doc says: The `-break-info' Command Synopsis -break-info BREAKPOINT Get information about a single breakpoint. GDB command The corresponding GDB command is `info break BREAKPOINT'. Example N.A. and Also note that the commands with a non-available example (N.A.) are not yet implemented. but -break-info clearly has been implemented. Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command
@ 2006-01-26 11:27 Nick Roberts
2006-01-26 11:44 ` Vladimir Prus
0 siblings, 1 reply; 23+ messages in thread
From: Nick Roberts @ 2006-01-26 11:27 UTC (permalink / raw)
To: Vladimir Prus; +Cc: gdb-patches
+ if (ui_out_is_mi_like_p (uiout))
+ {
+ if (b->loc->loc_type == bp_loc_software_breakpoint ||
+ b->loc->loc_type == bp_loc_hardware_watchpoint)
^^^^^^^^^^
Should this be bp_loc_hardware_breakpoint?
+ {
+ struct symtab_and_line sal = find_pc_line (b->loc->address, 0);
+ symtab_to_fullname (sal.symtab);
+
+ if (sal.symtab->fullname)
+ {
+ annotate_field(10);
+ ui_out_field_string (uiout, "fullname", sal.symtab->fullname);
+ }
+ }
+ }
+
Also, I would move it up breakpoint.c (without the call to annotate_field)
to here:
if (b->source_file)
{
sym = find_pc_sect_function (b->loc->address, b->loc->section);
if (sym)
{
ui_out_text (uiout, "in ");
ui_out_field_string (uiout, "func",
SYMBOL_PRINT_NAME (sym));
ui_out_wrap_hint (uiout, wrap_indent);
ui_out_text (uiout, " at ");
}
ui_out_field_string (uiout, "file", b->source_file);
ui_out_text (uiout, ":");
--->
ui_out_field_int (uiout, "line", b->line_number);
}
to be consistent with the output of print_frame, where the order is
file, fullname, line.
Putting it here might also mean that the test for b->loc->loc_type isn't
needed, but I don't really know.
Nick http://www.inet.net.nz/~nickrob
^ permalink raw reply [flat|nested] 23+ messages in thread* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-26 11:27 Nick Roberts @ 2006-01-26 11:44 ` Vladimir Prus 0 siblings, 0 replies; 23+ messages in thread From: Vladimir Prus @ 2006-01-26 11:44 UTC (permalink / raw) To: Nick Roberts; +Cc: gdb-patches On Thursday 26 January 2006 14:26, Nick Roberts wrote: > + if (ui_out_is_mi_like_p (uiout)) > + { > + if (b->loc->loc_type == bp_loc_software_breakpoint || > + b->loc->loc_type == bp_loc_hardware_watchpoint) > ^^^^^^^^^^ > Should this be bp_loc_hardware_breakpoint? You're right, it's a typo. > + } > + } > + > > Also, I would move it up breakpoint.c (without the call to annotate_field) > to here: > > if (b->source_file) > { > sym = find_pc_sect_function (b->loc->address, b->loc->section); > if (sym) > { > ui_out_text (uiout, "in "); > ui_out_field_string (uiout, "func", > SYMBOL_PRINT_NAME (sym)); > ui_out_wrap_hint (uiout, wrap_indent); > ui_out_text (uiout, " at "); > } > ui_out_field_string (uiout, "file", b->source_file); > ui_out_text (uiout, ":"); > > ---> > > ui_out_field_int (uiout, "line", b->line_number); > } > > to be consistent with the output of print_frame, where the order is > file, fullname, line. Makes sense. > Putting it here might also mean that the test for b->loc->loc_type isn't > needed, but I don't really know. Can anybody comment on this? Thanks, Volodya ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command @ 2006-01-26 7:13 Nick Roberts 0 siblings, 0 replies; 23+ messages in thread From: Nick Roberts @ 2006-01-26 7:13 UTC (permalink / raw) To: Bob Rossi; +Cc: gdb-patches > > For a future: can you explain what "annotate_field" does? The annotate.h > > file has no comments at all, and gdbint has "annotate_field" only inside > > code examples. And generally, what are "annotations"? > Annotations were the old interface used between GDB and front ends. It > was all that was available before MI. For your own sanity, never ever > try to deal with them. Just to clarify: Annotations will be replaced by MI but there are currently still front ends that use them. So don't add new annotations but please be careful not to change existing behaviour either. Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH] Add fullname field for MI -break-info command
@ 2006-01-24 16:42 Vladimir Prus
2006-01-24 16:51 ` Bob Rossi
2006-01-24 21:13 ` Daniel Jacobowitz
0 siblings, 2 replies; 23+ messages in thread
From: Vladimir Prus @ 2006-01-24 16:42 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 291 bytes --]
Hello!
The attached patch adds the "fullname" field to the output of MI -break-info
command.
Changelog entry:
2006-01-24 Vladimir Prus <ghost@cs.msu.su>
* breakpoint.c (print_one_breakpoint): For MI-like UI, output
'fullname' field.
Patch attached.
- Volodya
[-- Attachment #2: break_info_fullname.diff --]
[-- Type: text/x-diff, Size: 944 bytes --]
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.220
diff -u -r1.220 breakpoint.c
--- breakpoint.c 16 Jan 2006 12:55:18 -0000 1.220
+++ breakpoint.c 24 Jan 2006 15:10:47 -0000
@@ -3603,6 +3603,23 @@
print_command_lines (uiout, l, 4);
do_cleanups (script_chain);
}
+
+ if (ui_out_is_mi_like_p (uiout))
+ {
+ if (b->loc->loc_type == bp_loc_software_breakpoint ||
+ b->loc->loc_type == bp_loc_hardware_watchpoint)
+ {
+ struct symtab_and_line sal = find_pc_line (b->loc->address, 0);
+ symtab_to_fullname (sal.symtab);
+
+ if (sal.symtab->fullname)
+ {
+ annotate_field(10);
+ ui_out_field_string (uiout, "fullname", sal.symtab->fullname);
+ }
+ }
+ }
+
do_cleanups (bkpt_chain);
do_cleanups (old_chain);
}
^ permalink raw reply [flat|nested] 23+ messages in thread* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-24 16:42 Vladimir Prus @ 2006-01-24 16:51 ` Bob Rossi 2006-01-25 11:07 ` Vladimir Prus 2006-01-28 13:10 ` Vladimir Prus 2006-01-24 21:13 ` Daniel Jacobowitz 1 sibling, 2 replies; 23+ messages in thread From: Bob Rossi @ 2006-01-24 16:51 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches On Tue, Jan 24, 2006 at 07:32:15PM +0300, Vladimir Prus wrote: > > Hello! > > The attached patch adds the "fullname" field to the output of MI -break-info > command. The patch seems good to me at first glance. However, you should also update the testsuite, and send in the patch for that as well. Also, don't forget about the documentation. Thanks, Bob Rossi ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-24 16:51 ` Bob Rossi @ 2006-01-25 11:07 ` Vladimir Prus 2006-01-25 12:10 ` Bob Rossi 2006-01-28 13:10 ` Vladimir Prus 1 sibling, 1 reply; 23+ messages in thread From: Vladimir Prus @ 2006-01-25 11:07 UTC (permalink / raw) To: gdb-patches Bob Rossi wrote: > On Tue, Jan 24, 2006 at 07:32:15PM +0300, Vladimir Prus wrote: >> >> Hello! >> >> The attached patch adds the "fullname" field to the output of MI >> -break-info command. > > The patch seems good to me at first glance. However, you should also > update the testsuite, and send in the patch for that as well. I'm looking into this right now, and have a question. Inside the test, I need to get the absolute path to the source file. If I use: "${srcdir}/${subdir}/${srcfile}" the result is: "../.././gdb/testsuite/gdb.mi/basics.c" while output of gdb has absolute path name. So: how do I convert relative path to an absolute one inside a test? (I don't know anything about Tcl, so it's not obvious for me). BTW, it would be nice in gdbint explicitly said how one can run a specific test from testsuite. > Also, don't forget about the documentation. Well, at the moment the -break-info command is not documented at all, so there's no place where I can add the extra "fullname" field. - Volodya ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 11:07 ` Vladimir Prus @ 2006-01-25 12:10 ` Bob Rossi 2006-01-25 12:37 ` Andreas Schwab 2006-01-25 12:50 ` Vladimir Prus 0 siblings, 2 replies; 23+ messages in thread From: Bob Rossi @ 2006-01-25 12:10 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches On Wed, Jan 25, 2006 at 02:07:28PM +0300, Vladimir Prus wrote: > Bob Rossi wrote: > > > On Tue, Jan 24, 2006 at 07:32:15PM +0300, Vladimir Prus wrote: > >> > >> Hello! > >> > >> The attached patch adds the "fullname" field to the output of MI > >> -break-info command. > > > > The patch seems good to me at first glance. However, you should also > > update the testsuite, and send in the patch for that as well. > > I'm looking into this right now, and have a question. Inside the test, I > need to get the absolute path to the source file. If I use: > > "${srcdir}/${subdir}/${srcfile}" > > the result is: > > "../.././gdb/testsuite/gdb.mi/basics.c" No, please user ${fullname_syntax}${srcfile}. That will provide you with a regular expression that matches the fullname, and end in the source file you are interestd in. You can see how this is done in mi2-stack.exp. > while output of gdb has absolute path name. So: how do I convert relative > path to an absolute one inside a test? (I don't know anything about Tcl, so > it's not obvious for me). > > BTW, it would be nice in gdbint explicitly said how one can run a specific > test from testsuite. Yeah, I totally agree. I forget every time. Try 'runtest mi2-stack.exp', to run just that test. > > Also, don't forget about the documentation. > > Well, at the moment the -break-info command is not documented at all, so > there's no place where I can add the extra "fullname" field. Hmm, there is a section in the gdb.texinfo manual that says @c REDUNDANT??? Get information about a single breakpoint. how is this command useful, instead of just using -break-list? Thanks, Bob Rossi ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 12:10 ` Bob Rossi @ 2006-01-25 12:37 ` Andreas Schwab 2006-01-25 12:50 ` Vladimir Prus 1 sibling, 0 replies; 23+ messages in thread From: Andreas Schwab @ 2006-01-25 12:37 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches Bob Rossi <bob@brasko.net> writes: > On Wed, Jan 25, 2006 at 02:07:28PM +0300, Vladimir Prus wrote: >> >> BTW, it would be nice in gdbint explicitly said how one can run a specific >> test from testsuite. > > Yeah, I totally agree. I forget every time. Try 'runtest mi2-stack.exp', > to run just that test. Usually you pass that via RUNTESTFLAGS. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, MaxfeldstraÃe 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 12:10 ` Bob Rossi 2006-01-25 12:37 ` Andreas Schwab @ 2006-01-25 12:50 ` Vladimir Prus 2006-01-25 13:45 ` Bob Rossi 1 sibling, 1 reply; 23+ messages in thread From: Vladimir Prus @ 2006-01-25 12:50 UTC (permalink / raw) To: Bob Rossi; +Cc: gdb-patches On Wednesday 25 January 2006 15:10, Bob Rossi wrote: > > I'm looking into this right now, and have a question. Inside the test, I > > need to get the absolute path to the source file. If I use: > > > > "${srcdir}/${subdir}/${srcfile}" > > > > the result is: > > > > "../.././gdb/testsuite/gdb.mi/basics.c" > > No, please user ${fullname_syntax}${srcfile}. That will provide you with > a regular expression that matches the fullname, and end in the source > file you are interestd in. You can see how this is done in > mi2-stack.exp. Thanks, that works. > > while output of gdb has absolute path name. So: how do I convert relative > > path to an absolute one inside a test? (I don't know anything about Tcl, > > so it's not obvious for me). > > > > BTW, it would be nice in gdbint explicitly said how one can run a > > specific test from testsuite. > > Yeah, I totally agree. I forget every time. Try 'runtest mi2-stack.exp', > to run just that test. Well, that does not quite work. The command that works for me is: runtest --tool gdb gdb.mi/mi2-stack.exp > > > Also, don't forget about the documentation. > > > > Well, at the moment the -break-info command is not documented at all, so > > there's no place where I can add the extra "fullname" field. > > Hmm, there is a section in the gdb.texinfo manual that says > @c REDUNDANT??? > Get information about a single breakpoint. > how is this command useful, instead of just using -break-list? Hmm, so I should update all examples of "-break-list" output as well? What path should I put there? Is /home/foo/bar/<whatever-the-source-file-is>.c fine? - Volodya ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 12:50 ` Vladimir Prus @ 2006-01-25 13:45 ` Bob Rossi 2006-01-26 7:10 ` Vladimir Prus 0 siblings, 1 reply; 23+ messages in thread From: Bob Rossi @ 2006-01-25 13:45 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches > > > > Also, don't forget about the documentation. > > > > > > Well, at the moment the -break-info command is not documented at all, so > > > there's no place where I can add the extra "fullname" field. > > > > Hmm, there is a section in the gdb.texinfo manual that says > > @c REDUNDANT??? > > Get information about a single breakpoint. > > how is this command useful, instead of just using -break-list? > > Hmm, so I should update all examples of "-break-list" output as well? What > path should I put there? Is /home/foo/bar/<whatever-the-source-file-is>.c > fine? Yes, please update the documentation for -break-list, and I don't know if you should even bother with -break-info. I still don't know if that command should exist if it's identical to -break-list. A machine interface does not need 2 commands for the same functionatlity, IMO. For -file-list-exec-source-files I used this path as an example, @smallexample (@value{GDBP}) 123-file-list-exec-source-file 123^done,line="1",file="foo.c",fullname="/home/bar/foo.c" (@value{GDBP}) @end smallexample so, yes, something like you have is OK. Bob Rossi ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 13:45 ` Bob Rossi @ 2006-01-26 7:10 ` Vladimir Prus 0 siblings, 0 replies; 23+ messages in thread From: Vladimir Prus @ 2006-01-26 7:10 UTC (permalink / raw) To: gdb-patches Bob Rossi wrote: >> > > > Also, don't forget about the documentation. >> > > >> > > Well, at the moment the -break-info command is not documented at all, >> > > so there's no place where I can add the extra "fullname" field. >> > >> > Hmm, there is a section in the gdb.texinfo manual that says >> > @c REDUNDANT??? >> > Get information about a single breakpoint. >> > how is this command useful, instead of just using -break-list? >> >> Hmm, so I should update all examples of "-break-list" output as well? >> What path should I put there? Is >> /home/foo/bar/<whatever-the-source-file-is>.c fine? > > Yes, please update the documentation for -break-list, and I don't know > if you should even bother with -break-info. I still don't know if that > command should exist if it's identical to -break-list. A machine > interface does not need 2 commands for the same functionatlity, IMO. Strictly speaking, they are not the same. -break-list is documented to print list of all breakpoints, while -break-info is documented to print information about one breakpoint. - Volodya ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-24 16:51 ` Bob Rossi 2006-01-25 11:07 ` Vladimir Prus @ 2006-01-28 13:10 ` Vladimir Prus 2006-02-01 22:32 ` Daniel Jacobowitz 1 sibling, 1 reply; 23+ messages in thread From: Vladimir Prus @ 2006-01-28 13:10 UTC (permalink / raw) To: gdb-patches [-- Attachment #1: Type: text/plain, Size: 1441 bytes --] Bob Rossi wrote: > On Tue, Jan 24, 2006 at 07:32:15PM +0300, Vladimir Prus wrote: >> >> Hello! >> >> The attached patch adds the "fullname" field to the output of MI >> -break-info command. > > The patch seems good to me at first glance. However, you should also > update the testsuite, and send in the patch for that as well. > > Also, don't forget about the documentation. Revised patch attached. I did verify that it causes no regressions for MI tests. Note, however, that I could not verify that it does not cause any regressions globally, because something seems wrong with my configuration or the test system. Sporadically, I get errors like this: Running ../.././gdb/testsuite/gdb.base/code-expr.exp ... gdb compile failed, spawn failed WARNING: Testcase compile failed, so all tests in this file will automatically fail. WARNING: remote_expect statement without a default case?! ERROR: couldn't load /space/p2/ghost/build/gdb/gdb/testsuite/gdb.base/cvexpr into /space/p2/ghost/build/gdb/gdb/testsuite/../../gdb/gdb (end of file). FAIL: gdb.base/code-expr.exp: set print address off Or messages like: gdb compile failed, gcc: fork: Resource temporarily unavailable When running specific tests, the errors don't reproduce. Sometimes the errors disappear by themself. So, it looks like testsystem needs more resources (pids?) than is allowed by rlimit or something like that. - Volodya [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: breakpoint_info_fullname.diff --] [-- Type: text/x-diff; name="breakpoint_info_fullname.diff", Size: 18132 bytes --] ? testsuite/gdb.mi/A.diff ? testsuite/gdb.mi/B.diff ? testsuite/gdb.mi/Makefile ? testsuite/gdb.mi/basics ? testsuite/gdb.mi/gdb.log ? testsuite/gdb.mi/gdb.sum ? testsuite/gdb.mi/gdb669-pthreads ? testsuite/gdb.mi/gdb701 ? testsuite/gdb.mi/gdb792 ? testsuite/gdb.mi/mi-console ? testsuite/gdb.mi/mi-pthreads ? testsuite/gdb.mi/mi-read-memory ? testsuite/gdb.mi/mi-stack ? testsuite/gdb.mi/mi-syn-frame ? testsuite/gdb.mi/mi-var-child ? testsuite/gdb.mi/mi2-pthreads ? testsuite/gdb.mi/testrun.log ? testsuite/gdb.mi/testrun.sum ? testsuite/gdb.mi/until ? testsuite/gdb.mi/var-cmd Index: breakpoint.c =================================================================== RCS file: /cvs/src/src/gdb/breakpoint.c,v retrieving revision 1.220 diff -u -r1.220 breakpoint.c --- breakpoint.c 16 Jan 2006 12:55:18 -0000 1.220 +++ breakpoint.c 28 Jan 2006 13:05:38 -0000 @@ -3506,6 +3506,22 @@ } ui_out_field_string (uiout, "file", b->source_file); ui_out_text (uiout, ":"); + + if (ui_out_is_mi_like_p (uiout)) + { + if (b->loc->loc_type == bp_loc_software_breakpoint + || b->loc->loc_type == bp_loc_hardware_breakpoint) + { + struct symtab_and_line sal = find_pc_line (b->loc->address, 0); + char* fullname = symtab_to_fullname (sal.symtab); + + if (fullname) + { + ui_out_field_string (uiout, "fullname", fullname); + } + } + } + ui_out_field_int (uiout, "line", b->line_number); } else if (b->pending) Index: doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.309 diff -u -r1.309 gdb.texinfo --- doc/gdb.texinfo 23 Jan 2006 16:28:37 -0000 1.309 +++ doc/gdb.texinfo 28 Jan 2006 13:05:40 -0000 @@ -17588,7 +17588,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0", +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c"line="5",times="0", ignore="3"@}]@} (@value{GDBP}) @end smallexample @@ -17636,7 +17636,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",cond="1", +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c",line="5",cond="1", times="0",ignore="3"@}]@} (@value{GDBP}) @end smallexample @@ -17708,7 +17708,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="n", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}]@} +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c",line="5",times="0"@}]@} (@value{GDBP}) @end smallexample @@ -17743,7 +17743,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}]@} +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c",line="5",times="0"@}]@} (@value{GDBP}) @end smallexample @@ -17849,9 +17849,9 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x0001072c", func="main",file="recursive2.c",line="4",times="0"@}, +addr="0x0001072c", func="main",file="recursive2.c",fullname="/home/foo/recursive2.c,"line="4",times="0"@}, bkpt=@{number="2",type="breakpoint",disp="del",enabled="y", -addr="0x00010774",func="foo",file="recursive2.c",line="11",times="0"@}]@} +addr="0x00010774",func="foo",file="recursive2.c",fullname="/home/foo/recursive2.c",line="11",times="0"@}]@} (@value{GDBP}) -break-insert -r foo.* ~int foo(int, int); @@ -17911,7 +17911,7 @@ body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}, bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y", -addr="0x00010114",func="foo",file="hello.c",line="13",times="0"@}]@} +addr="0x00010114",func="foo",file="hello.c",fullname="/home/foo/hello.c",line="13",times="0"@}]@} (@value{GDBP}) @end smallexample @@ -18021,7 +18021,7 @@ @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", -file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, +file="../../../devo/gdb/testsuite/gdb.mi/basics.c",fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c"line="8",times="1"@}, bkpt=@{number="2",type="watchpoint",disp="keep", enabled="y",addr="",what="C",times="0"@}]@} (@value{GDBP}) @@ -18043,7 +18043,7 @@ @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", -file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, +file="../../../devo/gdb/testsuite/gdb.mi/basics.c",fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, bkpt=@{number="2",type="watchpoint",disp="keep", enabled="y",addr="",what="C",times="-5"@}]@} (@value{GDBP}) @@ -18065,7 +18065,7 @@ @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", -file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}]@} +file="../../../devo/gdb/testsuite/gdb.mi/basics.c",fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}]@} (@value{GDBP}) @end smallexample Index: testsuite/gdb.mi/mi-break.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-break.exp,v retrieving revision 1.7 diff -u -r1.7 mi-break.exp --- testsuite/gdb.mi/mi-break.exp 13 Aug 2004 16:21:29 -0000 1.7 +++ testsuite/gdb.mi/mi-break.exp 28 Jan 2006 13:05:40 -0000 @@ -56,6 +56,8 @@ set line_main_head [gdb_get_line_number "main ("] set line_main_body [expr $line_main_head + 2] +set fullname "fullname=\"${fullname_syntax}${srcfile}\"" + proc test_tbreak_creation_and_listing {} { global mi_gdb_prompt global srcfile @@ -65,6 +67,7 @@ global line_callee2_head line_callee2_body global line_callee1_head line_callee1_body global line_main_head line_main_body + global fullname # Insert some breakpoints and list them # Also, disable some so they do not interfere with other tests @@ -75,25 +78,27 @@ # -break-insert -t srcfile:$line_callee4_head # -break-list + + mi_gdb_test "222-break-insert -t main" \ - "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}" \ + "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}" \ "break-insert -t operation" mi_gdb_test "333-break-insert -t basics.c:callee2" \ - "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",line=\"$line_callee2_body\",times=\"0\"\}" \ + "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:callee2" mi_gdb_test "444-break-insert -t basics.c:$line_callee3_head" \ - "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",line=\"$line_callee3_head\",times=\"0\"\}" \ + "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",${fullname},line=\"$line_callee3_head\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:\$line_callee3_body" # Getting the quoting right is tricky. That is "\"<file>\":$line_callee4_head" mi_gdb_test "555-break-insert -t \"\\\"${srcfile}\\\":$line_callee4_head\"" \ - "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"$line_callee4_head\",times=\"0\"\}" \ + "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",${fullname},line=\"$line_callee4_head\",times=\"0\"\}" \ "insert temp breakpoint at \"<fullfilename>\":\$line_callee4_head" mi_gdb_test "666-break-list" \ - "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ + "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ "list of breakpoints" mi_gdb_test "777-break-delete" \ Index: testsuite/gdb.mi/mi2-break.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-break.exp,v retrieving revision 1.3 diff -u -r1.3 mi2-break.exp --- testsuite/gdb.mi/mi2-break.exp 13 Aug 2004 16:21:29 -0000 1.3 +++ testsuite/gdb.mi/mi2-break.exp 28 Jan 2006 13:05:40 -0000 @@ -56,6 +56,8 @@ set line_main_head [gdb_get_line_number "main ("] set line_main_body [expr $line_main_head + 2] +set fullname "fullname=\"${fullname_syntax}${srcfile}\"" + proc test_tbreak_creation_and_listing {} { global mi_gdb_prompt global srcfile @@ -65,6 +67,7 @@ global line_callee2_head line_callee2_body global line_callee1_head line_callee1_body global line_main_head line_main_body + global fullname # Insert some breakpoints and list them # Also, disable some so they do not interfere with other tests @@ -76,24 +79,24 @@ # -break-list mi_gdb_test "222-break-insert -t main" \ - "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}" \ + "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}" \ "break-insert -t operation" mi_gdb_test "333-break-insert -t basics.c:callee2" \ - "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",line=\"$line_callee2_body\",times=\"0\"\}" \ + "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:callee2" mi_gdb_test "444-break-insert -t basics.c:$line_callee3_head" \ - "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",line=\"$line_callee3_head\",times=\"0\"\}" \ + "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",${fullname},line=\"$line_callee3_head\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:\$line_callee3_body" # Getting the quoting right is tricky. That is "\"<file>\":$line_callee4_head" mi_gdb_test "555-break-insert -t \"\\\"${srcfile}\\\":$line_callee4_head\"" \ - "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"$line_callee4_head\",times=\"0\"\}" \ + "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",${fullname},line=\"$line_callee4_head\",times=\"0\"\}" \ "insert temp breakpoint at \"<fullfilename>\":\$line_callee4_head" mi_gdb_test "666-break-list" \ - "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ + "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ "list of breakpoints" mi_gdb_test "777-break-delete" \ @@ -110,6 +113,7 @@ global line_callee2_head line_callee2_body global line_callee1_head line_callee1_body global line_main_head line_main_body + global fullname # Insert some breakpoints and list them # Also, disable some so they do not interfere with other tests @@ -122,27 +126,27 @@ setup_xfail "*-*-*" mi_gdb_test "122-break-insert -r main" \ - "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_main_body\"\}" \ + "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_main_body\"\}" \ "break-insert -r operation" setup_xfail "*-*-*" mi_gdb_test "133-break-insert -r callee2" \ - "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\}" \ + "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\}" \ "insert breakpoint with regexp callee2" setup_xfail "*-*-*" mi_gdb_test "144-break-insert -r callee" \ - "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \ + "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee4_body\"\}" \ "insert breakpoint with regexp callee" setup_xfail "*-*-*" mi_gdb_test "155-break-insert -r \.\*llee" \ - "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \ + "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee4_body\"\}" \ "insert breakpoint with regexp .*llee" setup_xfail "*-*-*" mi_gdb_test "166-break-list" \ - "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \ + "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \ "list of breakpoints" mi_gdb_test "177-break-delete" \ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-28 13:10 ` Vladimir Prus @ 2006-02-01 22:32 ` Daniel Jacobowitz 2006-02-02 7:07 ` Vladimir Prus 0 siblings, 1 reply; 23+ messages in thread From: Daniel Jacobowitz @ 2006-02-01 22:32 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches On Sat, Jan 28, 2006 at 04:09:42PM +0300, Vladimir Prus wrote: > Revised patch attached. I did verify that it causes no regressions for MI > tests. > > > Note, however, that I could not verify that it does not cause any > regressions globally, because something seems wrong with my configuration > or the test system. Sporadically, I get errors like this: What system are you testing on? Presumably a bug in the host or in the port of expect to the host. I've verified no regressions on x86_64-pc-linux-gnu. The patch looks OK. There's a couple of formatting errors, and it needs ChangeLog entries, and then it can be applied. Oh, and Nick was right: you don't need the loc_type check any more. Everything in that case statement will be a breakpoint and have a valid address. > + struct symtab_and_line sal = find_pc_line (b->loc->address, 0); > + char* fullname = symtab_to_fullname (sal.symtab); char *fullname, please, for consistency. > + if (fullname) > + { > + ui_out_field_string (uiout, "fullname", fullname); > + } Don't need the extra braces here. > @@ -75,25 +78,27 @@ > # -break-insert -t srcfile:$line_callee4_head > # -break-list > > + > + > mi_gdb_test "222-break-insert -t main" \ > - "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}" \ > + "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}" \ > "break-insert -t operation" And don't need the extra blank lines. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-02-01 22:32 ` Daniel Jacobowitz @ 2006-02-02 7:07 ` Vladimir Prus 2006-02-06 21:55 ` Daniel Jacobowitz 0 siblings, 1 reply; 23+ messages in thread From: Vladimir Prus @ 2006-02-02 7:07 UTC (permalink / raw) To: gdb-patches [-- Attachment #1: Type: text/plain, Size: 1786 bytes --] Daniel Jacobowitz wrote: > On Sat, Jan 28, 2006 at 04:09:42PM +0300, Vladimir Prus wrote: >> Revised patch attached. I did verify that it causes no regressions for MI >> tests. >> >> >> Note, however, that I could not verify that it does not cause any >> regressions globally, because something seems wrong with my configuration >> or the test system. Sporadically, I get errors like this: > > What system are you testing on? Presumably a bug in the host or in the > port of expect to the host. (Almost) vanilla Debian Sarge on x86 (dual Xeon). Maybe this can have something to do with dual-cpu system? > I've verified no regressions on x86_64-pc-linux-gnu. > > The patch looks OK. There's a couple of formatting errors, and > it needs ChangeLog entries, and then it can be applied. > > Oh, and Nick was right: you don't need the loc_type check any more. > Everything in that case statement will be a breakpoint and have > a valid address. OK. > >> + struct symtab_and_line sal = find_pc_line >> (b->loc->address, 0); >> + char* fullname = symtab_to_fullname (sal.symtab); > > char *fullname, please, for consistency. > >> + if (fullname) >> + { >> + ui_out_field_string (uiout, "fullname", fullname); >> + } > > Don't need the extra braces here. Ok. Revised patch attached. Changelog entry: 2006-02-02 Vladimir Prus <ghost@cs.msu.su> * breakpoint.c (print_one_breakpoint): For MI-like UI, output 'fullname' field. * doc/gdb.texinit: Document the 'fullname' field in -break-list output. * testsuite/gdb.mi/mi-break.exp: Test for the 'fullname' field. * testsuite/gdb.mi/mi2-break.exp: Likewise - Volodya [-- Attachment #2: breakpoint_info_fullname.diff --] [-- Type: text/plain, Size: 27994 bytes --] ? .gdbinit ? Makefile ? ada-exp.c ? ada-lex.c ? break_info_fullname.diff ? breakpoint2.diff ? breakpoint_info_fullname.diff ? c-exp.c ? config.cache ? config.h ? config.log ? config.status ? cp-name-parser.c ? f-exp.c ? gdb ? gdbtui ? infrun.new.c ? init.c ? jv-exp.c ? m2-exp.c ? objc-exp.c ? observer.h ? observer.inc ? p-exp.c ? stamp-h ? version.c ? doc/Makefile ? doc/config.log ? doc/config.status ? gdbserver/Makefile ? gdbserver/config.h ? gdbserver/config.log ? gdbserver/config.status ? gdbserver/gdbreplay ? gdbserver/gdbserver ? gdbserver/reg-i386-linux.c ? gdbserver/stamp-h ? gdbtk/library/images2/console.gif ? testsuite/.gdb_history ? testsuite/Makefile ? testsuite/bigcore.corefile ? testsuite/config.log ? testsuite/config.status ? testsuite/foobar.baz ? testsuite/gdb.log ? testsuite/gdb.original.sum ? testsuite/gdb.original_mi.sum ? testsuite/gdb.sum ? testsuite/gdb.with_my_changes.sum ? testsuite/pi.txt ? testsuite/site.exp ? testsuite/gdb.ada/Makefile ? testsuite/gdb.ada/array_return/b~p.adb ? testsuite/gdb.ada/array_return/b~p.ads ? testsuite/gdb.ada/array_return/b~p.ali ? testsuite/gdb.ada/array_return/p ? testsuite/gdb.ada/array_return/p.ali ? testsuite/gdb.ada/array_return/pck.ali ? testsuite/gdb.ada/arrayidx/b~p.adb ? testsuite/gdb.ada/arrayidx/b~p.ads ? testsuite/gdb.ada/arrayidx/b~p.ali ? testsuite/gdb.ada/arrayidx/p ? testsuite/gdb.ada/arrayidx/p.ali ? testsuite/gdb.ada/exec_changed/b~first.adb ? testsuite/gdb.ada/exec_changed/b~first.ads ? testsuite/gdb.ada/exec_changed/b~first.ali ? testsuite/gdb.ada/exec_changed/b~second.adb ? testsuite/gdb.ada/exec_changed/b~second.ads ? testsuite/gdb.ada/exec_changed/b~second.ali ? testsuite/gdb.ada/exec_changed/common ? testsuite/gdb.ada/exec_changed/first ? testsuite/gdb.ada/exec_changed/first.ali ? testsuite/gdb.ada/exec_changed/second.ali ? testsuite/gdb.ada/fixed_points/b~fixed_points.adb ? testsuite/gdb.ada/fixed_points/b~fixed_points.ads ? testsuite/gdb.ada/fixed_points/b~fixed_points.ali ? testsuite/gdb.ada/fixed_points/fixed_points ? testsuite/gdb.ada/fixed_points/fixed_points.ali ? testsuite/gdb.ada/null_record/bar.ali ? testsuite/gdb.ada/null_record/b~null_record.adb ? testsuite/gdb.ada/null_record/b~null_record.ads ? testsuite/gdb.ada/null_record/b~null_record.ali ? testsuite/gdb.ada/null_record/null_record ? testsuite/gdb.ada/null_record/null_record.ali ? testsuite/gdb.ada/packed_array/b~pa.adb ? testsuite/gdb.ada/packed_array/b~pa.ads ? testsuite/gdb.ada/packed_array/b~pa.ali ? testsuite/gdb.ada/packed_array/pa ? testsuite/gdb.ada/packed_array/pa.ali ? testsuite/gdb.ada/start/b~dummy.adb ? testsuite/gdb.ada/start/b~dummy.ads ? testsuite/gdb.ada/start/b~dummy.ali ? testsuite/gdb.ada/start/dummy ? testsuite/gdb.ada/start/dummy.ali ? testsuite/gdb.arch/Makefile ? testsuite/gdb.arch/i386-prologue ? testsuite/gdb.arch/i386-sse ? testsuite/gdb.arch/i386-unwind ? testsuite/gdb.asm/Makefile ? testsuite/gdb.asm/asm-source ? testsuite/gdb.base/.debug ? testsuite/gdb.base/Makefile ? testsuite/gdb.base/advance ? testsuite/gdb.base/all-types ? testsuite/gdb.base/annota1 ? testsuite/gdb.base/annota3 ? testsuite/gdb.base/args ? testsuite/gdb.base/arrayidx ? testsuite/gdb.base/async ? testsuite/gdb.base/attach ? testsuite/gdb.base/attach2 ? testsuite/gdb.base/auxv ? testsuite/gdb.base/auxv.gcore ? testsuite/gdb.base/bang! ? testsuite/gdb.base/bfp-test ? testsuite/gdb.base/bigcore ? testsuite/gdb.base/bigcore.corefile ? testsuite/gdb.base/bitfields ? testsuite/gdb.base/bitfields2 ? testsuite/gdb.base/break ? testsuite/gdb.base/breako2 ? testsuite/gdb.base/call-ar-st ? testsuite/gdb.base/call-rt-st ? testsuite/gdb.base/call-sc-tc ? testsuite/gdb.base/call-sc-td ? testsuite/gdb.base/call-sc-te ? testsuite/gdb.base/call-sc-tf ? testsuite/gdb.base/call-sc-ti ? testsuite/gdb.base/call-sc-tl ? testsuite/gdb.base/call-sc-tld ? testsuite/gdb.base/call-sc-tll ? testsuite/gdb.base/call-sc-ts ? testsuite/gdb.base/call-strs ? testsuite/gdb.base/callfuncs ? testsuite/gdb.base/charset ? testsuite/gdb.base/checkpoint ? testsuite/gdb.base/chng-syms ? testsuite/gdb.base/commands ? testsuite/gdb.base/complex ? testsuite/gdb.base/consecutive ? testsuite/gdb.base/constvars ? testsuite/gdb.base/corefile ? testsuite/gdb.base/coremaker ? testsuite/gdb.base/cursal ? testsuite/gdb.base/cvexpr ? testsuite/gdb.base/dbx-test ? testsuite/gdb.base/display ? testsuite/gdb.base/dump ? testsuite/gdb.base/ending-run ? testsuite/gdb.base/execd-prog ? testsuite/gdb.base/exprs ? testsuite/gdb.base/fileio ? testsuite/gdb.base/foll-exec ? testsuite/gdb.base/foll-fork ? testsuite/gdb.base/foll-vfork ? testsuite/gdb.base/freebpcmd ? testsuite/gdb.base/funcargs ? testsuite/gdb.base/gcore ? testsuite/gdb.base/gcore.test ? testsuite/gdb.base/gdb1090 ? testsuite/gdb.base/gdb1250 ? testsuite/gdb.base/gdb1555-main ? testsuite/gdb.base/gdb1821 ? testsuite/gdb.base/huge ? testsuite/gdb.base/int-type ? testsuite/gdb.base/interrupt ? testsuite/gdb.base/jump ? testsuite/gdb.base/langs ? testsuite/gdb.base/lineinc ? testsuite/gdb.base/list ? testsuite/gdb.base/long_long ? testsuite/gdb.base/macscp ? testsuite/gdb.base/mips_pro ? testsuite/gdb.base/miscexprs ? testsuite/gdb.base/multi-forks ? testsuite/gdb.base/nodebug ? testsuite/gdb.base/opaque ? testsuite/gdb.base/pc-fp ? testsuite/gdb.base/pending ? testsuite/gdb.base/pendshr.sl ? testsuite/gdb.base/pointers ? testsuite/gdb.base/printcmds ? testsuite/gdb.base/psymtab ? testsuite/gdb.base/ptr-typedef ? testsuite/gdb.base/ptype ? testsuite/gdb.base/recurse ? testsuite/gdb.base/reread ? testsuite/gdb.base/reread1 ? testsuite/gdb.base/restore ? testsuite/gdb.base/return ? testsuite/gdb.base/return2 ? testsuite/gdb.base/run ? testsuite/gdb.base/savedregs ? testsuite/gdb.base/scope ? testsuite/gdb.base/sep ? testsuite/gdb.base/sepdebug ? testsuite/gdb.base/sepdebug.debug ? testsuite/gdb.base/sepdebug.stripped ? testsuite/gdb.base/setshow ? testsuite/gdb.base/setvar ? testsuite/gdb.base/shmain ? testsuite/gdb.base/shr1.sl ? testsuite/gdb.base/shr2.sl ? testsuite/gdb.base/shreloc ? testsuite/gdb.base/shreloc.txt ? testsuite/gdb.base/shreloc1.sl ? testsuite/gdb.base/shreloc2.sl ? testsuite/gdb.base/sigall ? testsuite/gdb.base/sigaltstack ? testsuite/gdb.base/sigbpt ? testsuite/gdb.base/siginfo ? testsuite/gdb.base/signals ? testsuite/gdb.base/signull ? testsuite/gdb.base/sigrepeat ? testsuite/gdb.base/sigstep ? testsuite/gdb.base/sizeof ? testsuite/gdb.base/so-impl-ld ? testsuite/gdb.base/solib1.sl ? testsuite/gdb.base/start ? testsuite/gdb.base/step-line ? testsuite/gdb.base/step-test ? testsuite/gdb.base/store ? testsuite/gdb.base/structs-tc ? testsuite/gdb.base/structs-tc-td ? testsuite/gdb.base/structs-tc-tf ? testsuite/gdb.base/structs-tc-ti ? testsuite/gdb.base/structs-tc-tl ? testsuite/gdb.base/structs-tc-tld ? testsuite/gdb.base/structs-tc-tll ? testsuite/gdb.base/structs-tc-ts ? testsuite/gdb.base/structs-td ? testsuite/gdb.base/structs-td-tc ? testsuite/gdb.base/structs-td-tf ? testsuite/gdb.base/structs-tf ? testsuite/gdb.base/structs-tf-tc ? testsuite/gdb.base/structs-tf-td ? testsuite/gdb.base/structs-ti ? testsuite/gdb.base/structs-ti-tc ? testsuite/gdb.base/structs-tl ? testsuite/gdb.base/structs-tl-tc ? testsuite/gdb.base/structs-tld ? testsuite/gdb.base/structs-tld-tc ? testsuite/gdb.base/structs-tll ? testsuite/gdb.base/structs-tll-tc ? testsuite/gdb.base/structs-ts ? testsuite/gdb.base/structs-ts-tc ? testsuite/gdb.base/structs2 ? testsuite/gdb.base/twice-tmp ? testsuite/gdb.base/twice-tmp.c ? testsuite/gdb.base/unload ? testsuite/gdb.base/unloadshr.sl ? testsuite/gdb.base/varargs ? testsuite/gdb.base/vforked-prog ? testsuite/gdb.base/watchpoint ? testsuite/gdb.base/whatis ? testsuite/gdb.cp/Makefile ? testsuite/gdb.cp/annota2 ? testsuite/gdb.cp/annota3 ? testsuite/gdb.cp/anon-union ? testsuite/gdb.cp/breakpoint ? testsuite/gdb.cp/bs15503 ? testsuite/gdb.cp/casts ? testsuite/gdb.cp/class2 ? testsuite/gdb.cp/classes ? testsuite/gdb.cp/cplusfuncs ? testsuite/gdb.cp/cttiadd ? testsuite/gdb.cp/derivation ? testsuite/gdb.cp/exception ? testsuite/gdb.cp/gdb1355 ? testsuite/gdb.cp/hang ? testsuite/gdb.cp/inherit ? testsuite/gdb.cp/local ? testsuite/gdb.cp/m-data ? testsuite/gdb.cp/m-static ? testsuite/gdb.cp/member-ptr ? testsuite/gdb.cp/method ? testsuite/gdb.cp/misc ? testsuite/gdb.cp/namespace ? testsuite/gdb.cp/overload ? testsuite/gdb.cp/ovldbreak ? testsuite/gdb.cp/pr-1023 ? testsuite/gdb.cp/pr-1210 ? testsuite/gdb.cp/pr-574 ? testsuite/gdb.cp/printmethod ? testsuite/gdb.cp/psmang ? testsuite/gdb.cp/ref-types ? testsuite/gdb.cp/rtti ? testsuite/gdb.cp/templates ? testsuite/gdb.cp/try_catch ? testsuite/gdb.cp/userdef ? testsuite/gdb.cp/virtfunc ? testsuite/gdb.disasm/Makefile ? testsuite/gdb.dwarf2/Makefile ? testsuite/gdb.dwarf2/dup-psym.x ? testsuite/gdb.dwarf2/dw2-basic.x ? testsuite/gdb.dwarf2/dw2-intercu.x ? testsuite/gdb.dwarf2/dw2-intermix.x ? testsuite/gdb.dwarf2/mac-fileno.x ? testsuite/gdb.fortran/Makefile ? testsuite/gdb.fortran/array-element ? testsuite/gdb.fortran/subarray ? testsuite/gdb.java/Makefile ? testsuite/gdb.mi/A.diff ? testsuite/gdb.mi/B.diff ? testsuite/gdb.mi/Makefile ? testsuite/gdb.mi/basics ? testsuite/gdb.mi/gdb.log ? testsuite/gdb.mi/gdb.sum ? testsuite/gdb.mi/gdb669-pthreads ? testsuite/gdb.mi/gdb701 ? testsuite/gdb.mi/gdb792 ? testsuite/gdb.mi/mi-console ? testsuite/gdb.mi/mi-pthreads ? testsuite/gdb.mi/mi-read-memory ? testsuite/gdb.mi/mi-stack ? testsuite/gdb.mi/mi-syn-frame ? testsuite/gdb.mi/mi-var-child ? testsuite/gdb.mi/mi2-pthreads ? testsuite/gdb.mi/testrun.log ? testsuite/gdb.mi/testrun.sum ? testsuite/gdb.mi/until ? testsuite/gdb.mi/var-cmd ? testsuite/gdb.objc/Makefile ? testsuite/gdb.server/Makefile ? testsuite/gdb.server/server ? testsuite/gdb.stabs/Makefile ? testsuite/gdb.stabs/config.log ? testsuite/gdb.stabs/config.status ? testsuite/gdb.stabs/exclfwd ? testsuite/gdb.threads/Makefile ? testsuite/gdb.threads/bp_in_thread ? testsuite/gdb.threads/gcore-pthreads ? testsuite/gdb.threads/gcore.test ? testsuite/gdb.threads/killed ? testsuite/gdb.threads/linux-dp ? testsuite/gdb.threads/manythreads ? testsuite/gdb.threads/print-threads ? testsuite/gdb.threads/pthread_cond_wait ? testsuite/gdb.threads/pthreads ? testsuite/gdb.threads/schedlock ? testsuite/gdb.threads/staticthreads ? testsuite/gdb.threads/switch-threads ? testsuite/gdb.threads/thread-specific ? testsuite/gdb.threads/thread_check ? testsuite/gdb.threads/threadapply ? testsuite/gdb.threads/tls ? testsuite/gdb.threads/tls-main ? testsuite/gdb.threads/watchthreads ? testsuite/gdb.trace/Makefile ? testsuite/gdb.trace/actions ? testsuite/gdb.trace/circ ? testsuite/gdb.trace/collection ? testsuite/gdb.trace/limits Index: breakpoint.c =================================================================== RCS file: /cvs/src/src/gdb/breakpoint.c,v retrieving revision 1.220 diff -u -r1.220 breakpoint.c --- breakpoint.c 16 Jan 2006 12:55:18 -0000 1.220 +++ breakpoint.c 2 Feb 2006 07:02:54 -0000 @@ -3506,6 +3506,16 @@ } ui_out_field_string (uiout, "file", b->source_file); ui_out_text (uiout, ":"); + + if (ui_out_is_mi_like_p (uiout)) + { + struct symtab_and_line sal = find_pc_line (b->loc->address, 0); + char *fullname = symtab_to_fullname (sal.symtab); + + if (fullname) + ui_out_field_string (uiout, "fullname", fullname); + } + ui_out_field_int (uiout, "line", b->line_number); } else if (b->pending) Index: doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.309 diff -u -r1.309 gdb.texinfo --- doc/gdb.texinfo 23 Jan 2006 16:28:37 -0000 1.309 +++ doc/gdb.texinfo 2 Feb 2006 07:02:57 -0000 @@ -17588,7 +17588,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0", +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c"line="5",times="0", ignore="3"@}]@} (@value{GDBP}) @end smallexample @@ -17636,7 +17636,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",cond="1", +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c",line="5",cond="1", times="0",ignore="3"@}]@} (@value{GDBP}) @end smallexample @@ -17708,7 +17708,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="n", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}]@} +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c",line="5",times="0"@}]@} (@value{GDBP}) @end smallexample @@ -17743,7 +17743,7 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}]@} +addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c",line="5",times="0"@}]@} (@value{GDBP}) @end smallexample @@ -17849,9 +17849,9 @@ @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x0001072c", func="main",file="recursive2.c",line="4",times="0"@}, +addr="0x0001072c", func="main",file="recursive2.c",fullname="/home/foo/recursive2.c,"line="4",times="0"@}, bkpt=@{number="2",type="breakpoint",disp="del",enabled="y", -addr="0x00010774",func="foo",file="recursive2.c",line="11",times="0"@}]@} +addr="0x00010774",func="foo",file="recursive2.c",fullname="/home/foo/recursive2.c",line="11",times="0"@}]@} (@value{GDBP}) -break-insert -r foo.* ~int foo(int, int); @@ -17911,7 +17911,7 @@ body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}, bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y", -addr="0x00010114",func="foo",file="hello.c",line="13",times="0"@}]@} +addr="0x00010114",func="foo",file="hello.c",fullname="/home/foo/hello.c",line="13",times="0"@}]@} (@value{GDBP}) @end smallexample @@ -18021,7 +18021,7 @@ @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", -file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, +file="../../../devo/gdb/testsuite/gdb.mi/basics.c",fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c"line="8",times="1"@}, bkpt=@{number="2",type="watchpoint",disp="keep", enabled="y",addr="",what="C",times="0"@}]@} (@value{GDBP}) @@ -18043,7 +18043,7 @@ @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", -file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, +file="../../../devo/gdb/testsuite/gdb.mi/basics.c",fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, bkpt=@{number="2",type="watchpoint",disp="keep", enabled="y",addr="",what="C",times="-5"@}]@} (@value{GDBP}) @@ -18065,7 +18065,7 @@ @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", -file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}]@} +file="../../../devo/gdb/testsuite/gdb.mi/basics.c",fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}]@} (@value{GDBP}) @end smallexample Index: testsuite/gdb.mi/mi-break.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-break.exp,v retrieving revision 1.7 diff -u -r1.7 mi-break.exp --- testsuite/gdb.mi/mi-break.exp 13 Aug 2004 16:21:29 -0000 1.7 +++ testsuite/gdb.mi/mi-break.exp 2 Feb 2006 07:02:57 -0000 @@ -56,6 +56,8 @@ set line_main_head [gdb_get_line_number "main ("] set line_main_body [expr $line_main_head + 2] +set fullname "fullname=\"${fullname_syntax}${srcfile}\"" + proc test_tbreak_creation_and_listing {} { global mi_gdb_prompt global srcfile @@ -65,6 +67,7 @@ global line_callee2_head line_callee2_body global line_callee1_head line_callee1_body global line_main_head line_main_body + global fullname # Insert some breakpoints and list them # Also, disable some so they do not interfere with other tests @@ -76,24 +79,24 @@ # -break-list mi_gdb_test "222-break-insert -t main" \ - "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}" \ + "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}" \ "break-insert -t operation" mi_gdb_test "333-break-insert -t basics.c:callee2" \ - "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",line=\"$line_callee2_body\",times=\"0\"\}" \ + "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:callee2" mi_gdb_test "444-break-insert -t basics.c:$line_callee3_head" \ - "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",line=\"$line_callee3_head\",times=\"0\"\}" \ + "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",${fullname},line=\"$line_callee3_head\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:\$line_callee3_body" # Getting the quoting right is tricky. That is "\"<file>\":$line_callee4_head" mi_gdb_test "555-break-insert -t \"\\\"${srcfile}\\\":$line_callee4_head\"" \ - "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"$line_callee4_head\",times=\"0\"\}" \ + "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",${fullname},line=\"$line_callee4_head\",times=\"0\"\}" \ "insert temp breakpoint at \"<fullfilename>\":\$line_callee4_head" mi_gdb_test "666-break-list" \ - "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ + "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ "list of breakpoints" mi_gdb_test "777-break-delete" \ Index: testsuite/gdb.mi/mi2-break.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-break.exp,v retrieving revision 1.3 diff -u -r1.3 mi2-break.exp --- testsuite/gdb.mi/mi2-break.exp 13 Aug 2004 16:21:29 -0000 1.3 +++ testsuite/gdb.mi/mi2-break.exp 2 Feb 2006 07:02:57 -0000 @@ -56,6 +56,8 @@ set line_main_head [gdb_get_line_number "main ("] set line_main_body [expr $line_main_head + 2] +set fullname "fullname=\"${fullname_syntax}${srcfile}\"" + proc test_tbreak_creation_and_listing {} { global mi_gdb_prompt global srcfile @@ -65,6 +67,7 @@ global line_callee2_head line_callee2_body global line_callee1_head line_callee1_body global line_main_head line_main_body + global fullname # Insert some breakpoints and list them # Also, disable some so they do not interfere with other tests @@ -76,24 +79,24 @@ # -break-list mi_gdb_test "222-break-insert -t main" \ - "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}" \ + "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}" \ "break-insert -t operation" mi_gdb_test "333-break-insert -t basics.c:callee2" \ - "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",line=\"$line_callee2_body\",times=\"0\"\}" \ + "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:callee2" mi_gdb_test "444-break-insert -t basics.c:$line_callee3_head" \ - "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",line=\"$line_callee3_head\",times=\"0\"\}" \ + "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",${fullname},line=\"$line_callee3_head\",times=\"0\"\}" \ "insert temp breakpoint at basics.c:\$line_callee3_body" # Getting the quoting right is tricky. That is "\"<file>\":$line_callee4_head" mi_gdb_test "555-break-insert -t \"\\\"${srcfile}\\\":$line_callee4_head\"" \ - "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"$line_callee4_head\",times=\"0\"\}" \ + "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",${fullname},line=\"$line_callee4_head\",times=\"0\"\}" \ "insert temp breakpoint at \"<fullfilename>\":\$line_callee4_head" mi_gdb_test "666-break-list" \ - "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ + "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\}.*\\\]\}" \ "list of breakpoints" mi_gdb_test "777-break-delete" \ @@ -110,6 +113,7 @@ global line_callee2_head line_callee2_body global line_callee1_head line_callee1_body global line_main_head line_main_body + global fullname # Insert some breakpoints and list them # Also, disable some so they do not interfere with other tests @@ -122,27 +126,27 @@ setup_xfail "*-*-*" mi_gdb_test "122-break-insert -r main" \ - "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_main_body\"\}" \ + "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_main_body\"\}" \ "break-insert -r operation" setup_xfail "*-*-*" mi_gdb_test "133-break-insert -r callee2" \ - "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\}" \ + "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\}" \ "insert breakpoint with regexp callee2" setup_xfail "*-*-*" mi_gdb_test "144-break-insert -r callee" \ - "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \ + "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee4_body\"\}" \ "insert breakpoint with regexp callee" setup_xfail "*-*-*" mi_gdb_test "155-break-insert -r \.\*llee" \ - "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \ + "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee4_body\"\}" \ "insert breakpoint with regexp .*llee" setup_xfail "*-*-*" mi_gdb_test "166-break-list" \ - "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \ + "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \ "list of breakpoints" mi_gdb_test "177-break-delete" \ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-02-02 7:07 ` Vladimir Prus @ 2006-02-06 21:55 ` Daniel Jacobowitz 0 siblings, 0 replies; 23+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 21:55 UTC (permalink / raw) To: gdb-patches On Thu, Feb 02, 2006 at 10:06:58AM +0300, Vladimir Prus wrote: > Changelog entry: > > 2006-02-02 Vladimir Prus <ghost@cs.msu.su> > > * breakpoint.c (print_one_breakpoint): For MI-like UI, output > 'fullname' field. > * doc/gdb.texinit: Document the 'fullname' field in -break-list > output. > * testsuite/gdb.mi/mi-break.exp: Test for the 'fullname' field. > * testsuite/gdb.mi/mi2-break.exp: Likewise I've checked this in. FYI, here's what the ChangeLog entries I used looked like; testsuite and doc have their own. +2006-02-06 Vladimir Prus <ghost@cs.msu.su> + + * breakpoint.c (print_one_breakpoint): For MI-like UI, output + fullname field. + +2006-02-06 Vladimir Prus <ghost@cs.msu.su> + + * gdb.texinfo (Breakpoint table commands): Document the fullname + field in -break-list output. + +2006-02-06 Vladimir Prus <ghost@cs.msu.su> + + * gdb.mi/mi-break.exp, gdb.mi/mi2-break.exp: Test for the fullname + field. + Did I already ask you about a copyright assignment? We don't need one for this patch, but may for future patches. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-24 16:42 Vladimir Prus 2006-01-24 16:51 ` Bob Rossi @ 2006-01-24 21:13 ` Daniel Jacobowitz 2006-01-25 13:31 ` Vladimir Prus 1 sibling, 1 reply; 23+ messages in thread From: Daniel Jacobowitz @ 2006-01-24 21:13 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches On Tue, Jan 24, 2006 at 07:32:15PM +0300, Vladimir Prus wrote: > > Hello! > > The attached patch adds the "fullname" field to the output of MI -break-info > command. In addition to what Bob said, formatting points: > + if (ui_out_is_mi_like_p (uiout)) > + { > + if (b->loc->loc_type == bp_loc_software_breakpoint || > + b->loc->loc_type == bp_loc_hardware_watchpoint) if (b->loc->loc_type == bp_loc_software_breakpoint || b->loc->loc_type == bp_loc_hardware_watchpoint) > + { > + struct symtab_and_line sal = find_pc_line (b->loc->address, 0); > + symtab_to_fullname (sal.symtab); > + > + if (sal.symtab->fullname) > + { > + annotate_field(10); annotate_field (10); But I don't think you need this at all; there's no point emitting annotations when we're guarded by ui_out_is_mi_like_p. Also, you can use the return value from symtab_to_fullname. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-24 21:13 ` Daniel Jacobowitz @ 2006-01-25 13:31 ` Vladimir Prus 2006-01-25 13:46 ` Bob Rossi ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Vladimir Prus @ 2006-01-25 13:31 UTC (permalink / raw) To: gdb-patches On Wednesday 25 January 2006 00:13, Daniel Jacobowitz wrote: > > + { > > + struct symtab_and_line sal = find_pc_line (b->loc->address, > > 0); + symtab_to_fullname (sal.symtab); > > + > > + if (sal.symtab->fullname) > > + { > > + annotate_field(10); > > annotate_field (10); Is that a formatting change, or moving the "annotate_field" call out of "if"? > But I don't think you need this at all; there's no point emitting > annotations when we're guarded by ui_out_is_mi_like_p. For a future: can you explain what "annotate_field" does? The annotate.h file has no comments at all, and gdbint has "annotate_field" only inside code examples. And generally, what are "annotations"? > Also, you can use the return value from symtab_to_fullname. Point taken. - Volodya ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 13:31 ` Vladimir Prus @ 2006-01-25 13:46 ` Bob Rossi 2006-01-26 7:20 ` Vladimir Prus 2006-01-25 13:51 ` Daniel Jacobowitz 2006-01-25 17:56 ` Eli Zaretskii 2 siblings, 1 reply; 23+ messages in thread From: Bob Rossi @ 2006-01-25 13:46 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches On Wed, Jan 25, 2006 at 04:31:19PM +0300, Vladimir Prus wrote: > On Wednesday 25 January 2006 00:13, Daniel Jacobowitz wrote: > > > > + { > > > + struct symtab_and_line sal = find_pc_line (b->loc->address, > > > 0); + symtab_to_fullname (sal.symtab); > > > + > > > + if (sal.symtab->fullname) > > > + { > > > + annotate_field(10); > > > > annotate_field (10); > > Is that a formatting change, or moving the "annotate_field" call out of "if"? > > > But I don't think you need this at all; there's no point emitting > > annotations when we're guarded by ui_out_is_mi_like_p. > > For a future: can you explain what "annotate_field" does? The annotate.h file > has no comments at all, and gdbint has "annotate_field" only inside code > examples. And generally, what are "annotations"? Annotations were the old interface used between GDB and front ends. It was all that was available before MI. For your own sanity, never ever try to deal with them. Thanks, Bob Rossi ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 13:46 ` Bob Rossi @ 2006-01-26 7:20 ` Vladimir Prus 0 siblings, 0 replies; 23+ messages in thread From: Vladimir Prus @ 2006-01-26 7:20 UTC (permalink / raw) To: gdb-patches Bob Rossi wrote: > On Wed, Jan 25, 2006 at 04:31:19PM +0300, Vladimir Prus wrote: >> On Wednesday 25 January 2006 00:13, Daniel Jacobowitz wrote: >> >> > > + { >> > > + struct symtab_and_line sal = find_pc_line >> > > (b->loc->address, >> > > 0); + symtab_to_fullname (sal.symtab); >> > > + >> > > + if (sal.symtab->fullname) >> > > + { >> > > + annotate_field(10); >> > >> > annotate_field (10); >> >> Is that a formatting change, or moving the "annotate_field" call out of >> "if"? >> >> > But I don't think you need this at all; there's no point emitting >> > annotations when we're guarded by ui_out_is_mi_like_p. >> >> For a future: can you explain what "annotate_field" does? The annotate.h >> file has no comments at all, and gdbint has "annotate_field" only inside >> code examples. And generally, what are "annotations"? > > Annotations were the old interface used between GDB and front ends. It > was all that was available before MI. For your own sanity, never ever > try to deal with them. Does it mean that: 1. No new code should ever contain a call to "annonate_*" functions? 2. It's planned to drop this "annotation" thing completely? - Volodya ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 13:31 ` Vladimir Prus 2006-01-25 13:46 ` Bob Rossi @ 2006-01-25 13:51 ` Daniel Jacobowitz 2006-01-25 17:56 ` Eli Zaretskii 2 siblings, 0 replies; 23+ messages in thread From: Daniel Jacobowitz @ 2006-01-25 13:51 UTC (permalink / raw) To: gdb-patches On Wed, Jan 25, 2006 at 04:31:19PM +0300, Vladimir Prus wrote: > On Wednesday 25 January 2006 00:13, Daniel Jacobowitz wrote: > > > > + { > > > + struct symtab_and_line sal = find_pc_line (b->loc->address, > > > 0); + symtab_to_fullname (sal.symtab); > > > + > > > + if (sal.symtab->fullname) > > > + { > > > + annotate_field(10); > > > > annotate_field (10); > > Is that a formatting change, or moving the "annotate_field" call out of "if"? Sorry, I just meant the space before the parentheses. > > But I don't think you need this at all; there's no point emitting > > annotations when we're guarded by ui_out_is_mi_like_p. > > For a future: can you explain what "annotate_field" does? The annotate.h file > has no comments at all, and gdbint has "annotate_field" only inside code > examples. And generally, what are "annotations"? As Bob said, an old interface. See "set annotate". -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] Add fullname field for MI -break-info command 2006-01-25 13:31 ` Vladimir Prus 2006-01-25 13:46 ` Bob Rossi 2006-01-25 13:51 ` Daniel Jacobowitz @ 2006-01-25 17:56 ` Eli Zaretskii 2 siblings, 0 replies; 23+ messages in thread From: Eli Zaretskii @ 2006-01-25 17:56 UTC (permalink / raw) To: Vladimir Prus; +Cc: gdb-patches > From: Vladimir Prus <ghost@cs.msu.su> > Date: Wed, 25 Jan 2006 16:31:19 +0300 > > For a future: can you explain what "annotate_field" does? The annotate.h file > has no comments at all, and gdbint has "annotate_field" only inside code > examples. And generally, what are "annotations"? See gdb/doc/annotate.texinfo. ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH] Add fullname field for MI -break-info command
@ 2006-01-24 16:42 Vladimir Prus
0 siblings, 0 replies; 23+ messages in thread
From: Vladimir Prus @ 2006-01-24 16:42 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 296 bytes --]
Hello!
The attached patch adds the "fullname" field to the output of MI -break-info
command.
Changelog entry:
2006-01-24 Vladimir Prus <ghost@cs.msu.su>
* breakpoint.c (print_one_breakpoint): For MI-like UI, output
'fullname' field.
Patch attached.
- Volodya
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: break_info_fullname.diff --]
[-- Type: text/x-diff; name="break_info_fullname.diff", Size: 944 bytes --]
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.220
diff -u -r1.220 breakpoint.c
--- breakpoint.c 16 Jan 2006 12:55:18 -0000 1.220
+++ breakpoint.c 24 Jan 2006 15:10:47 -0000
@@ -3603,6 +3603,23 @@
print_command_lines (uiout, l, 4);
do_cleanups (script_chain);
}
+
+ if (ui_out_is_mi_like_p (uiout))
+ {
+ if (b->loc->loc_type == bp_loc_software_breakpoint ||
+ b->loc->loc_type == bp_loc_hardware_watchpoint)
+ {
+ struct symtab_and_line sal = find_pc_line (b->loc->address, 0);
+ symtab_to_fullname (sal.symtab);
+
+ if (sal.symtab->fullname)
+ {
+ annotate_field(10);
+ ui_out_field_string (uiout, "fullname", sal.symtab->fullname);
+ }
+ }
+ }
+
do_cleanups (bkpt_chain);
do_cleanups (old_chain);
}
^ permalink raw reply [flat|nested] 23+ messages in threadend of thread, other threads:[~2006-02-06 21:55 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-01-26 7:06 [PATCH] Add fullname field for MI -break-info command Nick Roberts -- strict thread matches above, loose matches on Subject: below -- 2006-01-26 11:27 Nick Roberts 2006-01-26 11:44 ` Vladimir Prus 2006-01-26 7:13 Nick Roberts 2006-01-24 16:42 Vladimir Prus 2006-01-24 16:51 ` Bob Rossi 2006-01-25 11:07 ` Vladimir Prus 2006-01-25 12:10 ` Bob Rossi 2006-01-25 12:37 ` Andreas Schwab 2006-01-25 12:50 ` Vladimir Prus 2006-01-25 13:45 ` Bob Rossi 2006-01-26 7:10 ` Vladimir Prus 2006-01-28 13:10 ` Vladimir Prus 2006-02-01 22:32 ` Daniel Jacobowitz 2006-02-02 7:07 ` Vladimir Prus 2006-02-06 21:55 ` Daniel Jacobowitz 2006-01-24 21:13 ` Daniel Jacobowitz 2006-01-25 13:31 ` Vladimir Prus 2006-01-25 13:46 ` Bob Rossi 2006-01-26 7:20 ` Vladimir Prus 2006-01-25 13:51 ` Daniel Jacobowitz 2006-01-25 17:56 ` Eli Zaretskii 2006-01-24 16:42 Vladimir Prus
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox