Fix 32-bit thread debugging on x86_64
From: Daniel Jacobowitz (drow_at_false.org)
Date: 07/31/05
- Previous message: Jean Delvare: "[PATCH 2.6] (10/11) hwmon vs i2c, second round"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sun, 31 Jul 2005 16:05:58 -0400 To: Andi Kleen <ak@suse.de>
The IA32 ptrace emulation currently returns the wrong registers for
fs/gs; it's returning what x86_64 calls gs_base. We need regs.gsindex
in order for GDB to correctly locate the TLS area. Without this patch,
the 32-bit GDB testsuite bombs on a 64-bit kernel. With it, results
look about like I'd expect, although there are still a handful of
kernel-related failures (vsyscall related?).
Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
diff -r -p -u z/linux-2.6.11/arch/x86_64/ia32/ptrace32.c linux-2.6.11/arch/x86_64/ia32/ptrace32.c
--- linux-2.6.12.3.orig/arch/x86_64/ia32/ptrace32.c 2005-03-02 02:37:52.000000000 -0500
+++ linux-2.6.12.3/arch/x86_64/ia32/ptrace32.c 2005-07-31 15:29:48.000000000 -0400
@@ -43,11 +43,11 @@ static int putreg32(struct task_struct *
switch (regno) {
case offsetof(struct user32, regs.fs):
if (val && (val & 3) != 3) return -EIO;
- child->thread.fs = val & 0xffff;
+ child->thread.fsindex = val & 0xffff;
break;
case offsetof(struct user32, regs.gs):
if (val && (val & 3) != 3) return -EIO;
- child->thread.gs = val & 0xffff;
+ child->thread.gsindex = val & 0xffff;
break;
case offsetof(struct user32, regs.ds):
if (val && (val & 3) != 3) return -EIO;
@@ -138,10 +138,10 @@ static int getreg32(struct task_struct *
switch (regno) {
case offsetof(struct user32, regs.fs):
- *val = child->thread.fs;
+ *val = child->thread.fsindex;
break;
case offsetof(struct user32, regs.gs):
- *val = child->thread.gs;
+ *val = child->thread.gsindex;
break;
case offsetof(struct user32, regs.ds):
*val = child->thread.ds;
-- Daniel Jacobowitz CodeSourcery, LLC - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Previous message: Jean Delvare: "[PATCH 2.6] (10/11) hwmon vs i2c, second round"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|