svn commit: r460368 - in branches/2018Q1/devel/gdb: . files/kgdb
John Baldwin
jhb at FreeBSD.org
Tue Jan 30 01:18:08 UTC 2018
Author: jhb (src,doc committer)
Date: Tue Jan 30 01:18:07 2018
New Revision: 460368
URL: https://svnweb.freebsd.org/changeset/ports/460368
Log:
MFH: r460050
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)
Differential Revision: https://reviews.freebsd.org/D13977
Approved by: ports-secteam (swills)
Modified:
branches/2018Q1/devel/gdb/Makefile
branches/2018Q1/devel/gdb/files/kgdb/aarch64-fbsd-kern.c
branches/2018Q1/devel/gdb/files/kgdb/amd64fbsd-kern.c
branches/2018Q1/devel/gdb/files/kgdb/fbsd-kld.c
Directory Properties:
branches/2018Q1/ (props changed)
Modified: branches/2018Q1/devel/gdb/Makefile
==============================================================================
--- branches/2018Q1/devel/gdb/Makefile Tue Jan 30 01:16:41 2018 (r460367)
+++ branches/2018Q1/devel/gdb/Makefile Tue Jan 30 01:18:07 2018 (r460368)
@@ -3,7 +3,7 @@
PORTNAME= gdb
PORTVERSION= 8.0.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
MASTER_SITES= GNU
Modified: branches/2018Q1/devel/gdb/files/kgdb/aarch64-fbsd-kern.c
==============================================================================
--- branches/2018Q1/devel/gdb/files/kgdb/aarch64-fbsd-kern.c Tue Jan 30 01:16:41 2018 (r460367)
+++ branches/2018Q1/devel/gdb/files/kgdb/aarch64-fbsd-kern.c Tue Jan 30 01:18:07 2018 (r460368)
@@ -45,9 +45,9 @@
static const struct regcache_map_entry aarch64_fbsd_pcbmap[] =
{
{ 30, AARCH64_X0_REGNUM, 8 }, /* x0 ... x29 */
- { 1, AARCH64_LR_REGNUM, 8 },
- { 1, AARCH64_SP_REGNUM, 8 },
{ 1, AARCH64_PC_REGNUM, 8 },
+ { 1, REGCACHE_MAP_SKIP, 8 },
+ { 1, AARCH64_SP_REGNUM, 8 },
{ 0 }
};
@@ -100,7 +100,7 @@ aarch64_fbsd_trapframe_cache (struct frame_info *this_
trad_frame_set_reg_addr (cache, AARCH64_PC_REGNUM, sp + 16);
trad_frame_set_reg_addr (cache, AARCH64_CPSR_REGNUM, sp + 24);
for (i = 0; i < 30; i++)
- trad_frame_set_reg_addr (cache, AARCH64_X0_REGNUM + 1, sp + 32 + i * 8);
+ trad_frame_set_reg_addr (cache, AARCH64_X0_REGNUM + i, sp + 32 + i * 8);
/* Read $PC from trap frame. */
pc = read_memory_unsigned_integer (sp + 16, 8, byte_order);
@@ -149,9 +149,9 @@ aarch64_fbsd_trapframe_sniffer (const struct frame_unw
find_pc_partial_function (get_frame_func (this_frame), &name, NULL, NULL);
return (name && ((strcmp (name, "handle_el1h_sync") == 0)
|| (strcmp (name, "handle_el1h_irq") == 0)
- || (strcmp (name, "handle_el0h_sync") == 0)
- || (strcmp (name, "handle_el0h_irq") == 0)
- || (strcmp (name, "handle_el0h_error") == 0)
+ || (strcmp (name, "handle_el0_sync") == 0)
+ || (strcmp (name, "handle_el0_irq") == 0)
+ || (strcmp (name, "handle_el0_error") == 0)
|| (strcmp (name, "fork_trampoline") == 0)));
}
Modified: branches/2018Q1/devel/gdb/files/kgdb/amd64fbsd-kern.c
==============================================================================
--- branches/2018Q1/devel/gdb/files/kgdb/amd64fbsd-kern.c Tue Jan 30 01:16:41 2018 (r460367)
+++ branches/2018Q1/devel/gdb/files/kgdb/amd64fbsd-kern.c Tue Jan 30 01:18:07 2018 (r460368)
@@ -205,6 +205,7 @@ amd64fbsd_trapframe_sniffer (const struct frame_unwind
find_pc_partial_function (get_frame_func (this_frame), &name, NULL, NULL);
return (name && ((strcmp (name, "calltrap") == 0)
|| (strcmp (name, "fork_trampoline") == 0)
+ || (strcmp (name, "mchk_calltrap") == 0)
|| (strcmp (name, "nmi_calltrap") == 0)
|| (name[0] == 'X' && name[1] != '_')));
}
Modified: branches/2018Q1/devel/gdb/files/kgdb/fbsd-kld.c
==============================================================================
--- branches/2018Q1/devel/gdb/files/kgdb/fbsd-kld.c Tue Jan 30 01:16:41 2018 (r460367)
+++ branches/2018Q1/devel/gdb/files/kgdb/fbsd-kld.c Tue Jan 30 01:18:07 2018 (r460368)
@@ -27,8 +27,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/param.h>
-#include <sys/stat.h>
#include <fcntl.h>
#include <libgen.h>
More information about the svn-ports-all
mailing list