fbsd-tdep: Implement the vsyscall_range gdbarch hook.
authorJohn Baldwin <jhb@FreeBSD.org>
Wed, 2 Mar 2022 22:00:36 +0000 (14:00 -0800)
committerJohn Baldwin <jhb@FreeBSD.org>
Wed, 2 Mar 2022 22:00:36 +0000 (14:00 -0800)
commitc1dae0a6a0ab03a778221a0f88048395d1d0796c
treeed135c05d6463edb6a973f210ddd2e447eb1ad81
parentfb079cb5c419e03d400a0a139c3ccc4eedc33bef
fbsd-tdep: Implement the vsyscall_range gdbarch hook.

FreeBSD recently added a real vDSO in its shared page for the amd64
architecture.  The vDSO is mapped at the address given by the
AT_KPRELOAD ELF auxiliary vector entry.  To find the end of the
mapping range, parse the list of virtual map entries used by 'info
proc mappings' either from the NT_PROCSTAT_VMMAP core dump note, or
via the kinfo_getvmmap function for native targets (fetched from the
native target as the TARGET_OBJECT_FREEBSD_VMMAP object).

This silences warnings on recent FreeBSD/amd64 kernels due to not
finding symbols for the vdso:

warning: Could not load shared library symbols for [vdso].
Do you need "set solib-search-path" or "set sysroot"?
gdb/fbsd-tdep.c