* [Bug gdb/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
@ 2024-03-29 9:39 ` vries at gcc dot gnu.org
2024-03-29 9:39 ` vries at gcc dot gnu.org
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-03-29 9:39 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Backtrace of the corefile:
...
(gdb) bt
#0 0x0000ffff75504f54 in raise () from /lib64/libpthread.so.0
#1 0x00000000007a86b4 in handle_fatal_signal (sig=6)
at /data/vries/gdb/src/gdb/event-top.c:926
#2 <signal handler called>
#3 0x0000ffff74b977b4 in raise () from /lib64/libc.so.6
#4 0x0000ffff74b98c18 in abort () from /lib64/libc.so.6
#5 0x0000ffff74ea26f4 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib64/libstdc++.so.6
#6 0x0000ffff74ea011c in ?? () from /usr/lib64/libstdc++.so.6
#7 0x0000ffff74ea0180 in std::terminate() () from /usr/lib64/libstdc++.so.6
#8 0x0000ffff74ea0464 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#9 0x0000000001548870 in throw_it (reason=RETURN_ERROR,
error=TARGET_CLOSE_ERROR,
fmt=0x16c7810 "Remote connection closed", ap=...)
at /data/vries/gdb/src/gdbsupport/common-exceptions.cc:203
#10 0x0000000001548920 in throw_verror (error=TARGET_CLOSE_ERROR,
fmt=0x16c7810 "Remote connection closed", ap=...)
at /data/vries/gdb/src/gdbsupport/common-exceptions.cc:211
#11 0x0000000001548a00 in throw_error (error=TARGET_CLOSE_ERROR,
fmt=0x16c7810 "Remote connection closed")
at /data/vries/gdb/src/gdbsupport/common-exceptions.cc:226
#12 0x0000000000ac8f2c in remote_target::readchar (this=0x233d3d90, timeout=2)
at /data/vries/gdb/src/gdb/remote.c:9856
#13 0x0000000000ac9f04 in remote_target::getpkt (this=0x233d3d90,
buf=0x233d40a8,
forever=false, is_notif=0x0) at /data/vries/gdb/src/gdb/remote.c:10326
#14 0x0000000000acf3d0 in remote_target::remote_hostio_send_command
(this=0x233d3d90,
command_bytes=13, which_packet=17, remote_errno=0xfffff1a3cf38,
attachment=0xfffff1a3ce88, attachment_len=0xfffff1a3ce90)
at /data/vries/gdb/src/gdb/remote.c:12567
#15 0x0000000000ad03bc in remote_target::fileio_fstat (this=0x233d3d90, fd=3,
st=0xfffff1a3d020, remote_errno=0xfffff1a3cf38)
at /data/vries/gdb/src/gdb/remote.c:12979
#16 0x0000000000c39878 in target_fileio_fstat (fd=0, sb=0xfffff1a3d020,
target_errno=0xfffff1a3cf38) at /data/vries/gdb/src/gdb/target.c:3315
#17 0x00000000007eee5c in target_fileio_stream::stat (this=0x233d4400,
abfd=0x2323fc40,
sb=0xfffff1a3d020) at /data/vries/gdb/src/gdb/gdb_bfd.c:467
#18 0x00000000007f012c in <lambda(bfd*, void*, stat*)>::operator()(bfd *, void
*, stat *) const (__closure=0x0, abfd=0x2323fc40, stream=0x233d4400,
sb=0xfffff1a3d020)
at /data/vries/gdb/src/gdb/gdb_bfd.c:955
#19 0x00000000007f015c in <lambda(bfd*, void*, stat*)>::_FUN(bfd *, void *,
stat *) ()
at /data/vries/gdb/src/gdb/gdb_bfd.c:956
#20 0x0000000000f9b838 in opncls_bstat (abfd=0x2323fc40, sb=0xfffff1a3d020)
at /data/vries/gdb/src/bfd/opncls.c:665
#21 0x0000000000f90adc in bfd_stat (abfd=0x2323fc40, statbuf=0xfffff1a3d020)
at /data/vries/gdb/src/bfd/bfdio.c:431
#22 0x000000000065fe20 in reopen_exec_file () at
/data/vries/gdb/src/gdb/corefile.c:52
#23 0x0000000000c3a3e8 in generic_mourn_inferior ()
at /data/vries/gdb/src/gdb/target.c:3642
#24 0x0000000000abf3f0 in remote_unpush_target (target=0x233d3d90)
at /data/vries/gdb/src/gdb/remote.c:6067
#25 0x0000000000aca8b0 in remote_target::mourn_inferior (this=0x233d3d90)
at /data/vries/gdb/src/gdb/remote.c:10587
#26 0x0000000000c387cc in target_mourn_inferior (
ptid=<error reading variable: Cannot access memory at address 0x2d310>)
at /data/vries/gdb/src/gdb/target.c:2738
#27 0x0000000000abfff0 in remote_target::remote_detach_1 (this=0x233d3d90,
inf=0x22fce540, from_tty=1) at /data/vries/gdb/src/gdb/remote.c:6421
#28 0x0000000000ac0094 in remote_target::detach (this=0x233d3d90,
inf=0x22fce540,
from_tty=1) at /data/vries/gdb/src/gdb/remote.c:6436
#29 0x0000000000c37c3c in target_detach (inf=0x22fce540, from_tty=1)
at /data/vries/gdb/src/gdb/target.c:2526
#30 0x0000000000860424 in detach_command (args=0x0, from_tty=1)
at /data/vries/gdb/src/gdb/infcmd.c:2817
#31 0x000000000060b594 in do_simple_func (args=0x0, from_tty=1, c=0x231431a0)
at /data/vries/gdb/src/gdb/cli/cli-decode.c:94
#32 0x00000000006108c8 in cmd_func (cmd=0x231431a0, args=0x0, from_tty=1)
at /data/vries/gdb/src/gdb/cli/cli-decode.c:2741
#33 0x0000000000c65a94 in execute_command (p=0x232e52f6 "", from_tty=1)
at /data/vries/gdb/src/gdb/top.c:570
#34 0x00000000007a7d2c in command_handler (command=0x232e52f0 "")
at /data/vries/gdb/src/gdb/event-top.c:566
#35 0x00000000007a8290 in command_line_handler (rl=...)
at /data/vries/gdb/src/gdb/event-top.c:802
#36 0x0000000000c9092c in tui_command_line_handler (rl=...)
at /data/vries/gdb/src/gdb/tui/tui-interp.c:103
#37 0x00000000007a750c in gdb_rl_callback_handler (rl=0x23385330 "detach")
at /data/vries/gdb/src/gdb/event-top.c:258
#38 0x0000000000d910f4 in rl_callback_read_char ()
at /data/vries/gdb/src/readline/readline/callback.c:290
#39 0x00000000007a7338 in gdb_rl_callback_read_char_wrapper_noexcept ()
at /data/vries/gdb/src/gdb/event-top.c:194
#40 0x00000000007a73f0 in gdb_rl_callback_read_char_wrapper
(client_data=0x22fbf640)
at /data/vries/gdb/src/gdb/event-top.c:233
#41 0x0000000000cbee1c in stdin_event_handler (error=0, client_data=0x22fbf640)
at /data/vries/gdb/src/gdb/ui.c:154
#42 0x000000000154ed60 in handle_file_event (file_ptr=0x232be730, ready_mask=1)
at /data/vries/gdb/src/gdbsupport/event-loop.cc:572
#43 0x000000000154f21c in gdb_wait_for_event (block=1)
at /data/vries/gdb/src/gdbsupport/event-loop.cc:693
#44 0x000000000154dec4 in gdb_do_one_event (mstimeout=-1)
at /data/vries/gdb/src/gdbsupport/event-loop.cc:263
#45 0x0000000000910f98 in start_event_loop () at
/data/vries/gdb/src/gdb/main.c:400
#46 0x0000000000911130 in captured_command_loop () at
/data/vries/gdb/src/gdb/main.c:464
#47 0x0000000000912b5c in captured_main (data=0xfffff1a3db58)
at /data/vries/gdb/src/gdb/main.c:1338
#48 0x0000000000912bf4 in gdb_main (args=0xfffff1a3db58)
at /data/vries/gdb/src/gdb/main.c:1357
#49 0x00000000004170f4 in main (argc=10, argv=0xfffff1a3dcc8)
at /data/vries/gdb/src/gdb/gdb.c:38
(gdb)
...
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug gdb/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
2024-03-29 9:39 ` [Bug gdb/31577] " vries at gcc dot gnu.org
@ 2024-03-29 9:39 ` vries at gcc dot gnu.org
2024-04-19 8:14 ` vries at gcc dot gnu.org
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-03-29 9:39 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
FTR, this is at commit b58829cdeff ("x86/SSE2AVX: move checking").
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug gdb/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
2024-03-29 9:39 ` [Bug gdb/31577] " vries at gcc dot gnu.org
2024-03-29 9:39 ` vries at gcc dot gnu.org
@ 2024-04-19 8:14 ` vries at gcc dot gnu.org
2024-04-19 8:14 ` [Bug remote/31577] " vries at gcc dot gnu.org
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-04-19 8:14 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
Something like this fixes it:
...
diff --git a/gdb/remote.c b/gdb/remote.c
index 5c9fdebcdbe..3de4a0bae80 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -12574,8 +12574,20 @@ remote_target::remote_hostio_send_command (int
command_bytes, int which_packet,
return -1;
}
- putpkt_binary (rs->buf.data (), command_bytes);
- bytes_read = getpkt (&rs->buf);
+ try
+ {
+ putpkt_binary (rs->buf.data (), command_bytes);
+ bytes_read = getpkt (&rs->buf);
+ }
+ catch (const gdb_exception &ex)
+ {
+ if (ex.error == TARGET_CLOSE_ERROR)
+ {
+ *remote_errno = FILEIO_EIO;
+ return -1;
+ }
+ throw;
+ }
/* If it timed out, something is wrong. Don't try to parse the
buffer. */
...
But it remains unclear to me at what point exactly we should catch this.
Here? Down in getpkt? Up in detach_command?
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug remote/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
` (2 preceding siblings ...)
2024-04-19 8:14 ` vries at gcc dot gnu.org
@ 2024-04-19 8:14 ` vries at gcc dot gnu.org
2024-04-19 9:11 ` vries at gcc dot gnu.org
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-04-19 8:14 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
Tom de Vries <vries at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|gdb |remote
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug remote/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
` (3 preceding siblings ...)
2024-04-19 8:14 ` [Bug remote/31577] " vries at gcc dot gnu.org
@ 2024-04-19 9:11 ` vries at gcc dot gnu.org
2024-04-19 12:04 ` vries at gcc dot gnu.org
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-04-19 9:11 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
Passes with -fexceptions.
So, this is about a c++ exception reaching c code compiled without
-fexceptions, and terminating.
This is a fix that catches the exception just before reaching c code:
...
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 1462aaf0f89..1a29b83eb2c 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -951,8 +951,15 @@ gdb_bfd_openr_iovec (const char *filename, const char
*target,
auto stat_trampoline = [] (struct bfd *abfd, void *stream,
struct stat *sb) -> int
{
- gdb_bfd_iovec_base *obj = static_cast<gdb_bfd_iovec_base *> (stream);
- return obj->stat (abfd, sb);
+ try
+ {
+ gdb_bfd_iovec_base *obj = static_cast<gdb_bfd_iovec_base *> (stream);
+ return obj->stat (abfd, sb);
+ }
+ catch (const gdb_exception_error &)
+ {
+ return -1;
+ }
};
auto close_trampoline = [] (struct bfd *nbfd, void *stream) -> int
...
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug remote/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
` (4 preceding siblings ...)
2024-04-19 9:11 ` vries at gcc dot gnu.org
@ 2024-04-19 12:04 ` vries at gcc dot gnu.org
2024-04-27 15:48 ` cvs-commit at gcc dot gnu.org
2024-04-27 15:50 ` vries at gcc dot gnu.org
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-04-19 12:04 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> ---
https://sourceware.org/pipermail/gdb-patches/2024-April/208302.html
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug remote/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
` (5 preceding siblings ...)
2024-04-19 12:04 ` vries at gcc dot gnu.org
@ 2024-04-27 15:48 ` cvs-commit at gcc dot gnu.org
2024-04-27 15:50 ` vries at gcc dot gnu.org
7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-04-27 15:48 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--- Comment #6 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom de Vries <vries@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e705ee1621d35af5d05bf40b8653fe9d4be2be09
commit e705ee1621d35af5d05bf40b8653fe9d4be2be09
Author: Tom de Vries <tdevries@suse.de>
Date: Sat Apr 27 17:48:22 2024 +0200
[gdb/remote] Fix abort on REMOTE_CLOSE_ERROR
When running test-case gdb.server/connect-with-no-symbol-file.exp on
aarch64-linux (specifically, an opensuse leap 15.5 container on a
fedora asahi 39 system), I run into:
...
(gdb) detach^M
Detaching from program: target:connect-with-no-symbol-file, process
185104^M
Ending remote debugging.^M
terminate called after throwing an instance of 'gdb_exception_error'^M
...
The detailed backtrace of the corefile is:
...
(gdb) bt
#0 0x0000ffff75504f54 in raise () from /lib64/libpthread.so.0
#1 0x00000000007a86b4 in handle_fatal_signal (sig=6)
at gdb/event-top.c:926
#2 <signal handler called>
#3 0x0000ffff74b977b4 in raise () from /lib64/libc.so.6
#4 0x0000ffff74b98c18 in abort () from /lib64/libc.so.6
#5 0x0000ffff74ea26f4 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib64/libstdc++.so.6
#6 0x0000ffff74ea011c in ?? () from /usr/lib64/libstdc++.so.6
#7 0x0000ffff74ea0180 in std::terminate() () from
/usr/lib64/libstdc++.so.6
#8 0x0000ffff74ea0464 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#9 0x0000000001548870 in throw_it (reason=RETURN_ERROR,
error=TARGET_CLOSE_ERROR, fmt=0x16c7810 "Remote connection closed",
ap=...)
at gdbsupport/common-exceptions.cc:203
#10 0x0000000001548920 in throw_verror (error=TARGET_CLOSE_ERROR,
fmt=0x16c7810 "Remote connection closed", ap=...)
at gdbsupport/common-exceptions.cc:211
#11 0x0000000001548a00 in throw_error (error=TARGET_CLOSE_ERROR,
fmt=0x16c7810 "Remote connection closed")
at gdbsupport/common-exceptions.cc:226
#12 0x0000000000ac8f2c in remote_target::readchar (this=0x233d3d90,
timeout=2)
at gdb/remote.c:9856
#13 0x0000000000ac9f04 in remote_target::getpkt (this=0x233d3d90,
buf=0x233d40a8, forever=false, is_notif=0x0) at gdb/remote.c:10326
#14 0x0000000000acf3d0 in remote_target::remote_hostio_send_command
(this=0x233d3d90, command_bytes=13, which_packet=17,
remote_errno=0xfffff1a3cf38, attachment=0xfffff1a3ce88,
attachment_len=0xfffff1a3ce90) at gdb/remote.c:12567
#15 0x0000000000ad03bc in remote_target::fileio_fstat (this=0x233d3d90,
fd=3,
st=0xfffff1a3d020, remote_errno=0xfffff1a3cf38)
at gdb/remote.c:12979
#16 0x0000000000c39878 in target_fileio_fstat (fd=0, sb=0xfffff1a3d020,
target_errno=0xfffff1a3cf38) at gdb/target.c:3315
#17 0x00000000007eee5c in target_fileio_stream::stat (this=0x233d4400,
abfd=0x2323fc40, sb=0xfffff1a3d020) at gdb/gdb_bfd.c:467
#18 0x00000000007f012c in <lambda(bfd*, void*, stat*)>::operator()(bfd *,
void *, stat *) const (__closure=0x0, abfd=0x2323fc40,
stream=0x233d4400,
sb=0xfffff1a3d020) at gdb/gdb_bfd.c:955
#19 0x00000000007f015c in <lambda(bfd*, void*, stat*)>::_FUN(bfd *, void
*,
stat *) () at gdb/gdb_bfd.c:956
#20 0x0000000000f9b838 in opncls_bstat (abfd=0x2323fc40,
sb=0xfffff1a3d020)
at bfd/opncls.c:665
#21 0x0000000000f90adc in bfd_stat (abfd=0x2323fc40,
statbuf=0xfffff1a3d020)
at bfd/bfdio.c:431
#22 0x000000000065fe20 in reopen_exec_file () at gdb/corefile.c:52
#23 0x0000000000c3a3e8 in generic_mourn_inferior ()
at gdb/target.c:3642
#24 0x0000000000abf3f0 in remote_unpush_target (target=0x233d3d90)
at gdb/remote.c:6067
#25 0x0000000000aca8b0 in remote_target::mourn_inferior (this=0x233d3d90)
at gdb/remote.c:10587
#26 0x0000000000c387cc in target_mourn_inferior (
ptid=<error reading variable: Cannot access memory at address
0x2d310>)
at gdb/target.c:2738
#27 0x0000000000abfff0 in remote_target::remote_detach_1 (this=0x233d3d90,
inf=0x22fce540, from_tty=1) at gdb/remote.c:6421
#28 0x0000000000ac0094 in remote_target::detach (this=0x233d3d90,
inf=0x22fce540, from_tty=1) at gdb/remote.c:6436
#29 0x0000000000c37c3c in target_detach (inf=0x22fce540, from_tty=1)
at gdb/target.c:2526
#30 0x0000000000860424 in detach_command (args=0x0, from_tty=1)
at gdb/infcmd.c:2817
#31 0x000000000060b594 in do_simple_func (args=0x0, from_tty=1,
c=0x231431a0)
at gdb/cli/cli-decode.c:94
#32 0x00000000006108c8 in cmd_func (cmd=0x231431a0, args=0x0, from_tty=1)
at gdb/cli/cli-decode.c:2741
#33 0x0000000000c65a94 in execute_command (p=0x232e52f6 "", from_tty=1)
at gdb/top.c:570
#34 0x00000000007a7d2c in command_handler (command=0x232e52f0 "")
at gdb/event-top.c:566
#35 0x00000000007a8290 in command_line_handler (rl=...)
at gdb/event-top.c:802
#36 0x0000000000c9092c in tui_command_line_handler (rl=...)
at gdb/tui/tui-interp.c:103
#37 0x00000000007a750c in gdb_rl_callback_handler (rl=0x23385330 "detach")
at gdb/event-top.c:258
#38 0x0000000000d910f4 in rl_callback_read_char ()
at readline/readline/callback.c:290
#39 0x00000000007a7338 in gdb_rl_callback_read_char_wrapper_noexcept ()
at gdb/event-top.c:194
#40 0x00000000007a73f0 in gdb_rl_callback_read_char_wrapper
(client_data=0x22fbf640) at gdb/event-top.c:233
#41 0x0000000000cbee1c in stdin_event_handler (error=0,
client_data=0x22fbf640)
at gdb/ui.c:154
#42 0x000000000154ed60 in handle_file_event (file_ptr=0x232be730,
ready_mask=1)
at gdbsupport/event-loop.cc:572
#43 0x000000000154f21c in gdb_wait_for_event (block=1)
at gdbsupport/event-loop.cc:693
#44 0x000000000154dec4 in gdb_do_one_event (mstimeout=-1)
at gdbsupport/event-loop.cc:263
#45 0x0000000000910f98 in start_event_loop () at gdb/main.c:400
#46 0x0000000000911130 in captured_command_loop () at gdb/main.c:464
#47 0x0000000000912b5c in captured_main (data=0xfffff1a3db58)
at gdb/main.c:1338
#48 0x0000000000912bf4 in gdb_main (args=0xfffff1a3db58)
at gdb/main.c:1357
#49 0x00000000004170f4 in main (argc=10, argv=0xfffff1a3dcc8)
at gdb/gdb.c:38
(gdb)
...
The abort happens because a c++ exception escapes to c code, specifically
opncls_bstat in bfd/opncls.c. Compiling with -fexceptions works around
this.
Fix this by catching the exception just before it escapes, in
stat_trampoline
and likewise in few similar spot.
Add a new template catch_exceptions to do so in a consistent way.
Tested on aarch64-linux.
Approved-by: Pedro Alves <pedro@palves.net>
PR remote/31577
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31577
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug remote/31577] [gdb] terminate called after throwing an instance of 'gdb_exception_error'
2024-03-29 9:34 [Bug gdb/31577] New: [gdb] terminate called after throwing an instance of 'gdb_exception_error' vries at gcc dot gnu.org
` (6 preceding siblings ...)
2024-04-27 15:48 ` cvs-commit at gcc dot gnu.org
@ 2024-04-27 15:50 ` vries at gcc dot gnu.org
7 siblings, 0 replies; 9+ messages in thread
From: vries at gcc dot gnu.org @ 2024-04-27 15:50 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=31577
Tom de Vries <vries at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Target Milestone|--- |15.1
Status|NEW |RESOLVED
--- Comment #7 from Tom de Vries <vries at gcc dot gnu.org> ---
Fixed.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 9+ messages in thread