aboutsummaryrefslogtreecommitdiff
path: root/gdb/parse.c
diff options
context:
space:
mode:
authorRon Unrau <runrau@cygnus>1998-07-17 15:29:11 +0000
committerRon Unrau <runrau@cygnus>1998-07-17 15:29:11 +0000
commit36297ff31d80a029ea0e27f8946f74354a881a62 (patch)
tree36787a2a58781eb64e3b36fa964c6477e97a01c2 /gdb/parse.c
parent4c4a5de54375655787f9e9851f6ba028572d140d (diff)
downloadfsf-binutils-gdb-36297ff31d80a029ea0e27f8946f74354a881a62.zip
fsf-binutils-gdb-36297ff31d80a029ea0e27f8946f74354a881a62.tar.gz
fsf-binutils-gdb-36297ff31d80a029ea0e27f8946f74354a881a62.tar.bz2
* blockframe.c (find_pc_sect_partial_function): allow for the possi-
bility of multiple symbols at the same address when finding high. * breakpoint.c (resolve_sal_pc): if the function based section lookup fails, try getting the section from the minimal symbol table. * parse.c (write_exp_msymbol): use symbol_overlayed_address to get the LMA of a minimal symbol if unmapped. * symtab.c (find_line_symtab): change interface to return symtab containing the best linetable found. (decode_line_1): use find_line_symtab to set val.symtab. This should improve support for source files with multiple symtabs. * tm-txvu.h: include tm-mips64.h instead of starting from scratch.
Diffstat (limited to 'gdb/parse.c')
-rw-r--r--gdb/parse.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gdb/parse.c b/gdb/parse.c
index edb374c..1cb6217 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -38,6 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "command.h"
#include "language.h"
#include "parser-defs.h"
+#include "symfile.h" /* for overlay functions */
/* Global variables declared in parser-defs.h (and commented there). */
struct expression *expout;
@@ -406,9 +407,16 @@ write_exp_msymbol (msymbol, text_symbol_type, data_symbol_type)
struct type *text_symbol_type;
struct type *data_symbol_type;
{
+ CORE_ADDR addr;
+
write_exp_elt_opcode (OP_LONG);
write_exp_elt_type (lookup_pointer_type (builtin_type_void));
- write_exp_elt_longcst ((LONGEST) SYMBOL_VALUE_ADDRESS (msymbol));
+
+ addr = SYMBOL_VALUE_ADDRESS (msymbol);
+ if (overlay_debugging)
+ addr = symbol_overlayed_address (addr, SYMBOL_BFD_SECTION (msymbol));
+ write_exp_elt_longcst ((LONGEST) addr);
+
write_exp_elt_opcode (OP_LONG);
write_exp_elt_opcode (UNOP_MEMVAL);