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.
This commit is contained in:
Jim Kingdon 1994-01-27 01:12:06 +00:00
parent 833e0d94cc
commit 5e67875203
4 changed files with 16 additions and 14 deletions

View File

@ -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

View File

@ -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)");

View File

@ -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");
}

View File

@ -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++)
{