aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1994-02-27 23:45:18 +0000
committerStan Shebs <shebs@codesourcery.com>1994-02-27 23:45:18 +0000
commitfdfe2d146613e37c909be73c5ef87e3a96490daa (patch)
tree7b8871b771df1b7cf8d587abd443b3c1ae70dac7 /bfd
parent4c8d6c9f4f5ee90a766c6e711828d37f75efc3c7 (diff)
downloadgdb-fdfe2d146613e37c909be73c5ef87e3a96490daa.zip
gdb-fdfe2d146613e37c909be73c5ef87e3a96490daa.tar.gz
gdb-fdfe2d146613e37c909be73c5ef87e3a96490daa.tar.bz2
Sun Feb 27 15:22:36 1994 Stan Shebs (shebs@andros.cygnus.com)
* targets.c (BFD_SEND, BFD_SEND_FMT): Add debugging versions that check all the pointer dereferences. Enabled via DEBUG_BFD_SEND. * bfd-in2.h: Rebuilt.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/bfd-in2.h26
-rw-r--r--bfd/targets.c22
3 files changed, 50 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bb29d59..a2cfc52 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,9 @@
Sun Feb 27 15:22:36 1994 Stan Shebs (shebs@andros.cygnus.com)
+ * targets.c (BFD_SEND, BFD_SEND_FMT): Add debugging versions that
+ check all the pointer dereferences. Enabled via DEBUG_BFD_SEND.
+ * bfd-in2.h: Rebuilt.
+
* srec.c (hex_value): Always set to a size of 256 bytes.
(srec_init): Cosmetic changes.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 20ce0d5..294b0a9 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -756,6 +756,12 @@ typedef struct sec
discarded. */
#define SEC_DEBUGGING 0x10000
+ /* The contents of this section are held in memory pointed to
+ by the contents field. This is checked by
+ bfd_get_section_contents, and the data is retrieved from
+ memory if appropriate. */
+#define SEC_IN_MEMORY 0x20000
+
/* End of section flags. */
/* The virtual memory address of the section - where it will be
@@ -835,7 +841,9 @@ typedef struct sec
PTR userdata;
- struct lang_output_section *otheruserdata;
+ /* If the SEC_IN_MEMORY flag is set, this points to the actual
+ contents. */
+ unsigned char *contents;
/* Attached line number information */
@@ -1924,8 +1932,24 @@ core_file_matches_executable_p
#define BFD_SEND(bfd, message, arglist) \
((*((bfd)->xvec->message)) arglist)
+
+#ifdef DEBUG_BFD_SEND
+#undef BFD_SEND
+#define BFD_SEND(bfd, message, arglist) \
+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+ ((*((bfd)->xvec->message)) arglist) : \
+ (bfd_assert (__FILE__,__LINE__), NULL))
+#endif
#define BFD_SEND_FMT(bfd, message, arglist) \
(((bfd)->xvec->message[(int)((bfd)->format)]) arglist)
+
+#ifdef DEBUG_BFD_SEND
+#undef BFD_SEND_FMT
+#define BFD_SEND_FMT(bfd, message, arglist) \
+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+ (((bfd)->xvec->message[(int)((bfd)->format)]) arglist) : \
+ (bfd_assert (__FILE__,__LINE__), NULL))
+#endif
enum bfd_flavour {
bfd_target_unknown_flavour,
bfd_target_aout_flavour,
diff --git a/bfd/targets.c b/bfd/targets.c
index 841aebd..20d66bf 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -1,5 +1,5 @@
/* Generic target-file-type support for the BFD library.
- Copyright 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
+ Copyright 1990, 91, 92, 93, 1994 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -102,11 +102,27 @@ DESCRIPTION
.#define BFD_SEND(bfd, message, arglist) \
. ((*((bfd)->xvec->message)) arglist)
+.
+.#ifdef DEBUG_BFD_SEND
+.#undef BFD_SEND
+.#define BFD_SEND(bfd, message, arglist) \
+. (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+. ((*((bfd)->xvec->message)) arglist) : \
+. (bfd_assert (__FILE__,__LINE__), NULL))
+.#endif
For operations which index on the BFD format:
.#define BFD_SEND_FMT(bfd, message, arglist) \
. (((bfd)->xvec->message[(int)((bfd)->format)]) arglist)
+.
+.#ifdef DEBUG_BFD_SEND
+.#undef BFD_SEND_FMT
+.#define BFD_SEND_FMT(bfd, message, arglist) \
+. (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+. (((bfd)->xvec->message[(int)((bfd)->format)]) arglist) : \
+. (bfd_assert (__FILE__,__LINE__), NULL))
+.#endif
This is the structure which defines the type of BFD this is. The
<<xvec>> member of the struct <<bfd>> itself points here. Each
@@ -353,6 +369,7 @@ extern bfd_target bfd_elf32_little_generic_vec;
extern bfd_target bfd_elf32_littlemips_vec;
extern bfd_target bfd_elf32_m68k_vec;
extern bfd_target bfd_elf32_m88k_vec;
+extern bfd_target bfd_elf32_powerpc_vec;
extern bfd_target bfd_elf32_sparc_vec;
extern bfd_target bfd_elf64_big_generic_vec;
extern bfd_target bfd_elf64_little_generic_vec;
@@ -389,6 +406,9 @@ extern bfd_target newsos3_vec;
extern bfd_target nlm32_i386_vec;
extern bfd_target nlm32_sparc_vec;
extern bfd_target nlm32_alpha_vec;
+/*start-sanitize-powerpc-netware*/
+extern bfd_target nlm32_powerpc_vec;
+/*end-sanitize-powerpc-netware*/
extern bfd_target oasys_vec;
extern bfd_target rs6000coff_vec;
extern bfd_target shcoff_vec;