mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-14 03:15:06 +08:00
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:
@ -351,6 +351,15 @@ make_blockvector (objfile)
|
||||
if (BLOCK_START(BLOCKVECTOR_BLOCK (blockvector, i-1))
|
||||
> BLOCK_START(BLOCKVECTOR_BLOCK (blockvector, i)))
|
||||
{
|
||||
|
||||
/* FIXME-32x64: loses if CORE_ADDR doesn't fit in a
|
||||
long. Possible solutions include a version of
|
||||
complain which takes a callback, a
|
||||
sprintf_address_numeric to match
|
||||
print_address_numeric, or a way to set up a GDB_FILE
|
||||
* which causes sprintf rather than fprintf to be
|
||||
called. */
|
||||
|
||||
complain (&blockvector_complaint,
|
||||
(unsigned long) BLOCK_START(BLOCKVECTOR_BLOCK (blockvector, i)));
|
||||
}
|
||||
|
Reference in New Issue
Block a user