non port: devel/gdb/files/kgdb/aarch64-fbsd-kern.c |
Number of commits found: 13 |
Thursday, 18 Jan 2024
|
22:18 John Baldwin (jhb)
devel/gdb: Upgrade to 14.1
- Notable upstream fixes for FreeBSD include better support for
multiprocessing as well as support for AVX and other extended
registers in core dumps on newer AMD CPUs.
- Use all-gdb as the build target to reduce build time.
- sim can no longer be excluded during the tarball as a couple of
source files in GDB now use headers from sim/ unconditionally.
Instead, use --disable-sim to skip building the simulators.
Reviewed by: pizzamig
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D43053
af0d94a |
Wednesday, 13 Sep 2023
|
15:34 Kyle Evans (kevans)
devel/gdb: kgdb: fix aarch64 trapframe handling
regcache_map_entry_size() doesn't do the magic to convert size == 0 to
register_size, so we must supply sizes for all registers if we're going
to use it.
This fixes handling of the trapframe so that we can actually unwind
properly, where-as before we would end up with, e.g.,
#6 0xffff0000004b4860 in kdb_trap (type=60, code=0, tf=<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>
Reported by: Mark Millard
Approved by: jhb (implicit, kgdb maintainer)
MFH: 2023Q3
a22f1db |
Tuesday, 5 Sep 2023
|
18:23 Kyle Evans (kevans)
devel/gdb: kgdb: fixup aarch64 pcb/trapframe layout
base 1c1f31a5e5 and 2ecbbcc7cab altered the pcb and trapframe layouts in
osreldate 1400084. This version of the patch is effectively extracted
from work done by @jhb in CheriBSD's gdb fork, then ported forward to
work with the gdb 13.x program_space_data equivalent. With
this + D39951, I can again get a solid backtrace in recent main.
While we're here, remove some special handling for kthreads not yet run,
as the stack pointer is in-fact stored in pcb_sp in cpu_copy_thread and
cpu_fork. This silences the following exception:
Python Exception <class 'gdb.error'>: Register 2 is not available
but there's not really any effect on the end result, since the thread
hasn't been scheduled yet.
Reviewed by: jhb
Approved by: jhb (maintainer)
MFH: 2023Q3
Differential Revision: https://reviews.freebsd.org/D41684
5dd228e |
Friday, 17 Mar 2023
|
23:47 John Baldwin (jhb)
devel/gdb: Upgrade to 13.1.
Reviewed by: pizzamig (maintainer)
Differential Revision: https://reviews.freebsd.org/D38759
27ee37a |
Tuesday, 10 May 2022
|
17:41 John Baldwin (jhb)
devel/gdb: Update to 12.1.
One notable feature included in 12.1 is async target support
permitting the use of commands like continue&.
In addition, this commit backports various post-12 commits to add
support for hardware breakpoints/watchpoints on aarch64, support for
resolving TLS variables from core dumps on amd64 and i386 via the
recently added NT_X86_SEGBASES core dump note, and support for
resolving TLS variables on arm and aarch64 via the recently added
NT_ARM_TLS register set.
Reviewed by: pizzamig
Differential Revision: https://reviews.freebsd.org/D35111
1c25ded |
Monday, 6 Dec 2021
|
21:38 John Baldwin (jhb)
devel/gdb: Fix kernel backend registrations.
Per-architecture kernel backends are registered via GDB initialization
routines. The GDB build uses a regular expression to identify the
initialization routines invoked during startup. This regular
expression requires a single space between the function name and it's
empty argument list. However, the initializers for aarch64, arm,
mips, and riscv had two spaces before the empty argument list causing
those backends to not be registered and the corresponding architecture
kernels to not be recognized. Fix by removing the spurious spaces.
Reported by: kevans
Reviewed by: pizzamig (maintainer)
Differential Revision: https://reviews.freebsd.org/D33255
2762292 |
Monday, 20 Sep 2021
|
20:46 John Baldwin (jhb)
devel/gdb: Update to 11.1.
This also pulls in some updates to libcxx-gdbpy to add pretty printers
for std::deque<>, std::stack<>, and std::unordered_map<>
Reviewed by: pizzamig (maintainer)
Differential Revision: https://reviews.freebsd.org/D32000
242d369 |
Tuesday, 6 Apr 2021
|
14:31 Mathieu Arnold (mat)
all: Remove all other $FreeBSD keywords.
135fdee |
Monday, 9 Mar 2020
|
20:58 jhb
Update to GDB 9.1.
GDB 9 rejects attempts to build in the source tree, so this uses
CONFIGURE_OUTSOURCE.
Some patch files were renamed to track moving of files in upstream.
Approved by: pizzamig (maintainer)
Differential Revision: https://reviews.freebsd.org/D23932
|
Saturday, 1 Jun 2019
|
00:44 jhb
Update port to GDB 8.3.
New features in GDB 8.3 include support for DWARF index caches and
styling (colors) in the CLI and TUI. Source code styling is also
available via the new SOURCE_HIGHLIGHT option (enabled by default).
GDB 8.3 also adds support for FreeBSD/riscv64.
In addition, kgdb has been updated for changes in 8.3 along with
support for FreeBSD/riscv64 kernels.
The libc++ helpers have been updated to a newer version which adds
support for std::list<> and std::forward_list<>. The helpers now
also support Python 3.
Finally, a few post-8.3 patches have been backported which add suport
for TLS (Thread Local Storage) variables on FreeBSD amd64, i386,
powerpc, and riscv architectures. Note that amd64 and i386 do not
support examining TLS variables in core dumps currently. This support
along with support for additional architectures require kernel changes
and will be added in the future once the kernel has been updated.
Reviewed by: pizzamig (maintainer)
Differential Revision: https://reviews.freebsd.org/D20403
|
Wednesday, 25 Jul 2018
|
17:28 jhb
Fixes for kgdb including initial FreeBSD/arm support.
- Improve fallback handling for the read of pcb_size.
If for some reason kgdb has only the kernel's debug info, a read of
pcb_size will simply return 0, resulting in an exception when unwinding
the stack of a thread that was on a CPU at the time the dump was
created. In this case, fall back to using sizeof(struct pcb).
- Always supply a value for the PC register on x86.
A thread's PCB may have been swapped out, and a dummy value ensures that
we don't get an exception while enumerating threads in a dump.
- Mark all 64-bit address bits as valid for aarch64 kernels.
ARMv8 supports pointer tagging in which case the upper 8 bits of VAs are
ignored, but FreeBSD kernels are linked such that they depend on those
upper 8 bits being set to 1. GDB was stripping those bits by default
causing KVAs to be mapped to invalid addresses.
- Rework kgdb -w support to only open /dev/mem writable.
Don't depend on the gdb global 'write_files' option which tries to
rewrite the kernel binary on close which can crash. Instead, add an
optional '-w' flag to 'target vmcore' which opens the vmcore with
O_RDWR instead of O_RDONLY. Change the kgdb '-w' option to set this
flag in the nested 'target vmcore' command rather than passing the
global '-w' option to gdb.
- Garbage collect old code for reading dumptid.
- First cut at FreeBSD/arm kernel support.
Tested on live kernel on my RPi, but not against a crashdump, and only
trapframes from userland, not a nested trap.
Submitted by: markj (1, 2)
Approved by: kan
Differential Revision: https://reviews.freebsd.org/D16013
|
Friday, 26 Jan 2018
|
19:57 jhb
KGDB fixes for amd64 and aarch64.
- Update the amd64 kernel support to recognize mchk_calltrap as a
trapframe generator.
- Remove some unneeded headers from fbsd-kld.c.
- Various fixes to get stack traces working for aarch64 kernels:
- Map the LR register from the PCB to PC instead of LR.
- Skip the PC register from the PCB as it isn't initialized to anything.
- Correct the register cache map for the PCB. The old one had the
offsets of pcb_sp and pcb_pc reversed.
- Don't map all of the saved general purpose registers in a
trapframe to X1 rather than X0 .. X29.
- Use correct name for el0 trapframe entry points.
Reviewed by: pizzamig (maintainer)
MFH: 2018Q1
Differential Revision: https://reviews.freebsd.org/D13977
|
Wednesday, 23 Aug 2017
|
16:07 jhb
Add aarch64 support to GDB.
This includes support for cross-debugging aarch64 process cores and
kernels as well as native support for aarch64 processes. Hardware
single stepping is supported, but hardware watchpoints are not yet
supported.
Reviewed by: luca.pizzamiglio@gmail.com (maintainer)
Approved by: az (implicit)
Differential Revision: https://reviews.freebsd.org/D12074
|
Number of commits found: 13 |