* [PATCH] testsuite: fix failure in gdb.threads/killed-outside.exp
@ 2022-02-03 14:07 Tankut Baris Aktemur
2022-02-03 14:40 ` Simon Marchi
0 siblings, 1 reply; 4+ messages in thread
From: Tankut Baris Aktemur @ 2022-02-03 14:07 UTC (permalink / raw)
To: gdb-patches
Starting with commit
commit 1da5d0e664e362857153af8682321a89ebafb7f6
Date: Tue Jan 4 08:02:24 2022 -0700
Change how Python architecture and language are handled
we see a failure in gdb.threads/killed-outside.exp:
...
Executing on target: kill -9 16622 (timeout = 300)
builtin_spawn -ignore SIGHUP kill -9 16622
continue
Continuing.
Couldn't get registers: No such process.
(gdb) [Thread 0x7ffff77c2700 (LWP 16626) exited]
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
FAIL: gdb.threads/killed-outside.exp: prompt after first continue (timeout)
This is not a regression but a failure due to a change in GDB's
output. Prior to the aforementioned commit, GDB has been printing the
"Couldn't get registers: No such process." message twice. The second
one came from
(top-gdb) bt
#0 amd64_linux_nat_target::fetch_registers (this=0x555557f31440 <the_amd64_linux_nat_target>, regcache=0x555558805ce0, regnum=16) at /gdb-up/gdb/amd64-linux-nat.c:225
#1 0x000055555640ac5f in target_ops::fetch_registers (this=0x555557d636d0 <the_thread_db_target>, arg0=0x555558805ce0, arg1=16) at /gdb-up/gdb/target-delegates.c:502
#2 0x000055555641a647 in target_fetch_registers (regcache=0x555558805ce0, regno=16) at /gdb-up/gdb/target.c:3945
#3 0x0000555556278e68 in regcache::raw_update (this=0x555558805ce0, regnum=16) at /gdb-up/gdb/regcache.c:587
#4 0x0000555556278f14 in readable_regcache::raw_read (this=0x555558805ce0, regnum=16, buf=0x555558881950 "") at /gdb-up/gdb/regcache.c:601
#5 0x00005555562792aa in readable_regcache::cooked_read (this=0x555558805ce0, regnum=16, buf=0x555558881950 "") at /gdb-up/gdb/regcache.c:690
#6 0x000055555627965e in readable_regcache::cooked_read_value (this=0x555558805ce0, regnum=16) at /gdb-up/gdb/regcache.c:748
#7 0x0000555556352a37 in sentinel_frame_prev_register (this_frame=0x555558181090, this_prologue_cache=0x5555581810a8, regnum=16) at /gdb-up/gdb/sentinel-frame.c:53
#8 0x0000555555fa4773 in frame_unwind_register_value (next_frame=0x555558181090, regnum=16) at /gdb-up/gdb/frame.c:1235
#9 0x0000555555fa420d in frame_register_unwind (next_frame=0x555558181090, regnum=16, optimizedp=0x7fffffffd570, unavailablep=0x7fffffffd574, lvalp=0x7fffffffd57c, addrp=0x7fffffffd580,
realnump=0x7fffffffd578, bufferp=0x7fffffffd5b0 "") at /gdb-up/gdb/frame.c:1143
#10 0x0000555555fa455f in frame_unwind_register (next_frame=0x555558181090, regnum=16, buf=0x7fffffffd5b0 "") at /gdb-up/gdb/frame.c:1199
#11 0x00005555560178e2 in i386_unwind_pc (gdbarch=0x5555587c4a70, next_frame=0x555558181090) at /gdb-up/gdb/i386-tdep.c:1972
#12 0x0000555555cd2b9d in gdbarch_unwind_pc (gdbarch=0x5555587c4a70, next_frame=0x555558181090) at /gdb-up/gdb/gdbarch.c:3007
#13 0x0000555555fa3a5b in frame_unwind_pc (this_frame=0x555558181090) at /gdb-up/gdb/frame.c:948
#14 0x0000555555fa7621 in get_frame_pc (frame=0x555558181160) at /gdb-up/gdb/frame.c:2572
#15 0x0000555555fa7706 in get_frame_address_in_block (this_frame=0x555558181160) at /gdb-up/gdb/frame.c:2602
#16 0x0000555555fa77d0 in get_frame_address_in_block_if_available (this_frame=0x555558181160, pc=0x7fffffffd708) at /gdb-up/gdb/frame.c:2665
#17 0x0000555555fa5f8d in select_frame (fi=0x555558181160) at /gdb-up/gdb/frame.c:1890
#18 0x0000555555fa5bab in lookup_selected_frame (a_frame_id=..., frame_level=-1) at /gdb-up/gdb/frame.c:1720
#19 0x0000555555fa5e47 in get_selected_frame (message=0x0) at /gdb-up/gdb/frame.c:1810
#20 0x0000555555cc9c6e in get_current_arch () at /gdb-up/gdb/arch-utils.c:848
#21 0x000055555625b239 in gdbpy_before_prompt_hook (extlang=0x555557451f20 <extension_language_python>, current_gdb_prompt=0x555557f4d890 <top_prompt+16> "(gdb) ")
at /gdb-up/gdb/python/python.c:1063
#22 0x0000555555f7cfbb in ext_lang_before_prompt (current_gdb_prompt=0x555557f4d890 <top_prompt+16> "(gdb) ") at /gdb-up/gdb/extension.c:922
#23 0x0000555555f7d442 in std::_Function_handler<void (char const*), void (*)(char const*)>::_M_invoke(std::_Any_data const&, char const*&&) (__functor=...,
__args#0=@0x7fffffffd900: 0x555557f4d890 <top_prompt+16> "(gdb) ") at /usr/include/c++/7/bits/std_function.h:316
#24 0x0000555555f752dd in std::function<void (char const*)>::operator()(char const*) const (this=0x55555817d838, __args#0=0x555557f4d890 <top_prompt+16> "(gdb) ")
at /usr/include/c++/7/bits/std_function.h:706
#25 0x0000555555f75100 in gdb::observers::observable<char const*>::notify (this=0x555557f49060 <gdb::observers::before_prompt>, args#0=0x555557f4d890 <top_prompt+16> "(gdb) ")
at /gdb-up/gdb/../gdbsupport/observable.h:150
#26 0x0000555555f736dc in top_level_prompt () at /gdb-up/gdb/event-top.c:444
#27 0x0000555555f735ba in display_gdb_prompt (new_prompt=0x0) at /gdb-up/gdb/event-top.c:411
#28 0x00005555564611a7 in tui_on_command_error () at /gdb-up/gdb/tui/tui-interp.c:205
#29 0x0000555555c2173f in std::_Function_handler<void (), void (*)()>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
#30 0x0000555555e10c20 in std::function<void ()>::operator()() const (this=0x5555580f9028) at /usr/include/c++/7/bits/std_function.h:706
#31 0x0000555555e10973 in gdb::observers::observable<>::notify() const (this=0x555557f48d20 <gdb::observers::command_error>) at /gdb-up/gdb/../gdbsupport/observable.h:150
#32 0x00005555560e9b3f in start_event_loop () at /gdb-up/gdb/main.c:438
#33 0x00005555560e9bcc in captured_command_loop () at /gdb-up/gdb/main.c:481
#34 0x00005555560eb616 in captured_main (data=0x7fffffffddd0) at /gdb-up/gdb/main.c:1348
#35 0x00005555560eb67c in gdb_main (args=0x7fffffffddd0) at /gdb-up/gdb/main.c:1363
#36 0x0000555555c1b6b3 in main (argc=12, argv=0x7fffffffded8) at /gdb-up/gdb/gdb.c:32
Commit 1da5d0e664 eliminated the call to 'get_current_arch'
in 'gdbpy_before_prompt_hook'. Hence, the second instance of
"Couldn't get registers: No such process." does not appear anymore.
Fix the failure by updating the regular expression in the test.
---
gdb/testsuite/gdb.threads/killed-outside.exp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gdb/testsuite/gdb.threads/killed-outside.exp b/gdb/testsuite/gdb.threads/killed-outside.exp
index a3996fe17c4..3d4543e088c 100644
--- a/gdb/testsuite/gdb.threads/killed-outside.exp
+++ b/gdb/testsuite/gdb.threads/killed-outside.exp
@@ -43,9 +43,9 @@ set no_longer_exists_msg "The program no longer exists\."
set not_being_run_msg "The program is not being run\."
gdb_test_multiple "continue" "prompt after first continue" {
- -re "Continuing\.\r\n$no_such_process_msg\r\n$no_such_process_msg\r\n$gdb_prompt " {
+ -re "Continuing\.\r\n$no_such_process_msg\r\n$gdb_prompt " {
pass $gdb_test_name
- # Two times $no_such_process_msg. The bug condition was triggered, go
+ # Saw $no_such_process_msg. The bug condition was triggered, go
# check for it.
gdb_test_multiple "" "messages" {
-re ".*$killed_msg.*$no_longer_exists_msg\r\n" {
--
2.33.1
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] testsuite: fix failure in gdb.threads/killed-outside.exp
2022-02-03 14:07 [PATCH] testsuite: fix failure in gdb.threads/killed-outside.exp Tankut Baris Aktemur
@ 2022-02-03 14:40 ` Simon Marchi
2022-02-03 15:08 ` Aktemur, Tankut Baris
2022-02-03 15:36 ` Tom Tromey
0 siblings, 2 replies; 4+ messages in thread
From: Simon Marchi @ 2022-02-03 14:40 UTC (permalink / raw)
To: Tankut Baris Aktemur, gdb-patches
On 2022-02-03 09:07, Tankut Baris Aktemur via Gdb-patches wrote:
> Starting with commit
>
> commit 1da5d0e664e362857153af8682321a89ebafb7f6
> Date: Tue Jan 4 08:02:24 2022 -0700
>
> Change how Python architecture and language are handled
>
> we see a failure in gdb.threads/killed-outside.exp:
>
> ...
> Executing on target: kill -9 16622 (timeout = 300)
> builtin_spawn -ignore SIGHUP kill -9 16622
> continue
> Continuing.
> Couldn't get registers: No such process.
> (gdb) [Thread 0x7ffff77c2700 (LWP 16626) exited]
>
> Program terminated with signal SIGKILL, Killed.
> The program no longer exists.
> FAIL: gdb.threads/killed-outside.exp: prompt after first continue (timeout)
>
> This is not a regression but a failure due to a change in GDB's
> output. Prior to the aforementioned commit, GDB has been printing the
> "Couldn't get registers: No such process." message twice. The second
> one came from
>
> (top-gdb) bt
> #0 amd64_linux_nat_target::fetch_registers (this=0x555557f31440 <the_amd64_linux_nat_target>, regcache=0x555558805ce0, regnum=16) at /gdb-up/gdb/amd64-linux-nat.c:225
> #1 0x000055555640ac5f in target_ops::fetch_registers (this=0x555557d636d0 <the_thread_db_target>, arg0=0x555558805ce0, arg1=16) at /gdb-up/gdb/target-delegates.c:502
> #2 0x000055555641a647 in target_fetch_registers (regcache=0x555558805ce0, regno=16) at /gdb-up/gdb/target.c:3945
> #3 0x0000555556278e68 in regcache::raw_update (this=0x555558805ce0, regnum=16) at /gdb-up/gdb/regcache.c:587
> #4 0x0000555556278f14 in readable_regcache::raw_read (this=0x555558805ce0, regnum=16, buf=0x555558881950 "") at /gdb-up/gdb/regcache.c:601
> #5 0x00005555562792aa in readable_regcache::cooked_read (this=0x555558805ce0, regnum=16, buf=0x555558881950 "") at /gdb-up/gdb/regcache.c:690
> #6 0x000055555627965e in readable_regcache::cooked_read_value (this=0x555558805ce0, regnum=16) at /gdb-up/gdb/regcache.c:748
> #7 0x0000555556352a37 in sentinel_frame_prev_register (this_frame=0x555558181090, this_prologue_cache=0x5555581810a8, regnum=16) at /gdb-up/gdb/sentinel-frame.c:53
> #8 0x0000555555fa4773 in frame_unwind_register_value (next_frame=0x555558181090, regnum=16) at /gdb-up/gdb/frame.c:1235
> #9 0x0000555555fa420d in frame_register_unwind (next_frame=0x555558181090, regnum=16, optimizedp=0x7fffffffd570, unavailablep=0x7fffffffd574, lvalp=0x7fffffffd57c, addrp=0x7fffffffd580,
> realnump=0x7fffffffd578, bufferp=0x7fffffffd5b0 "") at /gdb-up/gdb/frame.c:1143
> #10 0x0000555555fa455f in frame_unwind_register (next_frame=0x555558181090, regnum=16, buf=0x7fffffffd5b0 "") at /gdb-up/gdb/frame.c:1199
> #11 0x00005555560178e2 in i386_unwind_pc (gdbarch=0x5555587c4a70, next_frame=0x555558181090) at /gdb-up/gdb/i386-tdep.c:1972
> #12 0x0000555555cd2b9d in gdbarch_unwind_pc (gdbarch=0x5555587c4a70, next_frame=0x555558181090) at /gdb-up/gdb/gdbarch.c:3007
> #13 0x0000555555fa3a5b in frame_unwind_pc (this_frame=0x555558181090) at /gdb-up/gdb/frame.c:948
> #14 0x0000555555fa7621 in get_frame_pc (frame=0x555558181160) at /gdb-up/gdb/frame.c:2572
> #15 0x0000555555fa7706 in get_frame_address_in_block (this_frame=0x555558181160) at /gdb-up/gdb/frame.c:2602
> #16 0x0000555555fa77d0 in get_frame_address_in_block_if_available (this_frame=0x555558181160, pc=0x7fffffffd708) at /gdb-up/gdb/frame.c:2665
> #17 0x0000555555fa5f8d in select_frame (fi=0x555558181160) at /gdb-up/gdb/frame.c:1890
> #18 0x0000555555fa5bab in lookup_selected_frame (a_frame_id=..., frame_level=-1) at /gdb-up/gdb/frame.c:1720
> #19 0x0000555555fa5e47 in get_selected_frame (message=0x0) at /gdb-up/gdb/frame.c:1810
> #20 0x0000555555cc9c6e in get_current_arch () at /gdb-up/gdb/arch-utils.c:848
> #21 0x000055555625b239 in gdbpy_before_prompt_hook (extlang=0x555557451f20 <extension_language_python>, current_gdb_prompt=0x555557f4d890 <top_prompt+16> "(gdb) ")
> at /gdb-up/gdb/python/python.c:1063
> #22 0x0000555555f7cfbb in ext_lang_before_prompt (current_gdb_prompt=0x555557f4d890 <top_prompt+16> "(gdb) ") at /gdb-up/gdb/extension.c:922
> #23 0x0000555555f7d442 in std::_Function_handler<void (char const*), void (*)(char const*)>::_M_invoke(std::_Any_data const&, char const*&&) (__functor=...,
> __args#0=@0x7fffffffd900: 0x555557f4d890 <top_prompt+16> "(gdb) ") at /usr/include/c++/7/bits/std_function.h:316
> #24 0x0000555555f752dd in std::function<void (char const*)>::operator()(char const*) const (this=0x55555817d838, __args#0=0x555557f4d890 <top_prompt+16> "(gdb) ")
> at /usr/include/c++/7/bits/std_function.h:706
> #25 0x0000555555f75100 in gdb::observers::observable<char const*>::notify (this=0x555557f49060 <gdb::observers::before_prompt>, args#0=0x555557f4d890 <top_prompt+16> "(gdb) ")
> at /gdb-up/gdb/../gdbsupport/observable.h:150
> #26 0x0000555555f736dc in top_level_prompt () at /gdb-up/gdb/event-top.c:444
> #27 0x0000555555f735ba in display_gdb_prompt (new_prompt=0x0) at /gdb-up/gdb/event-top.c:411
> #28 0x00005555564611a7 in tui_on_command_error () at /gdb-up/gdb/tui/tui-interp.c:205
> #29 0x0000555555c2173f in std::_Function_handler<void (), void (*)()>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
> #30 0x0000555555e10c20 in std::function<void ()>::operator()() const (this=0x5555580f9028) at /usr/include/c++/7/bits/std_function.h:706
> #31 0x0000555555e10973 in gdb::observers::observable<>::notify() const (this=0x555557f48d20 <gdb::observers::command_error>) at /gdb-up/gdb/../gdbsupport/observable.h:150
> #32 0x00005555560e9b3f in start_event_loop () at /gdb-up/gdb/main.c:438
> #33 0x00005555560e9bcc in captured_command_loop () at /gdb-up/gdb/main.c:481
> #34 0x00005555560eb616 in captured_main (data=0x7fffffffddd0) at /gdb-up/gdb/main.c:1348
> #35 0x00005555560eb67c in gdb_main (args=0x7fffffffddd0) at /gdb-up/gdb/main.c:1363
> #36 0x0000555555c1b6b3 in main (argc=12, argv=0x7fffffffded8) at /gdb-up/gdb/gdb.c:32
>
> Commit 1da5d0e664 eliminated the call to 'get_current_arch'
> in 'gdbpy_before_prompt_hook'. Hence, the second instance of
> "Couldn't get registers: No such process." does not appear anymore.
>
> Fix the failure by updating the regular expression in the test.
Hi,
I swear, I was investigating / writing the commit message for a patch to
address this, just right now. And my commit message was almost
identical to yours ;). Therefore, LGTM.
Simon
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] testsuite: fix failure in gdb.threads/killed-outside.exp
2022-02-03 14:40 ` Simon Marchi
@ 2022-02-03 15:08 ` Aktemur, Tankut Baris
2022-02-03 15:36 ` Tom Tromey
1 sibling, 0 replies; 4+ messages in thread
From: Aktemur, Tankut Baris @ 2022-02-03 15:08 UTC (permalink / raw)
To: Simon Marchi, gdb-patches
On Thursday, February 3, 2022 3:41 PM, Simon Marchi wrote:
> Hi,
>
> I swear, I was investigating / writing the commit message for a patch to
> address this, just right now. And my commit message was almost
> identical to yours ;). Therefore, LGTM.
>
> Simon
Thanks :)
Pushed the patch.
-Baris
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] testsuite: fix failure in gdb.threads/killed-outside.exp
2022-02-03 14:40 ` Simon Marchi
2022-02-03 15:08 ` Aktemur, Tankut Baris
@ 2022-02-03 15:36 ` Tom Tromey
1 sibling, 0 replies; 4+ messages in thread
From: Tom Tromey @ 2022-02-03 15:36 UTC (permalink / raw)
To: Simon Marchi via Gdb-patches
>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:
>> This is not a regression but a failure due to a change in GDB's
>> output. Prior to the aforementioned commit, GDB has been printing the
>> "Couldn't get registers: No such process." message twice. The second
>> one came from
Simon> I swear, I was investigating / writing the commit message for a patch to
Simon> address this, just right now. And my commit message was almost
Simon> identical to yours ;). Therefore, LGTM.
Thank you both for working on this. I'm sorry I haven't been able to
get to it -- I had reproduced it, and noticed that the error was already
in the logs, but hadn't yet found time to debug it. I should've sent
email about this sooner.
Tom
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-03 15:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-03 14:07 [PATCH] testsuite: fix failure in gdb.threads/killed-outside.exp Tankut Baris Aktemur
2022-02-03 14:40 ` Simon Marchi
2022-02-03 15:08 ` Aktemur, Tankut Baris
2022-02-03 15:36 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).