* gdb.threads/pthreads.exp (check_control_c): Return 0 for success,
non-zero if control_c fails. Terminate the test on failure,
rather than wait for 12 more tests to time out.
stopped due to a Ctrl-C as well as breakpoints.
* hppa-tdep.c (hppa_prepare_to_proceed): Add FIXME as this may not
support thread switches after Ctrl-C.
* lin-lwp.c (lin_lwp_prepare_to_proceed): Ditto.
* linux-thread.c (linuxthreads_prepare_to_proceed): Ditto.
* m3-nat.c (mach3_prepare_to_proceed): Ditto.
instead of system-specific define's like _WIN32 and __MSDOS__.
Use IS_DIR_SEPARATOR and IS_ABSOLUTE_PATH instead of SLASH_P and
ROOTED_P.
(top-level): #include "filenames.h".
* solib.c (solib_open): Use IS_DIR_SEPARATOR and IS_ABSOLUTE_PATH
instead of SLASH_CHAR, ROOTED_P and SLASH_P.
(top-level): #include "filenames.h".
* defs.h (SLASH_P, SLASH_CHAR, ROOTED_P): Remove definitions.
(SLASH_STRING): Define only for _WIN32.
* completer.c: Use HAVE_DOS_BASED_FILE_SYSTEM instead of
__MSDOS_.
* cli/cli-cmds.c (cd_command): Use IS_DIR_SEPARATOR and
IS_ABSOLUTE_PATH instead of SLASH_P and ROOTED_P. Replace
system-specific ifdefs with HAVE_DOS_BASED_FILE_SYSTEM.
(top-level): #include "filenames.h".
* config/djgpp/fnchange.lst: Add two new files in the
gdb/testsuite/gdb.c++/ directory to the remapped names.
* config/djgpp/djconfig.sh (lt_cv_sys_max_cmd_len): Set to 12KB.
than requiring that all per-architecture data be registered before
the first gdbarch object is allocated.
* gdbarch.sh: Changes to effect the following:
* gdbarch.c (alloc_gdbarch_data, init_gdbarch_data): Delete
declarations and definitions.
(check_gdbarch_data): New function, and declaration.
(gdbarch_alloc): Don't call alloc_gdbarch_data; leaving the fields
zero is good enough.
(free_gdbarch_data): Tolerate a null data pointer. Free only
those data items gdbarch->data actually has allocated.
(set_gdbarch_data, gdbarch_data): Call check_gdbarch_data.
(gdbarch_update_p): No need to call init_gdbarch_data.
* thread.c (delete_step_resume_breakpoint): New function.
Maintain internal consistency of the thread list while deleting
a step_resume_breakpoint.
* gdbthread.h (delete_step_resume_breakpoint): Export.
* breakpoint.c (bpstat_find_step_resume_breakpoint):
Make thread-aware: don't return a step_resume_breakpoint
for the wrong thread.
* infrun.c (wait_for_inferior): Call delete_step_resume_breakpoint
instead of delete_breakpoint_current_contents.
(fetch_inferior_event): Ditto.
(handle_inferior_event): Call delete_step_resume_breakpoint
instead of delete_breakpoint.
* infrun.c (handle_inferior_event): After singlestepping over a
thread-specific breakpoint, use currently_stepping() to decide
whether to step or continue.
* lin-lwp.c (lin_lwp_attach_lwp): Call stop_wait_callback,
to consume the SIGSTOP generated by PTRACE_ATTACH.
(stop_wait_callback): If a SIGTRAP or a SIGINT event is consumed,
try again to get the SIGSTOP event.
(lin_lwp_wait): Resume all threads when ignoring a signal.
This will insure that newly attached threads get resumed.
* gdb.threads/linux-dp.exp: Remove assumptions about thread ordering.
Don't require that the main thread and the manager thread are the
first in the list.
* gdb.base/exprs.exp ("print unsigned short == (~0)"): Don't
assume that shorts are smaller than ints. On a 16-bit machine,
this isn't true.
("print unsigned char == (~0)"): Add test that verifies that ~0,
an int, is not equal to ~0 stored in an unsigned char. This tests
the same thing that the previous test meant to, but works on
16-bit machines, too.
("print unsigned char != (~0)"): Same test, complemented.
(gnu_pid_to_exec_file): Add PID parameter.
(set_sig_thread_cmd): Use PIDGET on return value from
thread_id_to_pid.
(proc_string): Use MERGEPID to construct argument to
pid_to_thread_id.
* gdb.threads/pthreads.exp (all_threads_running): Add an explicit
test for (full_coverage == 0). This makes the test run faster,
and prevents dejagnu getting out of step.
* gdb.base/callfuncs.exp: Make all test names unique.
* gdb.base/commands.exp: Make all test names unique.
* gdb.base/condbreak.exp: Make all test names unique.
* gdb.base/dbx.exp: Make all test names unique.
* gdb.base/default.exp: Make all test names unique.
* gdb.base/define.exp: Make all test names unique. Conform some FAIL
and TIMEOUT messages to their corresponding PASS message.
* gdb.base/ending-run.exp: Make all test names unique.
* gdb.base/long_long.exp: Remove duplicate test.
* thread-db.c: Allow for defunct zombie threads.
(attach_thread): Do not attempt to attach zombie thread.
(thread_db_thread_alive): Return false for defunct zombie thread.
(find_new_threads_callback): Don't add defunct zombie thread to list.
(Includes changes by Dan Berlin.)
* gnu-v3-abi.c: New file.
* minsyms.c: #include "value.h" and "cp-abi.h".
(install_minimal_symbols): Check the minimal symbol table for
symbols that look mangled in the V3 style, and select the V3 ABI
if we find any.
* Makefile.in (SFILES): Add gnu-v3-abi.c.
(COMMON_OBS): Add gnu-v3-abi.o.
(gnu-v3-abi.o): Add new rule.
(minsyms.o): Depend on $(cp_abi_h) and $(value_h).
Changes by Jim Ingham:
* values.c (value_change_enclosing_type): New function. If the
new enclosing type is larger than the old one, we need to allocate
more space.
* value.h: Add value_change_enclosing_type prototype.
* valops.c (value_cast): Use it.
(value_assign): Use it.
(value_addr): Use it.
(value_ind): Use it.
(value_full_object): Use it.
2001-05-07 Daniel Berlin <dan@cgsoftware.com>
* values.c (value_static_field): Handle static fields that have a constant value.
* remote.c (hex2bin): Make first argument const.
Require explicit count, don't accept null-terminated str.
(remote_resume, remote_async_resume): White space fix-up.
basename (NAME). The FreeBSD basename returns a pointer to a
static buffer, even if it's simply returning a string identical to
its argument.
(lookup_partial_symtab): Likewise.
* ser-unix.c (rate_to_code): Issue warning if baud rate is invalid.
(hardwire_setbaudrate): Set errno to EINVAL and return with error
if the conversion of the baud rate to code fails.
* config/gdbserver.exp (gdb_load): Handle the case
in which the arguments to gdbserver are given in the
baseboard configuration file.
Also handle the case in which the server needs to do a
load.
* remote.c (bin2hex, hex2bin): New functions. Factor out these
two conversions which are coded for repeatedly in this module.
(remote_threads_extra_info, remote_wait, remote_async_wait,
store_register_using_P, remote_store_registers, remote_write_bytes,
remote_read_bytes, remote_rcmd): Use bin2hex and hex2bin instead
of coding the conversions inline.
(fromhex): Not exported, change from extern to static.
and gdbtk-stack.o.
(SUBDIR_GDBTK_SRCS): Ditto for the sources.
(gdbtk-bp.o): New rule.
(gdbtk-register.o): New rule.
(gdbtk-stack.o): New rule.
(gdbtk-cmds.o): Update dependencies.
(gdbtk.o): Ditto.
(gdbtk-hooks.o): Ditto.
(gdbtk-varobj.o): Ditto.
* symfile.c (symbol_file_add_main_1): New static function.
Passes the flags arguments to symbol_file_add() and takes care
of any necessary reinitializations.
(symbol_file_command): Call symbol_file_add_main_1() instead of
symbol_file_add().
(symbol_file_add_main): Ditto.
* sh3-rom.c (_initialize_sh3_rom): Get rid of specific _WINDOWS
conditional for help with connections through parallel ports,
given that the actual code for downloading through a parallel port
is not conditionalized.
* sh-tdep.c: Remove WIN32_WCE conditional. The wince sh target is
unmaintaned, and probably on its way to obsolescence.
(i386_register_convertible): New function.
* config/i386/tm-i386.h (REGISTER_VIRTUAL_TYPE): Redefine in terms
of i386_register_virtual_type.
(REGISTER_CONVERTIBLE): Redefine in terms of
i386_register_convertible.
(i386_register_virtual_type, i386_register_convertible): New
prototypes.
saves in general.
* config/mn10300/tm-mn10300.h (D0_REGNUM, A0_REGNUM, MDRQ_REGNUM,
MCRH_REGNUM, MCRL_REGNUM, MCVF_REGNUM): New definitions.
(enum movm_register_bits): New enum.
* mn10300-tdep.c (set_movm_offsets): Use symbolic names for the
bits, not hex literals. Handle the `other', `exreg0', and
`exother' bits. Correct handling of `exreg1': it saves r4, r5,
r6, and r7, not r2, r3, r4, and r5.
(saved_regs_size): New function.
(mn10300_frame_chain, mn10300_frame_saved_pc): Use it, instead
of computing the same thing inline, incorrectly.
stuff out into mn10300_pop_frame_regular, and use
generic_pop_current_frame. This lets us share code, and also
makes this function's prototype match that expected by gdbarch.
Make this function static.
(mn10300_pop_frame_regular): New function.
(mn10300_gdbarch_init): Register mn10300_pop_frame as the
gdbarch's pop_frame method.
* config/mn10300/tm-mn10300.h (POP_FRAME): Delete definition.
(mn10300_pop_frame): Delete declaration.
mn10300_extract_return_value,
mn10300_extract_struct_value_address, mn10300_store_return_value,
mn10300_use_struct_convention, mn10300_breakpoint_from_pc,
mn10300_frame_chain, mn10300_skip_prologue,
mn10300_push_arguments, mn10300_push_return_address,
mn10300_store_struct_return, mn10300_frame_saved_pc,
mn10300_init_extra_frame_info, mn10300_frame_init_saved_regs):
Make these functions static; they should only be visible to the
outside world as gdbarch methods.
than the tm-*.h file.
* config/mn10300/tm-mn10300.h (MAX_REGISTER_VIRTUAL_SIZE,
REGISTER_BYTES, FP_REGNUM, BREAKPOINT_FROM_PC,
FUNCTION_START_OFFSET, DECR_PC_AFTER_BREAK, INNER_THAN,
SAVED_PC_AFTER_CALL, INIT_EXTRA_FRAME_INFO, FRAME_INIT_SAVED_REGS,
FRAME_CHAIN, FRAME_CHAIN_VALID, FRAME_SAVED_PC,
EXTRACT_RETURN_VALUE, EXTRACT_STRUCT_VALUE_ADDRESS,
STORE_RETURN_VALUE, STORE_STRUCT_RETURN, SKIP_PROLOGUE,
FRAME_ARGS_SKIP, FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS,
FRAME_NUM_ARGS, POP_FRAME, USE_GENERIC_DUMMY_FRAMES, CALL_DUMMY,
CALL_DUMMY_START_OFFSET, CALL_DUMMY_BREAKPOINT_OFFSET,
CALL_DUMMY_LOCATION, FIX_CALL_DUMMY, CALL_DUMMY_ADDRESS,
TARGET_READ_FP, PUSH_RETURN_ADDRESS, PUSH_DUMMY_FRAME,
SAVE_DUMMY_FRAME_TOS, PUSH_ARGUMENTS, PC_IN_CALL_DUMMY,
REG_STRUCT_HAS_ADDR, USE_STRUCT_CONVENTION, GET_SAVED_REGISTER):
Delete definitions. We register gdbarch methods for these now.
(struct frame_info, struct type, struct value): Delete forward
declarations of these types; they're no longer necessary, since we
don't have function declarations here any more.
* mn10300-tdep.c: #include "arch-utils.h", to get declarations for
some default gdbarch methods.
(mn10300_store_struct_return): Return void, as expected by
gdbarch.
(mn10300_init_extra_frame_info): Take initial `fromleaf' argument,
as expected by gdbarch.
(mn10300_frame_init_saved_regs): Provide dummy definition for
this, as required by gdbarch.
(mn10300_gdbarch_init): Add mn10300_call_dummy_words, as expected
by gdbarch. Register gdbarch methods or values for all the stuff
removed from tm-10300.h, listed above.
set up the display for testing.
(gdbtk_start): Convert all paths to paths that tcl will like.
Export target information to environment.
(_gdbtk_xvfb_init): New proc to start Xvfb if available and
necessary.
(_gdbtk_xvfb_exit): New proc to kill Xvfb if necessary.
(to_tcl_path): New proc to convert a given pathname into
a path acceptible as an argument to a tcl command.
(_gdbtk_export_target_info): New proc to export target info
into the environment for gdbtk testing.
(gdbtk_done): New proc to signal end-of-test.
* thread-db.c (keep_thread_db): Adjust comment.
(deactivate_target): Removed.
(thread_db_new_objfile): Don't call deactivate_target. Implement
guts of deactivate_target inline instead.
(attach_thread): Call ATTACH_LWP unconditionally if defined.
(thread_db_attach): New function.
(thread_db_detach): Don't call deactivate_target. Do necessary
cleanup inline instead. Set inferior_ptid to LWP corresponding to
the current user-level thread.
(thread_db_kill): Set inferior_ptid to LWP corresponding to the
current user-level thread.
(thread_db_create_inferior): Deactivate target vector if
KEEP_THREAD_DB is zero.
(thread_db_mourn_inferior): Don't call deactivate_target. Do
necessary cleanup inline instead.
(init_thread_db_ops): Initialize to_attach field to
thread_db_attach.
* lin-lwp.c (lin_lwp_mourn_inferior): Remove prototype.
(stop_wait_callback): Add prototype.
(init_lwp_list): Add comment about when to re-initialize the LWP
list.
(lin_lwp_attach_lwp): Only call ptrace for cloned processes.
Avoid adding publicates to the LWP list. Only mark an LWP as
signalled if it doesn't correspond to a cloned process.
(lin_lwp_attach): Add initial process to the LWP list. Make sure
it's stopped and fake a SIGSTOP.
(detach_callback): New function.
(lin_lwp_detach): Implement.
(lin_lwp_create_inferior): Don't re-initialize LWP list here.
Call child_ops.to_create_inferior directly instead of via
target_beneath local.
(lin_lwp_mourn_inferior): Call child_ops.to_mourn_inferior
directly instead of via target_beneath local.
instead of non-portable search for `/'. Use FILENAME_CMP instead
of STREQ, to account for case-insensitive filesystems.
(top-level): #include "filenames.h".
its address, to decide whether it's a watchpoint or not. Zero
is a valid code address.
(update_breakpoints_after_exec): Admonishing comments.
* breakpoint.h (struct breakpoint): Doc fixes.
* config/sid.exp (gdb_target_sid): Check for error messages.
On error or timeout, don't make expect exit (which will terminate
all subsequent tests); instead just make gdb exit.
(gdb_load): Check for error messages. On error or timeout,
return a negative value.
* sid.exp (sid_exit): Pass host, not target, to remote_close.
2001-01-25 matthew green <mrg@redhat.com>
* config/sid.exp (sid_start): Call `remote_push_conn' after firing
up sid.
(sid_exit): Call `remote_pop_conn' after GDB is gone.
2001-01-25 matthew green <mrg@redhat.com>
* config/sid.exp (sid_start): Use `remote_spawn' instead of `spawn.'
Deprecate $sid_spawn_id.
(sid_exit): Remove code necessary only for `spawn.'
2001-01-25 matthew green <mrg@redhat.com>
* config/sid.exp (sid_start): Handle sim,protocol of `sid.'
(rs6000_in_solib_return_trampoline): Declare.
* rs6000-tdep.c (rs6000_in_solib_return_trampoline): New
function.
(rs6000_skip_trampoline_code): Skip bigtoc fixup code.
* xcoffread.c (read_xcoff_symtab): Perform the ISFCN function
check after the CSECT check rather than before it. Allocate
separate symtabs for CSECTs whose names begin with '@'.
(scan_xcoff_symtab): Don't ignore symbols beginning with '@'.
Activate the misc_func_recorded mechanism for whose names begin
with '@'.