[Bug 278551] lang/gcc: exceptions do not work in statically linked binaries

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 24 Apr 2024 20:04:57 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278551

--- Comment #18 from Mark Millard <marklmi26-fbsd@yahoo.com> ---
FYI:
I got more source code path information from a gdb based run. The
context used g++13 but the system has symbols as well. I keep a
main-src worktree that holds a copy of the main branch materials.
Thus the /usr/main-src/ in my paths.

(gdb) run
Starting program: /usr/home/root/c_tests/g++-static-link-test 
[New LWP 249477 of process 56713]
kernel

Thread 2 received signal SIGABRT, Aborted.
Sent by thr_kill() from pid 56713 and user 0.
[Switching to LWP 249477 of process 56713]
thr_kill () at thr_kill.S:4
4       RSYSCALL(thr_kill)
(gdb) bt
#0  thr_kill () at thr_kill.S:4
#1  0x00000000004c283f in __raise (s=s@entry=6) at
/usr/main-src/lib/libc/gen/raise.c:48
#2  0x00000000004df3d9 in abort () at /usr/main-src/lib/libc/stdlib/abort.c:61
#3  0x0000000000402be5 in uw_init_context_1
(context=context@entry=0x7fffdfffdd50,
outer_cfa=outer_cfa@entry=0x7fffdfffdf80, outer_ra=0x4b2fc6 <thread_unwind+54>)
    at /wrkdirs/usr/ports/lang/gcc13/work/gcc-13.2.0/libgcc/unwind-dw2.c:1336
#4  0x00000000004ae786 in _Unwind_ForcedUnwind (exc=0x800818940, stop=0x4b3170
<thread_unwind_stop>, stop_argument=stop_argument@entry=0x0)
    at /wrkdirs/usr/ports/lang/gcc13/work/gcc-13.2.0/libgcc/unwind.inc:212
#5  0x00000000004b2fc6 in thread_unwind () at
/usr/main-src/lib/libthr/thread/thr_exit.c:172
#6  0x00000000004b2f2c in _pthread_exit_mask (status=0x0, mask=mask@entry=0x0)
at /usr/main-src/lib/libthr/thread/thr_exit.c:254
#7  0x00000000004b2e9b in _Tthr_exit (status=0x3ce85) at
/usr/main-src/lib/libthr/thread/thr_exit.c:206
#8  0x00000000004b2b0d in thread_start (curthread=0x800818700) at
/usr/main-src/lib/libthr/thread/thr_create.c:289
#9  0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffdfffe000

-- 
You are receiving this mail because:
You are the assignee for the bug.