svn commit: r290413 - in stable: 10/gnu/usr.bin/gdb/kgdb 9/gnu/usr.bin/gdb/kgdb
John Baldwin
jhb at FreeBSD.org
Thu Nov 5 21:22:25 UTC 2015
Author: jhb
Date: Thu Nov 5 21:22:23 2015
New Revision: 290413
URL: https://svnweb.freebsd.org/changeset/base/290413
Log:
MFC 288371:
When XSAVE support was added on amd64, the FPU save area was moved
out of 'struct pcb' and into a variable-sized region after the
structure. The kgdb code currently only reads the pcb. It does not
read in the FPU save area but instead passes stack garbage as the
FPU's saved context. Fixing this would mean determining the proper
size of the area and fetching it. However, this state is not saved
for running CPUs in stoppcbs[], so the callback would also have to
know to ignore those pcbs. Instead, just remove the call since it is
of limited usefulness. It results in kgdb reporting the state of the
FPU/SIMD registers in userland, not their current values in the kernel.
In particular, it does not report the correct state for any code in
the kernel which does use the FPU and would report incorrect values
in that case.
Modified:
stable/9/gnu/usr.bin/gdb/kgdb/trgt_amd64.c
Directory Properties:
stable/9/gnu/usr.bin/gdb/kgdb/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/10/gnu/usr.bin/gdb/kgdb/trgt_amd64.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/9/gnu/usr.bin/gdb/kgdb/trgt_amd64.c
==============================================================================
--- stable/9/gnu/usr.bin/gdb/kgdb/trgt_amd64.c Thu Nov 5 20:24:56 2015 (r290412)
+++ stable/9/gnu/usr.bin/gdb/kgdb/trgt_amd64.c Thu Nov 5 21:22:23 2015 (r290413)
@@ -66,7 +66,6 @@ kgdb_trgt_fetch_registers(int regno __un
supply_register(AMD64_R8_REGNUM + 6, (char *)&pcb.pcb_r14);
supply_register(AMD64_R15_REGNUM, (char *)&pcb.pcb_r15);
supply_register(AMD64_RIP_REGNUM, (char *)&pcb.pcb_rip);
- amd64_supply_fxsave(current_regcache, -1, (struct fpusave *)(&pcb + 1));
}
void
More information about the svn-src-stable-9
mailing list