From 403e1656010a87cdf0776294cea9f6856c81f00a Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Sat, 10 Apr 2004 09:49:21 +0000 Subject: [PATCH] * corelow.c (core_xfer_partial): Fix coding standards violation. Add support for TARGET_OBJECT_WCOOKIE. --- gdb/ChangeLog | 3 +++ gdb/corelow.c | 38 +++++++++++++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c75a7eda03d..e1b0432cd29 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2004-04-10 Mark Kettenis + * corelow.c (core_xfer_partial): Fix coding standards violation. + Add support for TARGET_OBJECT_WCOOKIE. + * sparc-linux-tdep.c (sparc32_linux_init_abi): Don't set deprecated_pc_in_sigtramp. * sparc-sol2-tdep.c (sparc32_sol2_init_abi): Likewise. diff --git a/gdb/corelow.c b/gdb/corelow.c index 403cfa31338..c0b782dfd22 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -552,9 +552,9 @@ core_xfer_partial (struct target_ops *ops, enum target_object object, size -= offset; if (size > len) size = len; - if (size > 0 && - ! bfd_get_section_contents (core_bfd, section, readbuf, - (file_ptr) offset, size)) + if (size > 0 + && !bfd_get_section_contents (core_bfd, section, readbuf, + (file_ptr) offset, size)) { warning ("Couldn't read NT_AUXV note in core file."); return -1; @@ -564,6 +564,38 @@ core_xfer_partial (struct target_ops *ops, enum target_object object, } return -1; + case TARGET_OBJECT_WCOOKIE: + if (readbuf) + { + /* When the StackGhost cookie is stored in core file, BFD + represents this with a fake section called ".wcookie". */ + + struct bfd_section *section; + bfd_size_type size; + char *contents; + + section = bfd_get_section_by_name (core_bfd, ".wcookie"); + if (section == NULL) + return -1; + + size = bfd_section_size (core_bfd, section); + if (offset >= size) + return 0; + size -= offset; + if (size > len) + size = len; + if (size > 0 + && !bfd_get_section_contents (core_bfd, section, readbuf, + (file_ptr) offset, size)) + { + warning ("Couldn't read StackGhost cookie in core file."); + return -1; + } + + return size; + } + return -1; + default: if (ops->beneath != NULL) return ops->beneath->to_xfer_partial (ops->beneath, object, annex, -- 2.30.2