csky: bugfix gdb coredump error.
authorGuo Ren <ren_guo@c-sky.com>
Sun, 30 Dec 2018 17:06:53 +0000 (01:06 +0800)
committerGuo Ren <ren_guo@c-sky.com>
Mon, 31 Dec 2018 02:59:19 +0000 (10:59 +0800)
In gdb/bfd elf32-csky.c, csky_elf_grok_prstatus() use fixed size of
elf_prstatus. It's 148 for abiv1 and 220 for abiv2, the size is enough
for coredump and no need full sizeof(struct pt_regs).

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
Reported-by: Lu Baoquan <lu.baoquan@intellif.com>
Reported-by: Liu Mao <liu.mao@intellif.com>
arch/csky/include/asm/elf.h

index 48b5366568abbc63fa9188766775d61bc0363448..d6dbc00e353331f441245125307430828c1eaf88 100644 (file)
@@ -31,7 +31,12 @@ typedef unsigned long elf_greg_t;
 
 typedef struct user_fp elf_fpregset_t;
 
-#define ELF_NGREG (sizeof(struct pt_regs) / sizeof(elf_greg_t))
+/*
+ * In gdb/bfd elf32-csky.c, csky_elf_grok_prstatus() use fixed size of
+ * elf_prstatus. It's 148 for abiv1 and 220 for abiv2, the size is enough
+ * for coredump and no need full sizeof(struct pt_regs).
+ */
+#define ELF_NGREG ((sizeof(struct pt_regs) / sizeof(elf_greg_t)) - 2)
 
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];