diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-27 01:12:06 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-27 01:12:06 +0000 |
commit | 5e678752031189556550c3faa3e27be9c628659a (patch) | |
tree | 7b5fd0988b1ca68b87ad0802ae46a758f074d861 /gdb | |
parent | 833e0d94ccb34e8ac566a574fd5a75fb967434a5 (diff) | |
download | gdb-5e678752031189556550c3faa3e27be9c628659a.zip gdb-5e678752031189556550c3faa3e27be9c628659a.tar.gz gdb-5e678752031189556550c3faa3e27be9c628659a.tar.bz2 |
Fix many sins which will come up in 32 bit x 64 bit GDB, and
various miscellaneous things discovered in the process:
* printcmd.c, defs.h (print_address_numeric): New function.
* c-valprint.c (c_val_print), ch-valprint.c (chill_val_print)
breakpoint.c (describe_other_breakpoints, breakpoint_1, mention),
cp-valprint.c (cplus_print_value), infcmd.c (jump_command),
printcmd.c, stack.c, symfile.c, symmisc.c, valprint.c:
Use it.
* utils.c, defs.h (gdb_print_address): New function.
* expprint (dump_expression), gdbtypes.h: Use it.
* breakpoint.c (describe_other_breakpoints),
symmisc.c (dump_symtab, print_symbol):
Use filtered not unfiltered I/O.
(remove_breakpoints): Remove BREAKPOINT_DEBUG code. Might as well
just run gdb under a debugger for this (and it had problems with
printing addresses, how to print b->shadow, etc.).
* buildsym.c (make_blockvector), core.c (memory_error),
exec.c (print_section_info), maint.c (print_section_table),
mdebugread.c (parse_procedure), solib.c, source.c, symfile.c,
symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c:
Add comments saying code is broken. Marked with "FIXME-32x64".
* dbxread.c (process_one_symbol), partial-stab.h (default),
remote-vx.c (vx_run_files_info):
Don't cast int being passed to local_hex_string.
* symmisc.c (print_symbol): Don't cast long being passed to %lx.
* symtab.h (general_symbol_info): Add comment about SYMBOL_VALUE
only being a long.
* symmisc.c (print_symbol): Print "offset" in message for LOC_ARG
and LOC_LOCAL.
* printcmd.c (print_address): Remove #if 0 code with ADDR_BITS_REMOVE.
* source.c: Include <sys/types.h> regardless of USG.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/cp-valprint.c | 4 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 15 | ||||
-rw-r--r-- | gdb/stack.c | 5 | ||||
-rw-r--r-- | gdb/symmisc.c | 6 |
4 files changed, 16 insertions, 14 deletions
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index 2617d79..07ba9fb 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -353,6 +353,8 @@ cplus_print_value (type, valaddr, stream, format, recurse, pretty, dont_print) for (i = 0; i < n_baseclasses; i++) { + /* FIXME-32x64--assumes that a target pointer can fit in a char *. + Fix it by nuking baseclass_addr. */ char *baddr; int err; char *basename; @@ -394,7 +396,7 @@ cplus_print_value (type, valaddr, stream, format, recurse, pretty, dont_print) if (err != 0) { fprintf_filtered (stream, "<invalid address "); - print_address_numeric (baddr, stream); + print_address_numeric ((CORE_ADDR) baddr, stream); fprintf_filtered (stream, ">"); } else diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 7795c13..12caa7a 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -1224,7 +1224,8 @@ dump_fn_fieldlists (type, spaces) printfi_filtered (spaces + 4, "[%d] physname '%s' (", overload_idx, TYPE_FN_FIELD_PHYSNAME (f, overload_idx)); - gdb_print_address (TYPE_FN_FIELD_PHYSNAME (f, overload_idx)); + gdb_print_address (TYPE_FN_FIELD_PHYSNAME (f, overload_idx), + gdb_stdout); printf_filtered (")\n"); printfi_filtered (spaces + 8, "type "); gdb_print_address (TYPE_FN_FIELD_TYPE (f, overload_idx), gdb_stdout); @@ -1427,12 +1428,12 @@ recursive_dump_type (type, spaces) } puts_filtered ("\n"); printfi_filtered (spaces, "nfields %d ", TYPE_NFIELDS (type)); - gdb_print_address (TYPE_FIELDS (type)); + gdb_print_address (TYPE_FIELDS (type), gdb_stdout); puts_filtered ("\n"); for (idx = 0; idx < TYPE_NFIELDS (type); idx++) { printfi_filtered (spaces + 2, - "[%d] bitpos %d bitsize %d type " + "[%d] bitpos %d bitsize %d type ", idx, TYPE_FIELD_BITPOS (type, idx), TYPE_FIELD_BITSIZE (type, idx)); gdb_print_address (TYPE_FIELD_TYPE (type, idx), gdb_stdout); @@ -1440,7 +1441,7 @@ recursive_dump_type (type, spaces) TYPE_FIELD_NAME (type, idx) != NULL ? TYPE_FIELD_NAME (type, idx) : "<NULL>"); - gdb_print_address (TYPE_FIELD_NAME (type, idx)); + gdb_print_address (TYPE_FIELD_NAME (type, idx), gdb_stdout); printf_filtered (")\n"); if (TYPE_FIELD_TYPE (type, idx) != NULL) { @@ -1460,14 +1461,14 @@ recursive_dump_type (type, spaces) case TYPE_CODE_METHOD: case TYPE_CODE_FUNC: printfi_filtered (spaces, "arg_types "); - gdb_print_address (TYPE_ARG_TYPES (type)); + gdb_print_address (TYPE_ARG_TYPES (type), gdb_stdout); puts_filtered ("\n"); print_arg_types (TYPE_ARG_TYPES (type), spaces); break; case TYPE_CODE_STRUCT: printfi_filtered (spaces, "cplus_stuff "); - gdb_print_address (TYPE_CPLUS_SPECIFIC (type)); + gdb_print_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout); puts_filtered ("\n"); print_cplus_stuff (type, spaces); break; @@ -1477,7 +1478,7 @@ recursive_dump_type (type, spaces) the value. Pick cplus_struct_type, even though we know it isn't any particular one. */ printfi_filtered (spaces, "type_specific "); - gdb_print_address (TYPE_CPLUS_SPECIFIC (type)); + gdb_print_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout); if (TYPE_CPLUS_SPECIFIC (type) != NULL) { printf_filtered (" (unknown data form)"); diff --git a/gdb/stack.c b/gdb/stack.c index 4d4a004..f85fa1a 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -287,7 +287,7 @@ print_frame_info (fi, level, source, args) if (addressprint) if (fi->pc != sal.pc || !sal.symtab) { - print_address_numeric (fi->pc); + print_address_numeric (fi->pc, gdb_stdout); printf_filtered (" in "); } fprintf_symbol_filtered (gdb_stdout, funname ? funname : "??", funlang, @@ -497,8 +497,7 @@ frame_info (addr_exp, from_tty) if (!addr_exp && selected_frame_level >= 0) { - printf_filtered ("Stack level %d, frame at " - selected_frame_level); + printf_filtered ("Stack level %d, frame at ", selected_frame_level); print_address_numeric (FRAME_FP(frame), gdb_stdout); printf_filtered (":\n"); } diff --git a/gdb/symmisc.c b/gdb/symmisc.c index bfc8dc5..daca178 100644 --- a/gdb/symmisc.c +++ b/gdb/symmisc.c @@ -175,7 +175,7 @@ dump_objfile (objfile) { printf_filtered ("%s at ", psymtab -> filename); - gdb_print_address (psymtab); + gdb_print_address (psymtab, gdb_stdout); printf_filtered (", "); if (psymtab -> objfile != objfile) { @@ -194,7 +194,7 @@ dump_objfile (objfile) symtab = symtab->next) { printf_filtered ("%s at ", symtab -> filename); - gdb_print_address (symtab); + gdb_print_address (symtab, gdb_stdout); printf_filtered (", "); if (symtab -> objfile != objfile) { @@ -403,7 +403,7 @@ dump_symtab (objfile, symtab, outfile) } if (BLOCK_GCC_COMPILED(b)) fprintf_filtered (outfile, " gcc%d compiled", BLOCK_GCC_COMPILED(b)); - fputc_filtered ('\n', outfile); + fprintf_filtered ('\n', outfile); blen = BLOCK_NSYMS (b); for (j = 0; j < blen; j++) { |