host doesn't have a currently-open connection.
* config/sparclet.exp: Cleanups and fixes to make it generic for
any gdb stub target. Handle cases where gdb doesn't respond when
interrupted in a sane fashion.
* config/m32r.exp: Load sparclet.exp instead of trying to do the
same thing in a totally different way.
* config/monitor.exp: Pass in timeouts to gdb_expect instead of
setting "timeout".
(gdb_start): We set the global gdb_prompt variable in
default_gdb_init now.
global variables into the struct dieinfo structure.
(locval): Pass pointer to a dieinfo struct rather than a
pointer to the raw location information. Change prototype.
Set isreg, optimized_out, offreg and basereg as appropriate.
(struct_type): Call locval with dieinfo struct pointer.
(new_symbol): Ditto.
(new_symbol): Call locval and save location before testing
the values of the new dieinfo struct flags, set by locval.
unconditionally_kill_inferior): Undo Oct 26 1996 and Apr 26 1997
changes to trace PRFS_STOPTERM and handle PR_DEAD.
These changes tried to work around a problem with an early DU 4.0
release, but they trigger subtle timing dependent kernel bugs
in older OSF/1 releases.
stepping over an instruction that triggered a watchpoint.
* remote-mips.c: Numerous changes to support hardware breakpoints
and watchpoints on LSI MiniRISC and TinyRISC boards.
* mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h.
(mips_breakpoint_from_pc): Account for different breakpoint
instructions used by PMON and IDT monitor.
* config/mips/tm-embed.h: Enable hardware breakpoints on embedded
MIPS targets.
* config/mips/tm-mips.h: Define breakpoint instructions for
PMON and IDT monitor. Move MIPS16-related macros here from
mips-tdep.c.
initialize.
(default_gdb_init): New procedure; allow gdb_init to be overridden
by a target configuration file.
(gdb_expect): Pass the timeout to remote_expect.
* config/dos.exp(dos_wait): Add timeout parameter.
* lib/remote.exp(remote_expect): Add timeout parameter.
(remote_wait): Ditto.
(standard_wait): Ditto. Also give up if the program outputs
more than 512,000 bytes.
* config/vxworks.exp: Use timeout parameter instead of setting
timeout variable.
* config/dos.exp: Ditto.
* config/ddb.exp: Ditto.
* lib/mondfe.exp: Ditto.
* lib/rlogin.exp: Ditto.
* lib/telnet.exp: Ditto.
* config/base68k.exp: Ditto.
* config/i386-bozo.exp: Ditto.
* config/gdb-comm.exp: Ditto.
* config/gdb_stub.exp: Ditto.
* config/i960.exp: Ditto.
* config/ddb-ether.exp: Ditto.
* config/sim.exp: Ditto.
* lib/g++.exp(g++_init): Use g++_include_flags instead of making
up the includes ourselves.
Add missing return statements after finding an "add imm{16,32},sp"
instruction.
(mn10300_frame_chain): Add in size of our register save area to find
our caller's frame if our caller does not have a frame pointer.
Fixes some problems debugging optimized code.
* gdbtk.c (gdb_get_breakpoint_info): Add string for new
enumeration del_at_next_stop to bpdisp array.
end-sanitize-gdbtk
* eval.c (evaluate_subexp_for_sizeof): Handle dereferencing
of non-pointer values.
* symtab.c (gdb_mangle_name): Improve mangling of nested types,
their physical names already include the class name.
* valops.c (value_cast): Handle upcast of a class pointer.
From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de):
* corelow.c (get_core_registers): Make secname big enough.
ChangeLog sh-tdep.c config/sh/tm-sh.h
* config/sh/tm-sh.h: add define for FPSCR_REGNUM
* sh-tdep.c (sh_show_regs): print out all registers for
the current processor
here. Call gdb_target_exec before rebooting the target, to make
sure the connection to the target is closed.
(gdb_load): Pass the name of the executable to gdb_target_monitor.
Don't call gdb_file_cmd here; let gdb_target_monitor do it.
* config/gdbserver.exp: Pass the executable being loaded to
gdb_target_monitor. Don't call gdb_file_cmd here; let
gdb_target_monitor do it.
* gdb.disasm/hppa.exp: Don't use exec_output.
test_calls after restarting.
* lib/gdb.exp(gdb_run_cmd): Send jump command again after
reloading.
* gdb.base/watchpoint.exp: Fix typo.
* gdb.base/setshow.exp: Check for use_gdb_stub.
* gdb.base/break.exp: Fix continue until exit test for the gdb
stub case.
* gdb.base/langs.exp: Ditto.
* config/monitor.exp(gdb_load): Handle gdb_sect_offset and
gdb_load_offset. If we weren't given a file to load, figure out
what the current file is and use it.
* procfs.c (init_procinfo): new function, abstracts some code
shared by create_procinfo and do_attach;
(procfs_set_inferior_syscall_traps): new function, abstracts
some code needed by procfs_init_inferior, do_attach, and
procfs_lwp_creation_handler; (procfs_first_available): new
function, find any LWP that's runnable; (procfs_thread_alive):
replace stub function with real implementation;
(procfs_lwp_creation_handler): fix bug starting new child
threads; (info_proc): bug fixes and enhancements for the
"INFO PROCESSES" command; (close_procinfo_file): call new
function "delete_thread" to cleanup GDB's thread database;
(proc_init_failed): add new argument "kill", to control whether
process is killed (so this function can be shared by
create_procinfo and do_attach); (procfs_exit_handler): handle
exit from an attached process, and cleanup procinfo handles
when the process exits; (procfs_resume, procfs_wait): cleanup
after a thread when it exits; (do_attach, do_detach): handle
attached processes with multiple threads; plus some general
improvements in the diagnostic output.
* sol-thread.c (sol_thread_alive): replace stub with real
implementation; (thread_to_lwp, lwp_to_thread): enhance to
handle threads that may have exited; (sol_thread_attach): add
startup setup stuff; (sol_thread_detach): add unpush_target
call; (sol_thread_mourn_inferior): add unpush_target call;
(sol_thread_wait, sol_thread_resume): enhance to deal with
thread exit cleanly; (sol_thread_new_objfile,
sol_thread_pid_to_str): detect unsuccessful startup and
don't crash; plus some general cleanup.
* thread.c (delete_thread): new function, allows targets to
notify gdb when a thread is no longer valid.
* infrun.c (wait_for_inferior): don't try to detect a new
thread on receiving a TARGET_EXITED event.