finshed using it.
(c_type_of_child): Likewise.
(cplus_value_of_child): Isolate the use of name_of_child to
one case that needs it.
Release memory for "name" when finished using it.
* infptrace.c (fetch_register): Dynamically allocate buffer for
register.
(store_register): Use regcache_collect, instead of accessing the
register buffer directly.
and sparc-linux-nat.c to ALLDEPFILES. Add dependencies.
* config/sparc/linux.mh: Add sparc-linux-nat.o to NATDEPFILES.
* sparc-linux-nat.c: New file, from Mark Kettenis.
(is_float_singleton, is_struct_like, is_float_like): New
functions, that isolate the weirdness.
(is_double_or_float, is_simple_arg, pass_by_copy_ref,
is_double_arg): Use is_struct_like and is_float_like, rather than
testing the type codes ourselves.
(s390_push_arguments): When passing args on the stack, align each
on to a four-byte boundary, regardless of what the type itself
needs.
* d10v-tdep.c (d10v_pointer_to_address): Use new type flag
TYPE_FLAG_CODE_SPACE to recognize a pointer that has been cast
into the instruction address space.
* Makefile.in (doublest.o): Add dependency on gdbtypes.h.
Add address space identifiers to expression language for types.
* c-exp.y (space_identifier, cv_with_space_id,
const_or_volatile_or_space_identifier_noopt,
const_or_volatile_or_space_identifier): New terminals.
(ptype): Accept const_or_volatile_or_space_identifier.
(typebase): Accept const_or_volatile_or_space_identifier.
* c-typeprint.c (c_type_print_cv_qualifier): Rename to
c_type_print_modifier. Handle address space modified types.
* gdbtypes.h (TYPE_FLAG_CODE_SPACE, TYPE_FLAG_DATA_SPACE):
New type flags.
(struct type): Add new field as_type for addr-space qualified types.
(TYPE_AS_TYPE): New macro, retrieves the chain of types that are
identical to this one except for address-space qualification.
* gdbtypes.c (alloc_type): Initialize new field 'as_type'.
(address_space_name_to_int): New function.
(address_space_int_to_name): New function.
(make_type_with_address_space): New function.
(make_cv_type): Handle as_type field of new struct type object.
* parse.c (check_type_stack_depth): New function.
(push_type_address_space): New function.
(follow_types): Handle types with address-space qualifier.
* parser-defs.h (enum type_pieces): Add enum tp_space_identifier.
both `_novlys' and `_ovly_table' before we try anything else;
print a helpful error message.
(simple_overlay_update): No need to print error message here.
break zSeries support; that should be fixed soon.
#include "gdb_assert.h".
(is_integer_like, is_pointer_like, is_simple_arg,
pass_by_copy_ref, extend_simple_arg, is_double_arg, round_up,
round_down, alignment_of): New functions.
(s390_push_arguments): Rewritten to handle passing large arguments
by value, and to make more readable.
interact correctly with generic dummy frames.
(s390_pop_frame_regular): Move the guts of the frame-popping code
to here, to be called by generic_pop_current_frame. Use the
frame's saved_regs array; this works for `return' as well as
inferior function calls.
* symtab.c (find_pc_sect_line): If we can't find the function
containing PC, we certainly won't have line number information for
that location, so return zero immediately.
write_memory_signed_integer): New functions.
(write_memory): Move to be with other write_memory_* functions.
* gdbcore.h (write_memory_unsigned_integer,
write_memory_signed_integer): New declarations.
(s390_fix_call_dummy, s390_pc_in_call_dummy): Delete.
(s390_push_return_address): Put the address of the inferior call
breakpoint in r14.
(s390_gdbarch_init):
- Provide trivial definition of s390_call_dummy_words; register it
with the gdbarch appropriately.
- Delete S390x_call_dummy_words.
- Gather inferior-call-related settings into a group.
- Use generic dummy frames.
- Put the inferior call breakpoint at the entry point.
- Use generic gdbarch methods: pc_in_call_dummy_at_entry_point,
generic_push_dummy_frame, generic_fix_call_dummy.
- There is a call dummy breakpoint offset; it's zero.
* p-lang.c (is_pascal_string_type): New function to determine if a
type is a string type.
* p-lang.h: Add prototype for is_pascal_string_type.
* p-valprint.c (pascal_val_print) : Use is_pascal_string_type function
to display strings nicely.
from the constant pool, but doesn't add in the constant pool's
address to it, then this function probably isn't using r12 as a
GOT pointer, and that load probably wasn't part of the prologue.
* dbxread.c (set_namestring): New function, replacing the
SET_NAMESTRING macro.
(SET_NAMESTRING, CUR_SYMBOL_TYPE, CUR_SYMBOL_VALUE,
CUR_SYMBOL_STRX, DBXREAD_ONLY, START_PSYMTAB, END_PSYMTAB): Delete
definitions.
(read_dbx_symtab): Don't include partial-stab.h any more. Don't
reuse code in partial-stab.h, include the code directly, instead.
* Makefile.in (dbxread.o): Remove dependency on partial-stab.h.
(HFILES_NO_SRCDIR): Remove partial-stab.h.
* arch-utils.h (generic_in_function_epilogue_p): Declare extern.
* breakpoint.c (watchpoint_check): Add test whether the pc is
currently in the epilogue of a function.
* gdbarch.c: Autogenerated from gdbarch.sh.
* gdbarch.h: Ditto.
* gdbarch.sh (function_list): Add `in_function_epilogue_p' definition.
several lines with backslashes; the `sed' command in
configure.in's AC_OUTPUT clause that comments out the NATDEPFILES
assignment doesn't handle lines extended with backslashes.
* symtab.c (operator_chars): Allow '*' and '[' to be quoted in
operator names, to avoid regexp expansion.
(search_symbols): Alloca buffer is too small, may get clobbered.
* i386-linux-tdep.c: Include "inferior.h".
(i386_linux_register_name, i386_linux_register_byte,
i386_linux_register_raw_size): New functions.
(i386_linux_write_pc): New function.
* config/i386/tm-linux.h (I386_LINUX_ORIG_EAX_REGNUM): New define.
(NUM_REGS, MAX_NUM_REGS, REGISTER_BYTES, REGISTER_NAME,
REGISTER_BYTE, REGISTER_RAW_SIZE): Define to deal with additional
register.
(i386_linux_register_name, i386_linux_register_byte,
i386_linux_register_raw_size): New prototypes.
(TARGET_WRITE_PC): New define.
(i386_linux_write_pc): New prototype.
i386_register_byte. Made static.
(i386_register_size): Renamed from i386_register_raw_size. Made
static.
(i386_register_virtual_size): Removed.
(i386_register_byte, i386_register_raw_size,
i386_register_virtual_size): New functions.
(_initialize_i386_tdep): Initialize i386_register_offset instead
of i386_register_byte. Remove code to initialize
i386_register_virtual_size.
* config/i386/tm-i386.h (REGISTER_BYTE): Redefine to use
i386_register_byte function.
(REGISTER_RAW_SIZE): Redefine to use i386_register_raw_size
function.
(REGISTER_VIRTUAL_SIZE): Redefine to use
i386_register_virtual_size function.
(i386_register_byte, i386_register_raw_size,
i386_register_virtual_size): New functions.
(REGISTER_NAME): New define.
(i386_register_name): New prototype.
* i386-tdep.c (i386_register_names): New variable.
(i386_register_name): New function.
* config/i386/tm-i386os9k.h, config/i386/tm-ptx.h,
config/i386/tm-symmetry.h: Undefine REGISTER_NAME instead of
REGISTER_NAMES.
loaded DLL matches the on-disk case since the debugging API does not seem to
ensure this. Calculate max name length here.
(handle_load_dll): Move max name length calculation to register_loaded_dll.
* somsolib.c (som_solib_add): A megabyte is 1024*1024 bytes.
* pa64solib.c (add_to_solist): Ditto.
* win32-nat.c (_initialize_inftarg): Remove unnecessary
initialization of auto_solib_add, it defaults to 1.
Changelog:
2001-10-27 Fred Fish <fnf@redhat.com>
* symfile.c (auto_solib_add): Update comment to note that
this variable is now just used as a boolean to control shlib
autoloading, and clarify when it is used.
* symfile.h (auto_solib_add): Ditto.
* symfile.c (auto_solib_limit): New variable that holds the
autoloading threshold instead of overloading auto_solib_add.
* symfile.h (auto_solib_limit): Ditto.
* irix5-nat.c (_initialize_solib): Change auto-solib-add
variable from var_zinteger to var_boolean and update help.
* osfsolib.c (_initialize_solib): Ditto.
* pa64solib.c (_initialize_pa64_solib): Ditto.
* solib.c (_initialize_solib): Ditto.
* somsolib.c (_initialize_som_solib): Ditto.
* xcoffsolib.c (_initialize_solib): Ditto.
* pa64solib.c (pa64_solib_total_st_size): Update comment to
note that the new auto_solib_limit variable is used instead
of overloading auto_solib_add variable.
(_initialize_pa64_solib): Ditto.
* somsolib.c (som_solib_total_st_size): Ditto.
(_initialize_som_solib): Ditto.
* pa64solib.c (_initialize_pa64_solib): Add new set/show
commands for auto-solib-limit variable.
* somsolib.c (_initialize_som_solib): Ditto
* pa64solib.c (add_to_solist): Check that auto_solib_add is
set and use auto_solib_limit as the threshold size instead
of auto_solib_add.
* somsolib.c (som_solib_add): Ditto, and also change warning
text about size threshold exceeded.
doc/ChangeLog:
2001-10-28 Fred Fish <fnf@redhat.com>
* gdb.texinfo (auto-solib-add): Change docs to match
implementation change.
(auto-solib-limit): Add docs for new variable.
(EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE, FRAME_CHAIN,
FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC, FRAME_NUM_ARGS):
Remove macros. The versions from "tm-i386.h" should work fine
(and in most cases even better).
convert_typed_floating to extract floating-point value from
register buffer.
(i386_store_return_value): Use convert_typed_floating to store
floating-point return balue in register buffer
(i386_register_virtual_type): Change type of floating-point
registers to builtin_type_i387_ext.
(i386_register_convert_to_virtual): Use convert_typed_floating to
do the conversion.
(i386_register_convert_to_raw): Likewise.
(floatformat_from_length): New function.
(NAN): Define to 0.0 if not already defined.
(extract_floating): Rewrite to use floatformat_from_length. Warn
instead of error if LEN doesn't match a known floating-point type,
and return NaN (or 0.0 if NaN isn't available) in that case.
(store_floating): Likewise, but zero out the target byte-stream if
LEN doesn't match a known floating-point type.
(extract_typed_floating): Reformat a bit.
(store_typed_floating): Reformat a bit. Add comment about zeroing
out padding in the target buffer.
* doublest.h (extract_floating, store_floating): Fix comment about
deprecation of these functions. Add parameter names to prototypes.
* cris-tdep.c (constraint): Loop through the whole cris_spec_regs
struct, not just the NUM_SPECREGS first entries.
(bdap_prefix): Read PC before autoincrement.
pointer to Windows' DebugSetProcessKillOnExit() function.
(DebugActiveProcessStop): Ditto for DebugActiveProcessStop().
(has_detach_ability): New function.
(child_attach): If system has detach ability, enable it.
(child_detach): If system has detach ability, actually
detach from process.
Change tty output to Linux format.
of `struct partial_symtab' to only a few locations. This change
is not supposed to affect the way the values are computed, only
where they live.
* dbxread.c (struct symloc): Add `textlow' and `texthigh' fields
to the reader-specific structure.
* mdebugread.c (struct symloc): Same.
* dbxread.c (TEXTLOW, TEXTHIGH): New accessor macros.
* mdebugread.c (TEXTLOW, TEXTHIGH): Same.
* dbxread.c (dbx_symfile_read): After we've built all our partial
symbol tables, set each partial symtab's `textlow' and `texthigh'
fields from our reader-specific structure.
* mdebugread.c (mdebug_build_psymtabs): Same.
* dbxread.c (start_psymtab): Initialize the reader-specific
structure's `textlow' and `texthigh' from the new psymtab's.
* mdebugread.c (parse_partial_symbols, new_psymtab): Same.
* dbxread.c (read_dbx_symtab, end_psymtab, read_ofile_symtab): Use
the reader-specific `textlow' and `texthigh', not the generic
psymtab fields.
* mdebugread.c (parse_lines, parse_partial_symbols,
psymtab_to_symtab_1): Same.
* partial-stab.h: Same.
already loaded DLL.
(register_loaded_dll): Convert loaded DLL name to "posix" format or it will
confuse subsequent opening of the filename due to dos paths.
(dll_symbol_command): Pass from_tty parameter to safe_symbol_file_add.
* lin-lwp.c (struct lwp_info): Add new member `cloned'.
(is_cloned) Removed.
(lin_lwp_attach_lwp): Don't call stop_wait_callback. Instead call
waitpid explicitly. Mark the LWP as cloned if waitpid fails and
retry with __WCLONE flag.
(lin_lwp_attach): Likewise. Warn if attaching to a cloned process.
(detach_callback): Replace use of is_cloned with explicit check on
LWP id and process id.
(stop_wait_callback): Replace use of is_cloned with check if LWP
is marked as cloned.
[CHILD_WAIT] (child_wait): New function.
(lin_lwp_wait): Replace use of is_cloned with check if LWP is
marked as cloned. Mark newly detected LWPs as cloned if detected
by waitpid with __WCLONE flag.
(kill_wait_callback): Replace use of is_cloned with check if LWP
is marked as cloned.
* config/i386/nm-linux.h (struct target_waitstatus): Add forward
declaration.
(child_wait): Add prototype.
(CHILD_WAIT): Define.
errors in "long long" handling for 'finish' and 'return' commands.
* win32-nat.c (safe_symbol_file_add_stub): Avoid adding a shared library if it
has already been loaded.
(safe_symbol_file_add_cleanup): Don't mess with stderr or we won't see any
error messages.
(safe_symbol_file_add): Ditto.
(solib_symbols_add): Make static. Accept 'from_tty' parameter. Pass it to
safe_symbol_file_add.
(core_dll_symbols_add): Accomodate extra solib_symbols_add parameter.
(child_solib_add): Ditto.
* win32-nat.c (handle_exception): Don't print "first chance" exceptions.
(get_child_debug_event): Continue from exceptions if !handle_exception.
* xcoffread.c (N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS, N_COMM, N_FN,
N_EXT, N_INDR, N_SETA, N_SETT, N_SETD, N_SETB, N_SETV,
CUR_SYMBOL_TYPE, CUR_SYMBOL_VALUE, START_PSYMTAB, END_PSYMTAB,
SET_NAMESTRING): Delete definitions.
Don't include language.h any more.
Don't include partial-stab.h any more.
(scan_xcoff_symtab): Don't jump through hoops to reuse code in
partial-stab.h, include the code directly, instead.
* Makefile.in (xcoffread.o): Remove dependency on partial-stab.h.
Changes by Daniel Berlin <dan@cgsoftware.com>, to support
better parsing of const and volatile type expressions.
* c-exp.y (const_and_volatile, const_or_volatile_noopt,
const_or_volatile): New non-terminals.
(ptype): Use new rule for const_or_volatile.
(typebase): Use new rule for const_or_volatile_noopt.
* parser-defs.h (enum type_pieces): New values tp_const, tp_volatile.
* parse.c (follow_types): Handle tp_const and tp_volatile on the
type stack: call make_cv_type to create new const/volatile type.
* config/i386/x86-64linux.mt: New file.
* config/i386/nm-x86_64.h: New file.
* x86-64-linux-tdep.c: New file.
* x86-64-linux-nat.c: New file.
* x86-64-tdep.c: New file.
* x86-64-tdep.h: New file.
* i386-tdep.h: New file.
* i387-nat.c: Include i386-tdep.h when multiarch.
* i387-tdep.c: Ditto.
* config/djgpp/fnchange.lst: Add entries for x86_64-linux-tdep.c
and x86_64-linux-nat.c
* Makefile.in: Add x86_64-linux-tdep.o, x86_64-tdep.o,
x86_64-linux-tdep.o, x86_64-nat.o, update dependencies.
negative.
(RETURN_MASK): Negate reason.
(catch_exception_ftype): Declare.
(catch_exceptions): Declare.
* top.c (catcher): New function, based on catch_errors. Add in
parameter func_uiout and out parameters func_val, func_caught and
func_cleanup. Change type of func to catch_exceptions_ftype.
Save/restore uiout.
(struct catch_errors_args): Define.
(do_catch_errors): New function.
(catch_errors): Rewrite, use do_catch_errors and catcher.
(catch_exceptions): New function, use catcher.
* rom68k-rom.c: #include "value.h".
(is_hex_digit, hex_digit_value, is_whitespace,
rom68k_supply_one_register): New static functions.
(rom68k_supply_register): Call rom68k_supply_one_register, instead
of monitor_supply_register; the latter was incorrectly parsing
the values.
* Makefile.in (rom68k-rom.o): Note that this now #includes value.h.
From Daniel Jacobowitz <drow@mvista.com>
* dbxread.c (free_header_files): Make global.
(init_header_files): Likewise.
* stabsread.h (free_header_files): Add prototype.
(init_header_files): Likewise.
* mdebugread.c (mdebug_build_psymtabs): Initialize
properly before using the stabs debug reader.
From Daniel Jacobowitz <drow@mvista.com>
* dbxread.c (dbx_symfile_read): Only reinitialize
the psymbol list if mainline or if both static
and global lists are empty.
* dwarf2read.c (dwarf2_build_psymtabs): Likewise.
* dwarfread.c (dwarf_build_psymtabs): Likewise.
* xcoffread.c (xcoff_initial_scan): Likewise.
* os9kread.c (os9k_symfile_read): Likewise.
gratuitious whitespace changes.
[!HAVE_SIGPROCMASK]: Call sigsetmask if HAVE_SIGSETMASK is defined.
* top.c: Remove redundant logic to define HAVE_SIGSETMASK.
(sigsetmask) Don't define macro.
(stop_sig) [HAVE_SIGPROCMASK]: Add bit of code snatched from
async_stop_sig from event-top.c.
[!HAVE_SIGPROCMASK]: Call sigsetmask if HAVE_SIGSETMASK is
defined.
* configure.in (AC_CHECK_FUNCS): Put functions in alphabetical
order. Add sigsetmask.
(AC_FUNC_VFORK, AC_FUNC_ALLOCA): Reorder such that they're in
alphabetical order.
* config/xm-aix4.h, config/alpha/xm-alphalinux.h,
config/i386/xm-cygwin.h, config/rs6000/xm-rs6000.h
(HAVE_SIGSETMASK): Remove.
* aclocal.m4, config.in, configure
assembler version of function.
(convert_from_extended, convert_to_extended): Rewrite. Use
floatformat_to_doublest, floatformat_from_doublest,
floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword.
(arm_push_arguments): Use extract_floating and store_floating to
perform floating point conversions.
(SWAP_TARGET_AND_HOST): Delete macro.
* arm-linux-tdep.c (arm_linux_push_arguments): Use
extract_floating and store_floating to perform floating point
conversions.
pointer to struct varobj*. This function can delete
varobjs, so we need to give callers the new varobj
when this happens.
(value_of_root): Update "var", too, if "var_handle"
changes.
* varobj.h (varobj_update): Likewise.
give us the absolute path to the source directory.
* configure: Regenerated.
* Makefile.in (GDBTK_SRC_DIR): Add variable so that
autoconf can substitue it in for us.
(gdbtk.o): Pass in GDBTK_SRC_DIR instead of srcdir. We
really do need an absolute pathname.
(GDBTK_LIBRARY): New variable to point to location where
gdbtk will install its tcl library. Changed all refereneces
to $(datadir)/insight1.0 to $(GDBTK_LIBRARY).
(SUBDIR_GDBTK_ALL): Remove "all-gdbtk". No longer needed.
(SUBDIR_GDBTK_CLEAN): Remove "clean-gdbtk". No longer needed.
(all-gdbtk): Remove.
(install-gdbtk): Remove.
(gdbtk.o): Pass srcdir to file when compiling.
Also from Ian Roxborough:
* Makefile.in: Changed all references to the install directory
"gdbtcl" to read "insight1.0".
H.J. Lu (hjl@gnu.org)
* partial-stab.h: valu should be a CORE_ADDR.
2001-08-14 H.J. Lu (hjl@gnu.org)
* dbxread.c (SWAP_SYMBOL): Removed.
(INTERNALIZE_SYMBOL): Check sign extended vma.