enabling I/O interrupts for SVR4 (streams).
* (start_saving_output save_output get_saved_output
finish_saving_output flush_holdbuf gdbtk_flush gdbtk_fputs
gdbtk_init):
Totally revamp to use TCLs dynamic string functions. Also, quote
all data passed back to TCL to prevent errors with unmatched
braces, odd characters, etc... This fixes several wierd problems
with outputting strings containing unmatched braces.
* (breakpoint_notify gdb_loc): Use long hex format to output
addresses of breakpoints and PCs. This fixes some Alpha problems.
* (breakpoint_notify): Add stream arg to call to gdbtk_fputs.
* (gdb_listfiles): Also, go through the symtabs when looking for
files. This makes xcoff work (sort of), but probably breaks
something else.
* (gdb_stop): Return TCL_OK instead of nothing. This fixes odd
TCL errors when hitting stop button.
* (tk_command): Don't pass interp->result on to Tcl_{Var}Eval, as
that will trash the result. strdup the result instead and pass
that on. Improve error handling as well.
* gdbtk.tcl (gdbtk_tcl_flush): Use global def of
current_output_win. Makes flushing actually work!
* (asm_win_name create_asm_win update_assembly): Bunch of fixes
to make assembly windows stop flashing when loading a new file.
* (gdbtk_tcl_busy gdbtk_tcl_idle): Use catch to prevent gdb_cmd
errors from losing control.
* (create_source_window): Add source file selection to View menu.
* (create_command_window (<Key-Return> binding): Quote text fed
into gdb_cmd to prevent eval errors.
* sparc-tdep.c (sparc_init_extra_frame_info): Set it.
(examine_prologue, sparc_init_extra_frame_info): Use ->frame plus
->sp_offset to compute the address something is saved at, not
->bottom.
* sparc-tdep.c (get_saved_register): New function.
* tm-sparc.h: Define GET_SAVED_REGISTER; don't define
FRAME_FIND_SAVED_REGS, HAVE_REGISTER_WINDOWS or REGISTER_IN_WINDOW_P.
* stack.c (frame_info): Add comment about what to do if
FRAME_FIND_SAVED_REGS is not defined.
* sparc-tdep.c (sparc_init_extra_frame_info): Set ->frame field
here. Get it right for flat frames.
* sparc-tdep.c (sparc_frame_chain): Instead of returning
meaningful value for ->frame field, just return dummy value.
This change is needed because the old code didn't deal with mixed
flat and non-flat frames.
* sparc-tdep.c (sparc_pop_frame): Write SP_REGNUM from
frame->frame, don't go through saved regs for this.
* sparc-tdep.c: Move guts of skip_prologue to new function
examine_prologue. Check for flat prologue and set is_flat.
Provide the caller with the information about what is saved where
if desired.
(skip_prologue, sparc_frame_find_saved_regs): Call examine_prologue.
* sparc-tdep.c: Replace union sparc_insn_layout and anonymous
union in isannulled, which won't work on a little-endian host,
with X_* macros.
* sparc-tdep.c (sparc_frame_saved_pc): If addr == 0, the saved PC
is still in %o7.
* config/sparc/tm-sparc.h: Define INIT_FRAME_PC and
INIT_FRAME_PC_FIRST.
* blockframe.c (get_prev_frame_info): Modify comments regarding
INIT_FRAME_PC_FIRST and the sparc.
* sparc-tdep.c (single_step): Use 4 not sizeof (long) for size of
instruction.
the return type of methods to avoid infinite loops with anonymous
types.
* valops.c (search_struct_field): Handle anonymous unions.
* sparc-tdep.c (sunos4_skip_trampoline_code): New function
to correctly handle steps into -g compiled PIC objects in the
main executable.
* config/sparc/tm-sun4os4.h (SKIP_TRAMPOLINE_CODE):
Redefine to use sunos4_skip_trampoline_code.
* dwarfread.c (DWARF_REG_TO_REGNUM): Provide a default mapping
from DWARF to GDB register numbering.
* dwarfread.c (locval): Use DWARF_REG_TO_REGNUM to map the
register value.
* config/mips/tm-mipsv4.h (DWARF_REG_TO_REGNUM): Define.
(QUIT): Call PROGRESS.
* main.c (main): Call START_PROGRESS and END_PROGRESS, break
usage message into shorter strings.
* source.c: Change long command help strings into concats of
shorter ones, for picky ANSI compilers.
(ChangeLog.mpw)
* main.c, source.c: Remove hacks that replace long strings
with shorter ones, now solved portably.
to fputs_unfiltered_hook. Differentiate stdout from stderr when
passing text into tcl land.
* defs.h, top.c, utils.c (error): Add error_hook.
* gdbtk.c: Improve mechanism for capturing output values.
* (full_filename): Remove.
* (gdb_cmd call_wrapper gdbtk_init): Protect all calls from tcl
land with call_wrapper. This prevents longjmps (usually via
error()) from jumping out of tcl/tk and leaving things in an
indeterminate state.
* gdbtk.tcl: New view option to disable line numbers. Put catch
around most uses of gdb_cmd. Add update button to reg config
window. Stop doing immediate updates when selecting registers.
Change register view values into checkbuttons.
recompute_reg_display_list): Use array instead of individual vars
for register display list.
* (recompute_reg_display_list update_registers): Fix bug with not
displaying all registers.
builtin_type_f_integer, and only include it in the f_builtin_types
once.
* somread.c (som_symfile_read): Just assign to objfile->obj_private,
not OBJ_UNWIND_INFO. Assigning to a cast is a GCC-ism which
the HP compiler doesn't like.
gdb_changed_register_list, and gdb_regnames.
* gdbtk.tcl: Use monochrome color model for now.
* (delete_breakpoint_tag create_file_win): Add breakdot support.
* (create_file_win create_asm_win update_listing build_framework
create_source_window create_command_window): Re-org window
creation to give all windows consistent look and feel.
* (update_listing update_asm): Change pc pointer to '->'.
* (registers_command reg_config_menu create_registers_window
populate_reg_window update_registers): Revamp register window.
Allow selection of registers to be displayed. Highlight changed
registers.
changes. They are correct, unlike the post-Nov 3 comment
(FRAME_FP doesn't have any machine-independent relationship with
FP_REGNUM or any other such notion of a "frame pointer").
match stubs and protocol spec.
* gdbserver/remote-utils.c (remote_open): Cast to struct sockaddr
when passing to function which expects that.
The following changes aren't quite enough to make things work with
LynxOS (apprently kernel problems).
* infrun.c (wait_for_inferior): When resuming new thread, pass pid
not -1 for remote case.
* thread.c (info_threads_command): Give error if !target_has_stack.
* infrun.c (start_remote): Call init_thread_list.
* thread.c (info_threads_command): Don't call kill for remote
debugging target.
* target.c (normal_pid_to_str): Print "thread" not "process" for
remote.
* remote.c, gdbserver/*: Add 'H', 'S', and 'C' requests, 'X'
response, and `thread' part of 'T' response.
* gdbserver/*: If program exits, send packet to GDB before
exiting. Handle termination with a signal the same as exiting
with an exitstatus.
* remote.c: Don't try to kill program after getting an 'X'
response.
* infrun.c (wait_for_inferior): Add comment about kill versus mourn.
* somsolib.h (som_solib_get_got_by_pc): Add extern decl.
* hppa-tdep.c (hppa_fix_call_dummy): Handle case where FUN is the
function's export stub or real address in a shared library.
* hppa-tdep.c (hppa_pop_frame): Silently restart the inferior and
allow it to execute any return path trampoline code. Stop the
inferior and give the user control when the trampoline has
finished executing.
(in_solib_call_trampoline): Handle export stubs which also perform
parameter relocations.
(in_solib_return_trampoline): Likewise.
_sr4export and $$dyncall as trampolines. Likewise for long-call
stubs and parameter relocation stubs.
(in_solib_return_trampoline): Recognize a return trampoline for
return value relocation stubs.
Various name changes to match those used by hp-symtab.h.
No longer sanitize away hpread changes. Merge ChangeLog.hpread into
ChangeLog and ChangeLog-93.
symbol special handling when INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK
is defined.
* infrun.c (IN_SOLIB_CALL_TRAMPOLINE): Renamed from
IN_SOLIB_TRAMPOLINE. All callers changed.
(IN_SOLIB_RETURN_TRAMPOLINE): Provide default definition.
(wait_for_inferior): Handle single stepping through trampolines on
return paths from shared libraries.
* config/pa/tm-hppa.h (IN_SOLIB_CALL_TRAMPOLINE): Use
in_solib_call_trampoline.
(IN_SOLIB_RETURN_TRAMPOLINE): Use in_solib_return_trampoline.
(INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK): Define.
* hppa-tdep.c (in_solib_call_trampoline): New function.
(in_solib_return_trampoline): New function.
(BC_BREAKPOINTS): Disable.
* sh-tdep.c (print_insn): Cope with big and little endian machines.
* sh/sh.mt: Use libsim.a
* sh/tm-sh.h (TARGET_BYTE_ORDER_SELECTABLE): New
(BREAKPOINT): Changed to be byteorder independent.
* main.c (display_time, display_space): New globals.
(main): Add argument --statistics to enable reporting, display
time and space after startup is done.
* maint.c (maintenance_time_display, maintenance_space_display):
New commands.
* top.c (command_loop): Display time and space after command
execution.
* top.c (pre_init_ui_hook): New global.
(gdb_init): If pre_init_ui_hook set, call before all other init.
* mips-tdep.c (mips_processor_type, tmp_mips_processor_type,
mips_generic_reg_names, mips_r3041_reg_names,
mips_r3051_reg_names, mips_r3081_reg_names,
mips_processor_type_table): New globals.
(mips_do_registers_info): Don't display register if name is empty.
(mips_set_processor_type_command): New command.
(mips_show_processor_type_command): New command.
(mips_set_processor_type): New function.
(mips_read_processor_type): New function.
* config/mips/tm-idt.h (DEFAULT_MIPS_TYPE): New macro.
* config/mips/tm-mips.h (DEFAULT_MIPS_TYPE): New macro.
(NUM_REGS): Increase to account for all CP0 registers.
(REGISTER_NAMES): Add empty names for CP0 registers.
(FIRST_EMBED_REGNUM, LAST_EMBED_REGNUM): Adjust.
(PRID_REGNUM): New macro.