This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patchv2] save breakpoints does not save signal catchpoints correctly
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Yao Qi <yao at codesourcery dot com>
- Cc: gdb-patches at sourceware dot org, Miroslav Franc <mfranc at redhat dot com>
- Date: Sun, 12 Oct 2014 21:43:28 +0200
- Subject: [patchv2] save breakpoints does not save signal catchpoints correctly
- Authentication-results: sourceware.org; auth=none
- References: <20141003203219 dot GA30562 at host2 dot jankratochvil dot net> <87r3yhs6sr dot fsf at codesourcery dot com> <20141009175452 dot GA26010 at host2 dot jankratochvil dot net> <87y4soivu2 dot fsf at codesourcery dot com>
On Fri, 10 Oct 2014 02:59:01 +0200, Yao Qi wrote:
> I didn't mean to compare two lists. We only have one list here, and we
> can check each element in it, for example,
Done.
Thanks,
Jan
gdb/
2014-10-03 Miroslav Franc <mfranc@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
Fix "save breakpoints" for "catch" command.
* break-catch-sig.c (signal_catchpoint_print_recreate): Add trailing
newline.
gdb/testsuite/
2014-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
Yao Qi <yao@codesourcery.com>
Fix "save breakpoints" for "catch" command.
* gdb.base/catch-signal.exp: Add gdb_breakpoint "main".
Remove -nonewline. Match also the added "main" line.
diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c
index c41bf33..579fb78 100644
--- a/gdb/break-catch-sig.c
+++ b/gdb/break-catch-sig.c
@@ -346,6 +346,7 @@ signal_catchpoint_print_recreate (struct breakpoint *b, struct ui_file *fp)
}
else if (c->catch_all)
fprintf_unfiltered (fp, " all");
+ fputc_unfiltered ('\n', fp);
}
/* Implement the "explains_signal" breakpoint_ops method for signal
diff --git a/gdb/testsuite/gdb.base/catch-signal.exp b/gdb/testsuite/gdb.base/catch-signal.exp
index 22caf40..616b2a8 100644
--- a/gdb/testsuite/gdb.base/catch-signal.exp
+++ b/gdb/testsuite/gdb.base/catch-signal.exp
@@ -117,6 +117,7 @@ foreach {arg desc} {"" "standard signals" \
"set catchpoint '$arg' for printing"
gdb_test "info break" "$decimal.*catchpoint.*signal.*$desc.*" \
"info break for '$arg'"
+ gdb_breakpoint "main"
gdb_test "save breakpoints [standard_output_file bps.$i]" \
"Saved to file .*bps.$i.*" \
"save breakpoints for '$arg'"
@@ -124,7 +125,8 @@ foreach {arg desc} {"" "standard signals" \
set filename [remote_upload host [standard_output_file bps.$i] \
[standard_output_file bps-local.$i]]
set fd [open $filename]
- set contents [read -nonewline $fd]
+ set file_data [read $fd]
+ set data [split $file_data "\n"]
close $fd
if {$arg == ""} {
@@ -132,11 +134,17 @@ foreach {arg desc} {"" "standard signals" \
} else {
set pattern "catch signal $arg"
}
- if {[string match $pattern $contents]} {
- pass "results of save breakpoints for '$arg'"
- } else {
- fail "results of save breakpoints for '$arg'"
- }
+ gdb_assert {[expr [llength $data] == 3]} \
+ "Number of lines of save breakpoints for '$arg'"
+ # Check the first line.
+ gdb_assert {[string match $pattern [lindex $data 0]]} \
+ "1st line of save breakpoints for '$arg'"
+ # Check the second line.
+ gdb_assert {[string match "break main" [lindex $data 1]]} \
+ "2nd line of save breakpoints for '$arg'"
+ # Check the trailing newline.
+ gdb_assert {[string match "" [lindex $data 2]]} \
+ "Trailing newline of save breakpoints for '$arg'"
incr i
}