Commit bb61682b authored by Roland McGrath's avatar Roland McGrath Committed by Ingo Molnar

x86: x86 core dump TLS

This makes ELF core dumps of 32-bit processes include a new
note type NT_386_TLS (0x200) giving the contents of the TLS
slots in struct user_desc format.  This lets post mortem
examination figure out what the segment registers mean like
the debugger does with get_thread_area on a live process.
Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent a06b24e8
...@@ -1313,6 +1313,7 @@ static const struct user_regset x86_32_regsets[] = { ...@@ -1313,6 +1313,7 @@ static const struct user_regset x86_32_regsets[] = {
.active = xfpregs_active, .get = xfpregs_get, .set = xfpregs_set .active = xfpregs_active, .get = xfpregs_get, .set = xfpregs_set
}, },
[REGSET_TLS] = { [REGSET_TLS] = {
.core_note_type = NT_386_TLS,
.n = GDT_ENTRY_TLS_ENTRIES, .bias = GDT_ENTRY_TLS_MIN, .n = GDT_ENTRY_TLS_ENTRIES, .bias = GDT_ENTRY_TLS_MIN,
.size = sizeof(struct user_desc), .size = sizeof(struct user_desc),
.align = sizeof(struct user_desc), .align = sizeof(struct user_desc),
......
...@@ -355,6 +355,7 @@ typedef struct elf64_shdr { ...@@ -355,6 +355,7 @@ typedef struct elf64_shdr {
#define NT_AUXV 6 #define NT_AUXV 6
#define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */ #define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */
#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
/* Note header in a PT_NOTE section */ /* Note header in a PT_NOTE section */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment