Date: Tue, 12 Sep 2023 21:23:16 -0700 From: Mark Millard <marklmi@yahoo.com> To: freebsd-ports+subscribe-nomail@freebsd.org, freebsd-arm <freebsd-arm@freebsd.org> Cc: Kyle Evans <kevans@FreeBSD.org>, Mark Johnston <markj@FreeBSD.org> Subject: aarch64 devel/gdb for kgdb use on main [so: 15] (and, likely, 14.0-????): dump core.txt.?'s kgdb backtraces are messed up Message-ID: <31BB2D7D-3A91-48AC-B29E-BDEA0CA59A73@yahoo.com> References: <31BB2D7D-3A91-48AC-B29E-BDEA0CA59A73.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[I've cc'd the last 2 devel/gdb authors of kgdb-related material.] kgdb 13.1_4 is an improvement over 13.1_3 for aarch64 but is still broken. 13.1_3 example: 0x0000000000000000 in ?? () (kgdb) #0 0x0000000000000000 in ?? () #1 <unavailable> in ?? () Backtrace stopped: not enough registers or memory available to unwind = further (kgdb)=20 13.1_4 example: get_curthread () at /usr/src/sys/arm64/include/pcpu.h:77 77 __asm __volatile("ldr %0, [x18]" : "=3D&r"(td)); (kgdb) #0 get_curthread () at /usr/src/sys/arm64/include/pcpu.h:77 #1 doadump (textdump=3D0, textdump@entry=3D1576585744) at /usr/src/sys/kern/kern_shutdown.c:405 #2 0xffff0000000ec18c in db_dump (dummy=3D<optimized out>, = dummy2=3D<optimized out>, dummy3=3D<optimized out>, dummy4=3D<optimized = out>) at /usr/src/sys/ddb/db_command.c:591 #3 0xffff0000000ebf88 in db_command (last_cmdp=3D<optimized out>, = cmd_table=3D<optimized out>, dopager=3Dtrue) at /usr/src/sys/ddb/db_command.c:504 #4 0xffff0000000ebc80 in db_command_loop () at /usr/src/sys/ddb/db_command.c:551 #5 0xffff0000000ef440 in db_trap (type=3D<optimized out>, = code=3D<optimized out>) at /usr/src/sys/ddb/db_main.c:268 #6 0xffff0000004b4860 in kdb_trap (type=3D60, code=3D0, tf=3D<optimized = out>) at /usr/src/sys/kern/subr_kdb.c:790 #7 <signal handler called> #8 <signal handler called> #9 <signal handler called> #10 <signal handler called> #11 <signal handler called> #12 <signal handler called> #13 <signal handler called> #14 <signal handler called> #15 <signal handler called> #16 <signal handler called> #17 <signal handler called> #18 <signal handler called> #19 <signal handler called> #20 <signal handler called> #21 <signal handler called> #22 <signal handler called> #23 <signal handler called> Backtrace stopped: Cannot access memory at address 0x10 (kgdb)=20 (Same kernel [from a snapshot], different worlds involved.) The backtraces are from the panic reporting at: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D273081 (for a kyua test). I'll note that prior to the kgdb backtrace is a non-kgdb backtrace, such as: panic: vm_fault failed: 0xffff0000006813b4 error 1 cpuid =3D 3 time =3D 1694485392 KDB: stack backtrace: db_trace_self() at db_trace_self db_trace_self_wrapper() at db_trace_self_wrapper+0x30 vpanic() at vpanic+0x19c panic() at panic+0x44 data_abort() at data_abort+0x35c handle_el1h_sync() at handle_el1h_sync+0x14 --- exception, esr 0x96000004 dump_sa() at dump_sa+0x1c dump_iface() at dump_iface+0x2bc dump_cb() at dump_cb+0x18 if_foreach_sleep() at if_foreach_sleep+0x254 rtnl_handle_getlink() at rtnl_handle_getlink+0xec rtnl_handle_message() at rtnl_handle_message+0x19c nl_taskqueue_handler() at nl_taskqueue_handler+0x5dc taskqueue_run_locked() at taskqueue_run_locked+0x17c taskqueue_thread_loop() at taskqueue_thread_loop+0xc8 fork_exit() at fork_exit+0x74 fork_trampoline() at fork_trampoline+0x14 Such is more useful at this point. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31BB2D7D-3A91-48AC-B29E-BDEA0CA59A73>