[RFA] Fix corefile-write support for Unixware
Michael Snyder
msnyder@cygnus.com
Mon Feb 11 18:19:00 GMT 2002
More information about the Binutils mailing list
Mon Feb 11 18:19:00 GMT 2002
- Previous message (by thread): [PATCH] Re: Symbol versioning in C++ (two ld bugs)
- Next message (by thread): [RFA] Fix corefile-write support for Unixware
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
This patch makes writing of corefiles work on Unixware, plus silences a few compiler warnings by adding prototype declarations. 2002-02-11 Michael Snyder <msnyder@redhat.com> * elf-bfd.h (elfcore_write_lwpstatus): Add prototype. * elf.c (elfcore_grok_pstatus): Add prototype. (elfcore_grok_lwpstatus): Add prototype. (elfcore_write_lwpstatus): New function. (elfcore_write_pstatus): Fix typo, eliminate unnecessary memcpy. Index: elf-bfd.h =================================================================== RCS file: /cvs/src/src/bfd/elf-bfd.h,v retrieving revision 1.66 diff -c -3 -p -r1.66 elf-bfd.h *** elf-bfd.h 2002/01/21 10:29:07 1.66 --- elf-bfd.h 2002/02/12 00:50:10 *************** extern char *elfcore_write_prfpreg *** 1531,1536 **** --- 1531,1538 ---- PARAMS ((bfd *, char *, int *, void *, int)); extern char *elfcore_write_prxfpreg PARAMS ((bfd *, char *, int *, void *, int)); + extern char *elfcore_write_lwpstatus + PARAMS ((bfd*, char*, int*, long, int, void*)); /* MIPS ELF specific routines. */ Index: elf.c =================================================================== RCS file: /cvs/src/src/bfd/elf.c,v retrieving revision 1.127 diff -c -3 -p -r1.127 elf.c *** elf.c 2002/01/30 10:31:28 1.127 --- elf.c 2002/02/12 00:50:10 *************** elfcore_grok_psinfo (abfd, note) *** 6148,6153 **** --- 6148,6155 ---- #endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */ #if defined (HAVE_PSTATUS_T) + static boolean elfcore_grok_pstatus PARAMS ((bfd *, Elf_Internal_Note *)); + static boolean elfcore_grok_pstatus (abfd, note) bfd *abfd; *************** elfcore_grok_pstatus (abfd, note) *** 6185,6190 **** --- 6187,6194 ---- #endif /* defined (HAVE_PSTATUS_T) */ #if defined (HAVE_LWPSTATUS_T) + static boolean elfcore_grok_lwpstatus PARAMS ((bfd *, Elf_Internal_Note *)); + static boolean elfcore_grok_lwpstatus (abfd, note) bfd *abfd; *************** elfcore_write_prstatus (abfd, buf, bufsi *** 6598,6603 **** --- 6602,6639 ---- } #endif /* HAVE_PRSTATUS_T */ + #if defined (HAVE_LWPSTATUS_T) + char * + elfcore_write_lwpstatus (abfd, buf, bufsiz, pid, cursig, gregs) + bfd *abfd; + char *buf; + int *bufsiz; + long pid; + int cursig; + void *gregs; + { + lwpstatus_t lwpstat; + char *note_name = "CORE"; + + memset (&lwpstat, 0, sizeof (lwpstat)); + lwpstat.pr_lwpid = pid >> 16; + lwpstat.pr_cursig = cursig; + #if defined (HAVE_LWPSTATUS_T_PR_REG) + memcpy (lwpstat.pr_reg, gregs, sizeof (lwpstat.pr_reg)); + #elif defined (HAVE_LWPSTATUS_T_PR_CONTEXT) + #if !defined(gregs) + memcpy (lwpstat.pr_context.uc_mcontext.gregs, + gregs, sizeof (lwpstat.pr_context.uc_mcontext.gregs)); + #else + memcpy (lwpstat.pr_context.uc_mcontext.__gregs, + gregs, sizeof (lwpstat.pr_context.uc_mcontext.__gregs)); + #endif + #endif + return elfcore_write_note (abfd, buf, bufsiz, note_name, + NT_LWPSTATUS, &lwpstat, sizeof (lwpstat)); + } + #endif /* HAVE_LWPSTATUS_T */ + #if defined (HAVE_PSTATUS_T) char * elfcore_write_pstatus (abfd, buf, bufsiz, pid, cursig, gregs) *************** elfcore_write_pstatus (abfd, buf, bufsiz *** 6611,6621 **** pstatus_t pstat; char *note_name = "CORE"; ! memset (&pstat, 0, sizeof (prstat)); ! pstat.pr_pid = pid; ! memcpy (pstat.pr_reg, gregs, sizeof (pstat.pr_reg)); ! return elfcore_write_note (abfd, buf, bufsiz, ! note_name, NT_PSTATUS, &pstat, sizeof (pstat)); } #endif /* HAVE_PSTATUS_T */ --- 6647,6657 ---- pstatus_t pstat; char *note_name = "CORE"; ! memset (&pstat, 0, sizeof (pstat)); ! pstat.pr_pid = pid & 0xffff; ! buf = elfcore_write_note (abfd, buf, bufsiz, note_name, ! NT_PSTATUS, &pstat, sizeof (pstat)); ! return buf; } #endif /* HAVE_PSTATUS_T */
- Previous message (by thread): [PATCH] Re: Symbol versioning in C++ (two ld bugs)
- Next message (by thread): [RFA] Fix corefile-write support for Unixware
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list