mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
BFD: Extract PID from MIPS core dump file
On MIPS o32, n32 and n64 platforms, PID information was not correctly propagated from core dump file to internal GDB structures. This patch fixes that behavior. A correct PID is needed by `libthread_db' library supplied with glibc repository revisions before commit c579f48edba8 ("Remove cached PID/TID in clone") or released versions before 2.25 for GDB to fetch value of TLS variable from core file. bfd/ChangeLog: * elf32-mips.c (elf32_mips_grok_psinfo): Extract core->pid. * elf64-mips.c (elf64_mips_grok_psinfo): Likewise. * elfn32-mips.c (elf32_mips_grok_psinfo): Likewise.
This commit is contained in:
parent
9031cb4af0
commit
c9ec0e8945
@ -1,3 +1,9 @@
|
||||
2017-11-08 Djordje Todorovic <djordje.todorovic@rt-rk.com>
|
||||
|
||||
* elf32-mips.c (elf32_mips_grok_psinfo): Extract core->pid.
|
||||
* elf64-mips.c (elf64_mips_grok_psinfo): Likewise.
|
||||
* elfn32-mips.c (elf32_mips_grok_psinfo): Likewise.
|
||||
|
||||
2017-11-08 Djordje Todorovic <djordje.todorovic@rt-rk.com>
|
||||
|
||||
* elf32-mips.c (elf32_mips_write_core_note): New function.
|
||||
|
@ -2353,6 +2353,8 @@ elf32_mips_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
|
||||
return FALSE;
|
||||
|
||||
case 128: /* Linux/MIPS elf_prpsinfo */
|
||||
elf_tdata (abfd)->core->pid
|
||||
= bfd_get_32 (abfd, note->descdata + 16);
|
||||
elf_tdata (abfd)->core->program
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + 32, 16);
|
||||
elf_tdata (abfd)->core->command
|
||||
|
@ -4228,6 +4228,8 @@ elf64_mips_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
|
||||
return FALSE;
|
||||
|
||||
case 136: /* Linux/MIPS - N64 kernel elf_prpsinfo */
|
||||
elf_tdata (abfd)->core->pid
|
||||
= bfd_get_32 (abfd, note->descdata + 24);
|
||||
elf_tdata (abfd)->core->program
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + 40, 16);
|
||||
elf_tdata (abfd)->core->command
|
||||
|
@ -3562,6 +3562,8 @@ elf32_mips_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
|
||||
return FALSE;
|
||||
|
||||
case 128: /* Linux/MIPS elf_prpsinfo */
|
||||
elf_tdata (abfd)->core->pid
|
||||
= bfd_get_32 (abfd, note->descdata + 16);
|
||||
elf_tdata (abfd)->core->program
|
||||
= _bfd_elfcore_strndup (abfd, note->descdata + 32, 16);
|
||||
elf_tdata (abfd)->core->command
|
||||
|
Loading…
Reference in New Issue
Block a user