aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2023-02-08 13:23:14 +0000
committerAndrew Burgess <aburgess@redhat.com>2023-02-11 17:36:24 +0000
commitf1f517e81039f6aa673b7d87a66bfbd25a66e3d3 (patch)
tree51d4a45f50f7beb9d9e487daac4db2c355bbb80b /gdb
parentce068c5f45aeebc9729499253e0a8f1f29be65c2 (diff)
downloadgdb-f1f517e81039f6aa673b7d87a66bfbd25a66e3d3.zip
gdb-f1f517e81039f6aa673b7d87a66bfbd25a66e3d3.tar.gz
gdb-f1f517e81039f6aa673b7d87a66bfbd25a66e3d3.tar.bz2
gdb: show task number in describe_other_breakpoints
I noticed that describe_other_breakpoints doesn't show the task number, but does show the thread-id. I can't see any reason why we'd want to not show the task number in this situation, so this commit adds this missing information, and extends gdb.ada/tasks.exp to check this case. Approved-By: Pedro Alves <pedro@palves.net>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/breakpoint.c2
-rw-r--r--gdb/testsuite/gdb.ada/tasks.exp17
2 files changed, 13 insertions, 6 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 6816328..5959013 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -7049,6 +7049,8 @@ describe_other_breakpoints (struct gdbarch *gdbarch,
struct thread_info *thr = find_thread_global_id (b->thread);
gdb_printf (" (thread %s)", print_thread_id (thr));
}
+ else if (b->task != 0)
+ gdb_printf (" (task %d)", b->task);
gdb_printf ("%s%s ",
((b->enable_state == bp_disabled
|| b->enable_state == bp_call_disabled)
diff --git a/gdb/testsuite/gdb.ada/tasks.exp b/gdb/testsuite/gdb.ada/tasks.exp
index 88ef123..19aca7a 100644
--- a/gdb/testsuite/gdb.ada/tasks.exp
+++ b/gdb/testsuite/gdb.ada/tasks.exp
@@ -50,16 +50,21 @@ gdb_test "watch j task 1 task 3" "You can specify only one task\\."
# breakpoint in the list that matched the triggered-breakpoint's
# address, no matter which task it was specific to.
gdb_test "break break_me task 1" "Breakpoint .* at .*"
+set bp_number [get_integer_valueof "\$bpnum" "INVALID" \
+ "get number of breakpoint for task 1"]
gdb_test "info breakpoints" "foo.adb:${decimal}\r\n\\s+stop only in task 1" \
"check info breakpoints for task 1 breakpoint"
# Now, insert a breakpoint that should stop only if task 3 stops, and
-# extract its number.
-gdb_breakpoint "break_me task 3" message
-set bp_number [get_integer_valueof "\$bpnum" -1]
-if {$bp_number < 0} {
- return
-}
+# extract its number. Use gdb_test here so that we can validate that
+# the 'Breakpoint ... also set at' line correctly includes the task
+# number of the previous breakpoint.
+gdb_test "break break_me task 3" \
+ [multi_line \
+ "Note: breakpoint $bp_number \\(task 1\\) also set at pc $hex\\." \
+ "Breakpoint $decimal at $hex: \[^\r\n\]+"]
+set bp_number [get_integer_valueof "\$bpnum" "INVALID" \
+ "get number of breakpoint for task 3"]
gdb_test "info breakpoints" "foo.adb:${decimal}\r\n\\s+stop only in task 3" \
"check info breakpoints for task 3 breakpoint"