LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2, linux_sigtramp_code,
LINUX_SIGTRAMP_LEN, i386_linux_sigtramp_start,
LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1,
linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN,
i386_linux_rt_sigtramp_start, i386_linux_in_sigtramp,
i386_linux_sigcontext_addr, LINUX_SIGCONTEXT_PC_OFFSET,
i386_linux_sigtramp_saved_pc, LINUX_SIGCONTEXT_SP_OFFSET,
i386_linux_sigtramp_saved_sp): Deleted. These all implement
Linux-specific signal trampoline detection, and should be moved to...
* i386-linux-nat.c: ... here.
* config/i386/tm-linux.h (I386_LINUX_SIGTRAMP): No need to define
this any more, since we're not enabling OS-specific code in a
OS-independent file.
* solib.c (current_sos): New function, replacing find_solib.
(find_solib): Deleted.
(free_so): New function.
(clear_solib): Call free_so, instead of writing it out.
(solib_add): Rewritten: compare the inferior's current list of
shared objects with GDB's list, and do the required loads and
unloads.
(info_sharedlibrary_command, solib_address): Don't use find_solib
to walk the list of shared libraries: call solib_add, and then
walk the list at so_list_head normally.
* objfiles.c (free_objfile): Don't call CLEAR_SOLIB, and don't
detach the core target. These tasks are taken care of elsewhere.
* target.c (remove_target_sections): New function.
* target.h (remove_target_sections): New declaration.
* solib.c (symbol_add_stub): Check whether we've already created
an objfile for this shared object first, before doing all that
work to compute section addresses, etc.
* objfiles.c (unlink_objfile): Report an internal error if objfile
doesn't occur in the object_files list.
* solib.c (special_symbol_handling): Delete argument; it's not
used.
* solib.c (SOLIB_EXTRACT_ADDRESS): New macro to extract addresses
from solib structures. Use it throughout solib.c, get rid of all
CORE_ADDR casts.
(struct so_list): Change type of lmaddr to CORE_ADDR.
(first_link_map_member): Change return value type to CORE_ADDR,
update callers.
(solib_add_common_symbols): Change parameter type to CORE_ADDR,
update callers.
(open_symbol_file_object, find_solib): Change type of lm variable
to CORE_ADDR.
* eval.c (evaluate_subexp_with_coercion): Add call to
check_typedef, to handle typedeffed vars correctly.
* gdb.base/printcmds.c: Add typedeffed arrays.
* gdb.base/printcmds.exp (test_print_typedef_arrays): New
procedure to test arrays that are typedef'd.
Add support for a variable object that tries to evaluate itself in
the currently selected frame, rather than in a fixed frame.
* wrapper.c,h (gdb_parse_exp_1): Added a wrapper for
gdb_parse_exp_1.
* varobj.h: Added USE_CURRENT_FRAME to varobj_type & changed def'n
of varobj_create.
* varobj.c (varobj_list): Return type indicates whether the
variable's type has changed (for current frame variables).
(varobj_update): Handle the case where the variable's type has
changed.
(delete_variable_1): Allow for deletion of variables that have not
been installed yet.
(new_root_variable): Initialize use_selected_frame variable.
(value_of_root): This is where most of the work to handle "current
frame" variables was added. Most of the complexity involves
handling the case where the type of the variable has changed.
(varobj_create): Add a "type" argument, to tell if the
variable is one of these "current frame" variables. Also protect
call to parse_exp_1 from long jumping.
* mi-var-block.exp: The error report from varobj_create changed
since I am now trapping parse_exp_1 errors. Change the tests to
match the new error message.
* mi-var-child.exp: Ditto.
* mi-var-cmd.exp: Ditto.
* lib/gdb.exp: Fix the gdbtk_start routine to correctly find all
the library directories.
* gdbtk-varobj.c (variable_create): Pass the correct
"how_specified" flag to the varobj_create routine.
(print_387_status, i386_go32_float_info): Remove redundant
functions.
(regno_mapping, sig_map, excepn_map): Add braces around inner
initializers.
(many functions): Use ATTRIBUTE_UNUSED to shut up the compiler;
fix code which mixed signed with unsigned.
(go32_resume): Use TARGET_SIGNAL_LAST instead of -1.
(go32_wait): Initialize INT3_addr.
(go32_fetch_registers): Extend all FP registers that are shorter
than 4 bytes to 32 bits. Support 32 standard FP registers defined
on config/i386/tm-i386.h.
(store_register): Support 32 FP registers.
(go32_create_inferior): Don't crash if handed a NULL pointer
instead of exec file name.
(ignore): Remove unused function.
(go32_insert_hw_breakpoint): Remove unused variables.
(init_go32_ops): Set value of processing_gcc_compilation to 2.
* gnu-nat.c: Fix the formatting where indent misinterpreted `&' as
a binary operator.
(gnu_attach): Change error message for missing
argument to be identical to the corresponding message in
`inftarg.c'. This makes the testsuite happy.
* i386gnu-nat.c (gnu_store_registers): Make sure the T bit in the
%eflags isn't modified. This fixes a bug where every call to a
function in the program beyond the first call would fail.
* gdb.base/long_long.exp: Correct test suite failure when printing
a long long value as a double on ARM platforms.
ARM doubles use a hybrid endian format. It is not strictly little or big
endian. It is little endian with the words swapped.
* minsyms.c: #include <ctype.h>, for msymbol_hash_iw.
(compact_minimal_symbols): Added `objfile' argument.
Put symbols in the objfile's hash table.
(install_minimal_symbols): Put symbols in the objfile's demangled
hash table.
(lookup_minimal_symbol): Use hash table to find symbol in
objfile.
(msymbol_hash_iw, msymbol_hash, add_minsym_to_hash_table): New
functions.
(prim_record_minimal_symbol_and_info): Initialize the
hash link fields of the new minimal symbol.
* symtab.h (struct minimal_symbol): New fields `hash_next',
`demangled_hash_next'.
(msymbol_hash_iw, msymbol_hash, add_minsym_to_hash_table): Declare.
* objfiles.h (MINIMAL_SYMBOL_HASH_SIZE): New define.
(struct objfile): New fields `msymbol_hash',
`msymbol_demangled_hash'.
* i386-linux-nat.c: Use elf_gregset_t and elf_fpregset_t instead
of gregset_t and fpregset_t. Those are the only names that are
guaranteed to specify the right types for all supported Linux
systems out there.
Various doc fixes and gratitious local variable renames, all in an
attempt to stress similarities between the code and unify the
terminology used. Use ISO-C all over.
(regmap): Remove trailing comma.
(FPREG_ADDR): Renamed from FPREGSET_T_FPREG_ADDR.
(convert_to_gregset): Make static. Remove GDB_REGS argument. It
is unnecessary and wasn't used anyway. All callers changed.
(convert_to_fpregset, convert_to_xfpregset): Likewise.
(fetch_regs, store_regs): Remove unused variable `regno'.
(fill_fpregs): If REGNO is not -1, only update the specified
register.
(fetch_core_registers): Renamed from
i386_linux_fetch_core_registers. There is no need for a unique
name since the function is static anyway.
(linux_elf_core_fns): Renamed from i386_linux_nat_core_functions
since it is more descriptive.
Fix support for Linux/i386 signal trampolines. The old approach
didn't work for Linux 2.2 and beyond, and didn't work with recent
versions of the GNU C library.
* i386-tdep.c (LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1): New defines.
(linux_rt_sigtramp_code): New variable.
(LINUX_RT_SIGTRAMP_LEN): New define.
(i386_linux_rt_sigtramp_start): New function. Detect start of
signal trampolines for RT signals.
(i386_linux_sigtramp): Removed.
(i386_linux_in_sigtramp): New function.
(i386_linux_sigcontext_addr): New function. Recognize the names
of the signal tranmpolines used by recent versions of the GNU C
library, and add support for RT signals.
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET): New
defines. Moved here from config/i386/tm-linux.h.
(i386_linux_sigtramp_saved_pc, i386_linux_sigtramp_saved_sp):
Reimplement in terms of i386_linux_sigcontext_addr.
* config/i386/tm-linux.h (LINUX_SIGCONTEXT_SIZE): Removed.
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET):
Moved to i386-tdep.c.
(IN_SIGTRAMP): Redefine to call i386_linux_in_sigtramp.
* defs.h (struct continuation_arg): Change type of field 'data'
from PTR to void *.
* event-loop.h: Eliminate uses of PTR, use 'void *' instead.
* event-top.c: Ditto.
* arm-linux-nat.c (fetch_nw_fpe_*):
Renamed to fetch_nwfpe_* to use the same naming convention
as in the Linux kernel. Modified prototype to get rid of
unused parameters.
(store_nw_fpe_*): Renamed to store_nwfpe_* to use the same
naming convention as in the Linux kernel. Fixed calls to
fetch_nwfpe_*.
(store_fpregs): Fixed calls to store_nwfpe_*. Removed
unused variable.
* gnu-nat.c: Include "gdbthread.h". Include <hurd.h>.
Reorder headers a bit. Overall cleanup and minor reformatting.
(MIG_SERVER_DIED): Remove define.
(proc_update_sc): Add braces to silence compiler warning.
(proc_steal_exc_port): Initialize err to zero.
(make_proc): Add braces to silence compiler warning.
(inf_validate_task_sc): Add cast to silence compiler warning.
(inf_set_traced): Reorganize a bit to silence compiler warning.
(inf_validate_procs): Use mach_msg_type_number_t for all thread
numbers and add braces to silence compiler warning.
(gnu_wait): Add prototypes for server functions and add braces to
silence compiler warnings.
(S_exception_raise_request): Pass subcode to inf_debug call.
(gnu_write_inferior): Remove unused variable `protection_changed'.
(gnu_xfer_memory): Remove unused variable `result'.
(set_sig_thread_cmd): Remove unused varible `tid'.
(set_signals_cmd): Remve unused variable `trace'.
(add_task_commands): Provide complete prototype. Reformat help
strings a bit to make sure the first line is a full sentence.
Call info_port_rights_cmd instead of info_send_rights_cmd for the
"info port-rights" command.
(add_thread_commands): Provide complete prototype. Make static.
Reformat help strings a bit to make sure the first line is a full
sentence.
(_initialize_gnu_nat): Provide complete prototype.
Make cross-compilation for the Hurd more friendly.
From Jeff Bailey <jbailey@gnu.org>:
* configure.in: Use AC_CHECK_TOOL to find MiG.
* Makefile.in (MIG): New variable.
* config/i386/i386gnu.mh (MIG): Remove.
* configure: Regenerated.
From: Thomas Zenker <thz@Lennartz-electronic.DE>
* rdi-share/hsys.c: to compile under 4.4BSD derived systems (FreeBSD,
NetBSD...) sys_errlist should not be declared in hsys.c.
NEED_SYSERRLIST is set already by configure, so we can use it.
* rdi-share/unixcomm.c: 4.4BSD derived systems define BSD, but are
posix compliant and we should not work with the old compatibility
stuff. Because of that I undef BSD in case of FBSD etc and include
sys/ioctl to get the flags.
* rdi-share/unixcomm.c: If the TIOCEXCL flags exists set serial line
for exclusive use.
* config/arm/tm-wince.h: New file.
* config/arm/wince.mt New file.
* config/sh/tm-wince.h: New file.
* config/sh/wince.mt New file.
* config/mips/tm-wince.h: New file.
* config/mips/wince.mt New file.
* wince.c: New file.
* wince-stub.c: New file.
* wince-stub.h: New file.
* sh-tdep.c: Use correct register names for Windows CE.
(error_return, quit_return): Merge into catch_return pointer.
(return_to_top_level): Update comment. Longjmp to *catch_errors,
and communicate reason to catch_errors via setjmp return value.
(catch_errors): Always catch both quit and error, and if a catch
wasn't requested by caller, throw it to the next catch_error.
Replace dual longjmp buffer memcpy with single pointer change.
Add FIXME for possibly adding new interface to tell caller what
event was caught. Add extensive comments.
* defs.h (enum return_reason): Reserve 0 for use as initial
setjmp() return value.
(RETURN_MASK): New public macro to generate RETURN_MASK_* from
enum return_reason.
(RETURN_MASK_QUIT, RETURN_MASK_ERROR): Define using RETURN_MASK.
* infcmd.c (run_stack_dummy): Do not pop frame on random signal.
* valops.c (_initialize_valops): Add command "set unwindonsignal".
(hand_function_call): Test for unwind_on_signal and act accordingly.
From Philippe De Muyter <phdm@macqel.be>
* event-loop.c (handle_file_event): In case of poll, enable
printing of informational message if an error/exception is
detected on the file descriptor.
* remote.c (remote_async_detach): Use target_mourn_inferior(), to
make sure that all is cleaned up after we disconnect from the
target.
(remote_detach): Ditto.
* target.c (do_target_signal_to_host): Do not use REALTIME_LO in
the conversion of the signal number. TARGET_SIGNAL_REALTIME_33 is
33 by definition, whereas REALTIME_LO might be 32 on systems that
have SIG32 such as Linux. Make sure that the signal number
returned is within the range specified by REALTIME_LO and
REALTIME_HI.
* arm-tdep.c (set_disassembly_flavor, arm_othernames,
_initialize_arm_tdep): Allows the user to choose between any of
the flavors available for the disassembly to be used in the "info
reg" command and elsewhere in gdb. It prevents having to maintain
this information in two places by using the data kept in the
opcodes directory.
* configure.in: Check for lwpid_t, psaddr_t, prgregset_t and
prfpregset_t in <sys/procfs.h>.
* config.in: Add HAVE_LWPID_T, HAVE_PSADDR_T, HAVE_PRGREGSET_T,
HAVE_PRFPREGSET_T.
* gdb_proc_service.h: Only provide typedefs for lwpid_t, psaddr_t,
prgregset_t and prfpregset_t if they are not already present.
* elfread.c (elf_symtab_read): Use offset for the section in which a
symbol resides, instead of .text section for calculating address of a
symbol.
Checked in by Jim Kingdon <kingdon@redhat.com>
* gnu-nat.c (proc_string): Make global.
(do_mach_notify_dead_name): Suppress dead name notifications if we
know that the task is dead.
1999-12-13 Mark Kettenis <kettenis@gnu.org>
* gnu-nat.c (inf_validate_task_sc): Get task info via proc server
instead of directly from the kernel. Add some hackery to make
sure that the info isn't influenced by suspension of the task in
the proc server itself.
* configure.in: Remove the addition of sol-thread.c to the
CONFIG_INITS list. This caused problems with init.c, because
sol-thread.c would be grepped twice for _initialize_* functions.
* configure: Ditto.
* Makefile.in: Add FIXME for init.c.
* bcache.h, bcache.c, c-valprint.c, coffread.c, stabsread.c,
stack.c, valprint.c: Change variables to unsigned.
* bcache.c: Rearrange to avoid warnings about variables not being set.
* c-lang.c, ch-lang.c, f-lang.c, m2-lang.c: Include valprint.h
rather than declaring print_max and repeat_count_threashold
ourselves (incorrectly).
* valprint.h: Do declare repeat_count_threashold.
* ch-exp.c: Use default case for internal error.
* findvar.c: Don't omit argument type.
* symtab.c: Remove unused variable.