Re: [PATCH] Add fullname field for MI -break-info command

Vladimir Prus
2006-02-02T07:07:31Z

[-- 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" \