* target.h: Comments on target_attach args and results.
* infcmd.c (attach_command): Check for existing execution, call
target_attach, set up terminal status and wait_for_inferior, wait
for the attach status, and do normal_stop.
* inftarg.c (child_attach): Remove target independent stuff.
* remote-adapt.c (adapt_attach): Ditto.
* remote-mm.c (mm_attach): Ditto.
* remote-udi.c (udi_attach): Ditto.
* remote-vx.c (vx_attach): Ditto.
Cleanup.
* remote-hms.c (hms_attach): Remove completely, it was useless.
* remote-mm.c, remote-hms.c, remote-udi.c, remote-adapt.c: Remove
commented-out start_remote calls.
* remote-hms.c, remote-adapt.c, remote-mm.c, remote-udi.c: Remove
DENTER and DEXIT macros and their calls. Use a real debugger --
like gdb -- to see what functions are being called when.
fix to differentiate between gcc1 & gcc2 compiled files so that we
can debug calls that pass structs as args correctly.
* symmisc.c (dump_symtab): If block was compiled with gcc, say
so, and what version.
ANSI compiler warnings.
* energize.h: Move all external struct decls to inside of
__STDC__, add prototype for energize_shell_wait().
* energize.c (getpty): Clean up, make us really get a controlling
terminal.
* (energize_initialize): Disable SIGIO prior to setting up for
I/O interrupts. Move setsid(), et. al. to getpty().
* (energize_shell_wait): New routine to wait for things started
via the shell command, uses wait() instead of /dev/proc.
* Also, add prototype for execute_command_1().
child_mourn_inferior): collect unix child process stratum
functions which live below the target vector into this file to
facilitate host/target/native split. Also, make them static.
* inflow.c (child_mourn_inferior): removed.
* infrun.c (child_create_inferior, child_attach): removed.
(resume): becomes global so that functions below the
target vector can find it.
* inferior.h (resume): add prototype.
(child_mourn_inferior, child_create_inferior, child_attach):
remove prototypes.
process will be the default target.
* target.c (find_default_run_target, find_default_attach,
find_default_create_inferior, return_zero): new functions.
(cleanup_target): Make return_zero the default for to_can_run.
* exec.c (exec_ops), core.c (core_ops): Replace child_attach and
child_create_inferior references with find_default_XXX instead.
* target.h (struct target_ops): new field, to_can_run.
(find_default_attach, find_default_create_inferior): new prototypes.
(target_can_run): new macro.
* Also added a zero (default) to_can_run element to all static
struct target_ops initializations throughout GDB, except:
* inftarg.c (child_ops): Use new child_can_run() to enable child runs.
* infrun.c (child_create_inferior): Clean up error handling when
no exec file is specified.
(child_attach): Don't require exec file.
through the target vector.
* inferior.h (kill_inferior_fast): remove declaration.
* main.c (disconnect): call quit_cover using catch_errors rather
than calling kill_inferior_fast directly. New way goes through
the target vector, handles attached processes, and writes
command history if appropriate.
(quit_cover): new function, wrapper for quit_command.
* convex-xdep.c, go32-xdep.c, hppabsd-xdep.c, hppahpux-xdep.c,
infptrace.c, procfs.c: Removed all instances of kill_inferior_fast,
inlining them into the local kill_inferior when needed.
Mon Sep 21 14:54:35 1992 Ian Lance Taylor (ian@cygnus.com)
* m68k-pinsn (print_insn_arg, fetch_arg): added support for
operands to memory management instructions, from WRS.
Replace with simple default to C before processing any init
files. There MUST be a language set, even in the absence of
init files or executables, or expression parsing fails.
symfile.c. Fixup places where command files are processed to
be consistent in setting a default language if none has been
previously set.
* symfile.c (set_initial_language): Add code moved from
main() that sets an initial default language when a new
symbol file is read.
* symfile.c (symbol_file_command): Call set_initial_language.
* symtab.c (find_main_psymtab): Add FIXME comment.
* blockframe.c (get_prev_frame_info): If INIT_FRAME_PC_FIRST is
set, run it before INIT_EXTRA_FRAME_INFO.
* stack.c (frame_info): If PRINT_EXTRA_FRAME_INFO defined, call it.
* mips-tdep.c (init_extra_frame_info): Only clobber the `frame'
(FP) value in the frame_info struct if it is zero (as from top of
execution stack).
(setup_arbitrary_frame): Implement FRAME_SPECIFICATION_DYADIC.
* mips-xdep.c (fetch_inferior_registers): ZERO_REGNUM always
comes back as zero. So does FP_REGNUM, as a trigger for
init_extra_frame_info.
* tm-mips.h (INIT_FRAME_PC_FIRST): Kludge, FIXME, defined to get
the program counter set before INIT_EXTRA_FRAME_INFO is run.
(INIT_FRAME_PC): Defined to null.
(PRINT_EXTRA_FRAME_INFO): print frame pointer location via symtab.
(FRAME_SPECIFICATION_DYADIC): Ask for two args in frame command.
Briefly explain MIPS stacks in GDB.
Rich and I believe the "real problem" was that both single_step
and target_resume were issuing PT_CONTINUE calls. This would
cause the second PT_CONTINUE to sometimes fail because the process
was already running.
* infptrace.c (child_resume): Remove AIX_BUGGY_PTRACE_CALL kludge.
* infptrace.c (child_resume): Don't deal with NO_SINGLE_STEP
here; it is dealt with at a gdb-target-independent level.
* rs6000-tdep.c (single_step): Don't call ptrace, we are a
high toned routine. Fix return type to void.
before printing anything, and again afterward. Fix comments.
(vfprintf_filtered): Eliminate static buffer; use auto buffer,
or alloca() if needed.
* rs6000-xdep.c: Use correct conditional (IBM6000_TARGET) to
detect native versus cross-host.
termination condition.
(full_filename): Don't prepend dirname if filename begins with /.
(breakpoint_notify, kernel_dispatch): Deal with DynamicLoad
messages properly!!
(getpty (NCR)): Lotsa bug fixes...
(kernel_dispatch (case StopRType)): Use kill() instead of
killpg() so we can deal with losing systems...
(wait_for_events): Work around NCR select() lossage. It doesn't
zero out readfds when select() returns zero.
(energize_initialize): Use I_SETSIG to get SIGIO interrupts. Use
getcwd() instead of getwd() (NCR getwd() seg faults).
(energize_wait): Use sigaction() for NCR. Their version of signal()
is unreliable by default.
places where we must notify kernel of where the given pc is.
(cplus_demangle): Put single-quotes around demangled names.
(energize_call_command): Call send_location() after doing up,
down, and frame commands.
pass at doc for two new remote targets---29K using UDI, and Tandem
ST2000 using STDBUG.
* doc/all.m4, doc/none.m4: new m4 switch, _ST2000__
* doc/all.m4: turn on H8/300 stuff for generic manual
(REGISTER_U_ADDR): Fix up for Ultrix 4.2.
* tm-tahoe.h, xm-tahoe.h (KERNEL_U_ADDR): Move macro to xm-tahoe.h.
* stack.c (_initialize_stack): "dow" should be a valid abbreviation
for "down". Suggested by Richard Stallman.
store_inferior_registers): Replace unexplained numbers
with manifest constants from a DECstation header file.
* xm-mips.h (KERNEL_U_ADDR): Get from <machine/param.h>.
(REGISTER_U_ADDR): Fix up for Ultrix 4.2.
* tm-tahoe.h, xm-tahoe.h (KERNEL_U_ADDR): Move macro to xm-tahoe.h.
* stack.c (_initialize_stack): "dow" should be a valid abbreviation
for "down". Suggested by Richard Stallman.
* infptrace.c: HP/Apollos have ptrace.h in the wrong place.
* remote-st2000.c: Massive changes to use new serial package.
Also added 'connect' command to transparantly connect to serial
port.
* ser-termios.c: Big cleanup, use nicer coding conventions.
* ser-bsd.c: New module, serial stuff for BSD systems.
* serial.h: Define struct ttystate properly using HAVE_TERMIO.
* xm-apollo68b.h: #define PTRACE_IN_WRONG_PLACE...
* infptrace.c: HP/Apollos have ptrace.h in the wrong place.
* remote-st2000.c: Massive changes to use new serial package.
Also added 'connect' command to transparantly connect to serial
port.
* ser-termios.c: Big cleanup, use nicer coding conventions.
* ser-bsd.c: New module, serial stuff for BSD systems.
* serial.h: Define struct ttystate properly using HAVE_TERMIO.
* xm-apollo68b.h: #define PTRACE_IN_WRONG_PLACE...
* doc/gdb.texinfo: fix shameful error of agreement reported by
jimb@occs.cs.oberlin.edu (Jim Blandy)
* doc/gdb.texinfo: remove old partial discussion of remote serial
protocol (via serial debug stubs)
* doc/gdbinv-m.m4.in, doc/gdbinv-s.m4.in: new section discussing
use of serial debug stubs
should include a ser-XXX.o module.
* configure.in: Map unrecognized sun 68k's, sun sparcs, into
known suns in configure.in, rather than mapping them to unique
config files that happen to duplicate other config files.
* config/sun3.{mh,mt}: Remove (use identical sun3os4.*).
* config/sun4.{mh,mt}: Remove (use identical sun4os4.*).
* serial.h (EXFUN): Remove all uses, convert to PARAMS.
* config/sun4os4.mh: Include ser-termios.o. FIXME, all .mh files
should include a ser-XXX.o module.
* dbxread.c (elfstab_build_psymtabs): Remove DEFUN crap.
* defs.h, i960-pinsn.c, remote-hms.c: Replace CONST with simple const.
* configure.in: Map unrecognized sun 68k's, sun sparcs, into
known suns in configure.in, rather than mapping them to unique
config files that happen to duplicate other config files.
* config/sun3.{mh,mt}: Remove (use identical sun3os4.*).
* config/sun4.{mh,mt}: Remove (use identical sun4os4.*).
sub-variants of SunOS, e.g. sunos4* to match sunos4.1.1.
(sparc-*-sunos3): Remove host & target. Sunos3 never shipped
in production on Sun-4.
({a29k,i[34]86,i960}-*-elf): Add targets, equivalent to coff.
(m68k-*-{aout,coff,elf}): Add targets, w/new config and tm files.
(sparc-*-{aout,coff,elf}): Add targets, w/new config and tm files.
* tm-68k-un.h, tm-68k-noun.h, tm-spc-un.h, tm-spc-noun.h: New
target definitions for embedded with and without underlines on
identifiers. FIXME -- this ought to be known by BFD instead.
* tm-sparc.h, tm-sun2.h, tm-sun3.h: Delete NAMES_HAVE_UNDERSCORE:
not a parameter of the CPU, but of the development environment.
* tm-es1800.h, tm-sunos.h, tm-vx68.h: Add NAMES_HAVE_UNDERSCORE.
language for current compilation unit being processed.
* dwarfread.c (set_cu_language): New local function to decode
and record language for current compilation unit being processed.
* dwarfread.c (synthesize_typedef): Add local function to
synthesize a typedef for C++ classes, structs, unions, and
enumerations.
* dwarfread.c (read_structure_scope): Synthesize typedefs
for C++ classes, structs and unions.
* dwarfread.c (read_enumeration): Synthesize typedefs for
C++ enumerations.
* dwarfread.c (read_file_scope): Call set_cu_language to
record language for current compilation unit. After symtab
is built, save this recorded language.
* dwarfread.c (process_dies, add_partial_symbol, struct_type,
scan_partial_symbols, new_symbol): Recognize TAG_class_type.
* dwarfread.c (add_partial_symbol): Synthesize partial symbol
typedefs for C++ classes, structs, unions, and enumerations.
* dwarfread.c (scan_compilation_units): Call set_cu_language
to record language for current compilation unit.
* dwarfread.c (scan_partial_symbols): Call add_enum_psymbol here
for TAG_enumeration_types, rather than in add_partial_symbol.
* dwarfread.c (add_partial_symbol): Combine TAG_enumeration_type
case with class, struct, and union type cases, now that they are
the same. Remove tests for non-NULL name attributes, now done
by callers.
* gdbtypes.h (TYPE_CODE_CLASS): Add type for C++ classes, but
treat as alias for TYPE_CODE_STRUCT for now.
(supply_gregset, fill_gregset, supply_fpregset, fill_fpregset):
Use "regi" for local indexing through register numbers, reserving
"regno" for the name of a specific register passed as an input
parameter. Fix bug propagated through all versions that sometimes
used regno as an index when it should have been regi, thus using
-1 as an index in some cases.
respectively, so same demangler can be used by other programs.
* Makefile.in: Remove demangler stuff.
* Makefile.in (depend): Pass -I../readline (needed for main.c).
* demangle.c (_initialize_demangler): Tell demangler which
CPLUS_MARKER to assume.
follow the consistent pattern of struct work_stuff pointer first,
followed by pointer into string being demangled, followed by
pointer to the string where the result is being stored, followed
by other args. Also generally replace most variables of name
"type" with "mangled" for consistency. They all pointed to the
same string but half were one name and half the other.
* cplus-dem.c (LONGERNAMES): Remove #ifndef's.
* cplus-dem.c (demangle_qualified): Rewrite to clean up and allow
use whenever a qualified name is being demangled.
* cplus-dem.c (do_type): Qualified names are treated similarly
to fundamental types, not as modifiers of fundamental types.
WARNING: (1) this has not yet been proofread as a printout---just eliminated
problems that TeX complained about.
(2) extraneous line breaks introduced in some examples, sometimes
in ridiculously long strings; this may falsify examples. Places
where I did this are marked by FIXME comments.
1) use makeinfo node defaulting
2) correct bad xref
3) use @display, @exdent, etc. as first approximation to Julia's
clever typewriter markup; **THIS WILL NEED STUDY AND REVISION**
4) introduce many nodes rather than ---- in "detailed reference" appendix
numbers, signal number ranges, and to recognize "all" to mean all
signals except those used by the debugger.
* infrun.c (SET_SIGS, UNSET_SIGS): Macros used in handle_command
to set or reset actions for specific signals.
types.
* stabsread.c (read_array_type, read_range_type, define_symbol):
Call alloc_type to alloc new types.
* stabsread.c (define_symbol): Move dbl_valu symbol field data
from type_obstack to symbol_obstack.
* stabsread.c (define_symbol): Move typedef_sym from type_obstack
to symbol_obstack.
* gdbtypes.h (TYPE_ALLOC): New macro to allocate space for data
associated with a type, using the same mechanism as was used to
allocate space for the type structure itself.
* coffread.c (patch_type, coff_read_struct_type,
coff_read_enum_type): Use TYPE_ALLOC.
* dwarfread.c (struct_type): Use TYPE_ALLOC.
* gdbtypes.c (create_array_type, check_stub_method,
allocate_cplus_struct_type): Use TYPE_ALLOC.
* mipsread.c (parse_symbol, parse_type): Use TYPE_ALLOC.
* stabsread.c (read_struct_type, read_array_type, read_enum_type,
read_range_type): Use TYPE_ALLOC.
symtab if one is not currently selected.
* utils.c (query): Call wrap_here before building the output
query string, to turn off wrapping and flush any buffered output.
Otherwise our query may end up in the wrap buffer and never be
seen by the user.
* eval.c (evaluate_subexp): Report error when attempting to
evaluate subscript for types without a target type, rather
than dumping core by using the NULL pointer.
* symfile.c (symbol_file_command): Forget current_source_symtab
and current_source_line when discarding symbol table.
work. (remote_wait): Change 'T' message parser to deal with new
improved format which allows stub to send an arbitrary bunch of
registers.
* sparc-stub.c: General cleanups. (trap_low, handle_exception):
make all this re-entrant by storing all state on the stack. Clean
up memory error trapping. (computeSignal, set_debug_traps):
make it all table driven. Make a start at a baud rate setting command.
* remote-vx.c: redefine malloc to avoid buggy declaration on
RS/6000 <rpc/types.h>.
xm-rs6000.h: include <sys/select.h> to define fd_set for
<rpc/svc.h> on RS/6000.
* gdbinv-s.m4.in: refrain from using @cartouche for just a few
examples (not consistent w others).
gdb.texinfo: issue disclaimer paragraph on cmdline options only
for generic vn of doc
Tue Aug 18 14:48:24 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in: added FLAGS_TO_PASS variable, and passed it to
recursive invocations of make. Always create installation
directories.
* gdb.texinfo, none.m4, h8.m4, gdbinv-s.m4.in: improve H8/300
conditionals; introduce a few generic switches that may be
useful for other cross-dev or dos-hosted configs.
* gdb.texinfo: fix typo in "info reg" description
application, and it will speak GDB remote protocol!
* remote.c (remote_wait): Change 'T' (expedited reply) message to
deal with arbitrary registers. Needed for sparc-stub,
use throughout, in place of compile time constant CPLUS_MARKER.
* cplus-dem.c (ARM_VTABLE_STRING, ARM_VTABLE_STRLEN): Add.
* cplus-dem.c (cfront_special): New function, as suggested
by pfieland@stratus.com.
* cplus-dem.c (forget_types): New function.
* cplus-dem.c (cplus_demangle): Call gnu_special, moved from
demangle_prefix().
* cplus-dem.c (mop_up): Call forget_types().
* cplus-dem.c (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING):
Use throughout, instead of checking current_demangling_style.
* cplus-dem.c (demangle_signature): When finding an explicit
start of function args, forget all remembered types for
lucid/cfront style demangling.
* cplus-dem.c (demangle_prefix): In a sequence of two or more
underbar characters, use last pair as the delimiter. Hoist
gnu_special() call up to cplus_demangle(). Call cfront_special()
when appropriate.
* cplus-dem.c (cplus_special): Fix virtual table name demangling
for inherited classes.
* cplus-dem.c (demangle_args): Document quirks of numbered
references to previously seen types.
* dbxread.c (read_ofile_symtab, process_one_symbol):
Use AUTO_DEMANGLING rather than explicitly checking
current_demangling_style.
* demangle.h: Add some comments.
* demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING,
CFRONT_DEMANGLING): New macros.
* dwarfread.c (LCC_PRODUCER): Remove trailing space, which is
not found in the actual producer string produced by lcc.
* dwarfread.c (handle_producer): Use AUTO_DEMANGLING rather
than explicitly checking current_demangling_style.
disable_longjmp_breakpoint, set_longjmp_resume_breakpoint):
Check for duplicate breakpoints at the same address. Bug report
and preliminary fix from Dave Morrison, <drmorris@us.oracle.com>.
NULL under non-error conditions.
* dwarfread.c (read_file_scope): Guard against dereferencing NULL
returned from end_symtab for empty compilation units.
* am29k-tdep.c: Lint from DECstation compiler.
* mem-break.c: Restore test of BREAKPOINT size that Fred removed.
As the man page says, "Sometimes you just can't get lint to shut
up". That doesn't mean you should blow away the code it won't
shut up about.
* mips-xdep.c: Revise stubbing-out of code until Rich cleans
it up over the next few weeks. Make mips x 29k build.
* tm-29k.h (CALL_DUMMY): Make it work on cross-endian hosts.
(FIX_CALL_DUMMY): Comment in the patching of the breakpoint,
but leave it as a comment because the breakpoint instruction
is not easily accessible at this moment (it's static, and if
we define one here, it goes into every file compiled).
* dwarfread.c (scan_partial_symbols): Skip over DIE's within
function scopes when building partial symbol tables.
* objfiles.c (open_existing_mapped_file): Make it clear in
warning message that out of date mapped files are ignored.
* symtab.c (lookup_symtab_1, lookup_symbol): Print compilation
unit source file name in error message.
* dwarfread.c (struct_type): In absence of AT_byte_size for
bitfield, use size of object of member's type for the size of
the anonymous object containing the bit field.
* dwarfread.c (completedieinfo): Set has_at_byte_size when
an AT_byte_size attribute is seen.
* mipsread.c (psymtab_to_symtab_1): Fix misspelled cast to
union aux_ext (was aux_ent).
* i386-pinsn.c (print_insn): Cast 2'nd arg to read_memory from
unsigned char* to char*, for Lucid compiler.
* i386-tdep.c (codestream_fill): Fix cast of 2'nd arg to read_memory
to be correct type (from unsigned char* to char*).
* valprint.c (type_print_derivation_info): Minor tweak to placement
of commas in derived class printing.
* xcoffread.c (builtin_type): Fix misspelling in fatal message.
* serial.c (find_source_lines): if LSEEK_NOT_LINEAR is defined
then work out the lseek positions of newlines by running through
the file and `tell'ing. This makes source file listing work on
OS's where the relationship between physical position in file and
canonical position is indeterminate, eg VMS and DOS.
* valprint.c (type_print_derivation_info): Print derivation info
in same form as class declarations in source.
* valprint.c (type_print_varspec_suffix): Split arg printing
code out to type_print_args function.
at_import, at_frame_base.
* dwarfread.c (completedieinfo): Remove cases for obsolete
AT_visibility, AT_import, and AT_frame_base attributes.
* breakpoint.h (BREAKPOINT_MAX): Increase from 10 to 16 for
i860, which can keep up to 4 shadow breakpoints.
* tm-stratus.h (USG): Define.
* tm-stratus.h (TARGET_BYTE_ORDER): Define to BIG_ENDIAN.
* xm-stratus.h (HOST_BYTE_ORDER): Define to BIG_ENDIAN.
* xm-stratus.h (xm-sysv4.h): Include, name changed from xm-svr4.h.
* xm-stratus.h (NO_JOB_CONTROL): Remove define.
* config/stratus.mt (TDEPFILES): Include files available from
stratus that are not yet in release pending receipt of paperwork
at FSF.
* buildsym.c (finish_block): Minor code format change.
* gdbtypes.h (struct field): Add to comments.
* gdbtypes.h (virtual_field_bits): Add to comments.
* objfiles.c (allocate_objfile): Change obstack interface to
match FSF merging efforts.
* inflow.c (terminal_init_inferior, terminal_inferior,
terminal_ours_1, initialize_inflow): Record and use state
of lmode_inferior_valid and lmode_ours_valid.
with alloca, to avoid using random values from stack later on.
* defs.h (fprintf_filtered): Add prototype.
* gdbtypes.c (check_stub_method): Fix misleading comments.
* gdbtypes.c (print_arg_types, dump_fn_fieldlists): New maint
support functions.
* gdbtypes.c (print_cplus_stuff, recursive_dump_type): Many
small changes to maint support functions.
* gdbtypes.h (cplus_struct_type): Reorganize member ordering
for some fields and expand comments.
* objfiles.c (allocate_objfile): Use new obstack_alloc_arg
macro and track change to obstack_full_begin macro.
* utils.c (fprintfi_filtered): New function.
* valprint.c (type_print_base): Fixup field printing to not
print extraneous lines and not print bogus "no data fields"
messages for C++ classes with no data members. Also use new
fprintfi_filtered function.
error if it fails to find a member type, rather than return NULL
and trigger a coredump.
* symtab.c (lookup_symbol, lookup_demangled_block_symbol,
lookup_demangled_partial_symbol,): Ask demangle_and_match to
match on complete demanglings, including argument lists for member
functions, rather than just accepting the first demangling that
matches the class and function name.
to start_symtab as the directory name.
* dwarfread.c (completedieinfo): Strip off any leading hostname
portion of the AT_comp_dir attribute string. Gdb doesn't know
what to do with them (FIXME).
automatically select demangling style.
* demangle.c (DEFAULT_DEMANGLING_STYLE): Rename from simply
DEMANGLING_STYLE, to make more descriptive. Revert back to
"auto" as default. Comment use.
* Makefile.in (DEMANGLING_STYLE, DEMANGLE_OPTS): Remove.
* Makefile.in (${DEMANGLER}.o) Remove target and special
compilation rule.
demangling style for C++. Defaults to "auto".
* Makefile.in (DEMANGLE_OPTS): Use DEMANGLING_STYLE.
* Makefile.in (SFILES_MAINDIR): Add demangle.c
* Makefile.in (OBS): Add demangle.o
* cplus-dem.c (GNU_DEMANGLING, ARM_DEMANGLING, LUCID_DEMANGLING):
Remove compile time decisions about demangling style and replace
with runtime decisions using current_demangling_style.
* cplus-dem.c (main): Expand code included during building of
standalone demangler to recognize demangling style options.
* dbxread.c (demangle.h): Include.
* dbxread.c (read_ofile_symtab, process_one_symbol): Set GNU C++
demangling style if processing g++ code and current demangling style
is auto (Note: this feature currently disabled.)
* demangle.c: New file, generic demangling control.
* demangle.h (demangling_styles): New enumeration to select one
of several demangling styles. Also define string names for each
style.
* demangle.h (set_demangling_style): Add prototype.
* dwarfread.c (demangle.h): Include.
* dwarfread.c (GPLUS_PRODUCER, LCC_PRODUCER, CFRONT_PRODUCER):
New producer string prefixes to recognize.
* dwarfread.c (handle_producer): Consolidate actions for specific
producers. Set demangling style based on producer string if
current style is auto. (Note: this feature currently disabled.)
* config/ncr3000.mt (DEMANGLE_OPTS): Remove.
NOT full config doc) and xref to configure.info
(2) add brief mention of --help and --prefix=DIR configure options
(3) re-enable, with new command names, old doc for commands now
reorganized into maint. (NO new doc yet for new maint commands or for
old undoc'd dump-me; nor for "maint" itself in general.)
(2) [temporarily, until "maint" details avail] hide explanations of commands
moved to "maint" so we don't risk releasing doc with obsolete names:
printsyms, printmsyms, printpsyms, info all-breakpoints.
* c-exp.y: Call lookup_signed_typename() after seeing
"signed". This handles "signed char" correctly.
* c-exp.y: Recognize (but ignore) 'const' and 'volatile'
keywords before a type specifier.
* gdbcmd.h (maintenanceprintlist): Add declaration.
* main.c (maintenanceprintlist): Add definition.
* main.c (gdb_completer_command_word_break_characters): Add.
* main.c (symbol_completion_function): Switch completer word
break character sets dynamically, based on whether completion is
being done on commands or on something else.
* main.c (initialize_cmd_lists): Init maintenanceprintlist.
* maint.c: Include demangle.h.
* maint.c (maintenance_demangle): New function.
* maint.c (maintenance_print_command): New function.
* maint.c (_initialize_maint_cmds): Reorganize some commands
under new maintenance print subcommand.
to create new blank types, instead of handcrafting them.
* defs.h (printfi_filtered): Add prototype.
* utils.c (printfi_filtered): New function.
* gdbtypes.c (recursive_dump_type): Use printfi_filtered to
to simplify the code. Other cleanups.
* gdbtypes.c (check_stub_method): Demangle using DMGL_ANSI.
* gdbtypes.h (struct cplus_struct_type): Add comments describing
use of various fields.
* gdbtypes.c (print_bit_vector, print_cplus_stuff): New functions.
* c-exp.y (%token): Add CLASS as a token for C++, add grammar
production that currently treats it exactly the same as STRUCT.
* c-exp.y (yylex): Recognize "class" as token CLASS.
* symtab.c (gdb_mangle_name): Rewrite to match current g++ stabs.
* symtab.c (decode_line_1): Fix to pass quoted args on down to
general symbol handling code. Call cplus_mangle_opname with
DMGL_ANSI.
* symtab.c (decode_line_2): Print demangled function names in
breakpoint menus, instead of just file and line number.
* symtab.c (name_match): Call cplus_demangle with DMGL_ANSI.
* valprint.c (type_print_base): Print "class" for C++ classes,
rather than "struct". Print section labels for public, protected
and private members of C++ classes.
* values.c: Include demangle.h.
* values.c (value_headof): Call cplus_demangle with DMGL_ANSI.
prevent crashes when examining cross-targets.
* dbxread.c (process_one_symbol): Include directory name when
calling start_subfile for SOL & BINCL symbols. This allows gdb to
find include files, and yacc/lex sources when the cwd doesn't match
that in which the object was compiled.
* objfiles.h (ALL_MSYMBOLS): Don't seg fault when there are no
msymbols.
* symtab.c (lookup_symtab_1): Rewrite. It now handles include
files.
* Makefile.in (SFILES_MAINDIR): Add new file maint.c.
* Makefile.in (OBS): Add new file maint.o.
* defs.h (command_class): Add class_maintenance.
* defs.h (MAINTENANCE_CMDS): Default to including maintenance
commands. Allow for them (and other nonessential parts of gdb)
to be selectively left out under special circumstances.
* gdbtypes.c (recursive_dump_type): New function; supports
maintenance print-type command.
* gdbtypes.h (recursive_dump_type, maintenance_print_type):
Add prototypes.
* main.c (maintenancelist, maintenanceinfolist): Add maintenance
command lists.
* main.c (initialize_cmd_lists): Eliminate unnecessary casts on
initializers. Add initializations for setprintlist, showprintlist,
setchecklist, showchecklist, maintenancelist, and maintenanceinfolist.
* printcmd.c (maintenance_print_type): New maintenance cmd.
* valprint.c (setprintlist, showprintlist): Move to main.c, as
implied by comment that all cmd lists are owned by main.c.
* infcmd.c (unsetlist): Move to main.c, as implied by comment
that all cmd lists are owned by main.c.
* language.c (setchecklist, showchecklist): Move to main.c, as
implied by comment that all cmd lists are owned by main.c
* breakpoint.c (enablelist, enablebreaklist, disablelist, cmdlist,
deletelist): Remove redundant declarations (also in gdbcmd.h).
* symmisc.c (printsyms_command): Now maintenance_print_symbols.
* symmisc.c (printmsyms_command): Now maintenance_print_msymbols.
* symmisc.c (printpsyms_command): Now maintenance_print_psymbols.
* symmisc.c (printobjfiles_command): Now maintenance_print_objfiles.
* symtab.h (maintenance_print_symbols, maintenance_print_psymbols,
maintenance_print_msymbols, maintenance_print_objfiles):
Add prototypes.
* symmisc.c (printsyms_command, printpsyms_command,
printmsyms_command, printobjfiles_command): Removed from
_initialize_symmisc.
* main.c (dump_me_command): Moved to maint.c and renamed to
maintenance_dump_me.
* breakpoint.c (all_breakpoints_info): Rename to
maintenance_info_breakpoints.
* breakpoint.c (_initialize_breakpoint): Convert add_info of
all_breakpoints_info to add maintenance_info_breakpoints to the
maintenanceinfolist instead.
main.c (initialize_main): Set up maintenance class commands.
* cplus-dem.c (demangle_args): Validate index for previously
seen type to guard against bogus values from malformed manglings.
* valops.c (value_struct_elt_for_reference): Guard against
blindly using NULL return value from lookup_symbol.
energize-patches. Change all routines and variables named
'cadillac*' to 'energize*'. Create new file called energize.h to
hold all interface declarations.
* deblib/connection/*: Move all of this stuff into energize/, but
delete unneeded files.
energize-patches. Change all routines and variables named
'cadillac*' to 'energize*'. Create new file called energize.h to
hold all interface declarations.
* dbxread.c (process_one_symbol): Parse N_OPT "gcc2_compiled.".
* procfs.c (proc_set_exec_trap): Set run-on-last-close flag on
child processes, to avoid dead ones "hanging around" after GDB exits.
(attach): Always stop the process if it needs it. Set RLC flag
when attaching running processes, so it will continue if we detach
it, quit, or are killed.
(detach): Clear faults and set RLC flag to make process run
when we close it.
(open_proc_file): New `mode' argument for O_RDONLY or O_RDWR.
Callers changed.
(info_proc): Open process O_RDONLY, so we can see any process,
even those controlled by debuggers.
* tm-sun4sol2.h (SUN_FIXED_LBRAC_BUG): They did (in Sol 2).
single `addr' or `offset'. This makes Solaris-2 support work, and
permits better VxWorks (and maybe xcoff) support later.
* dbxread.c: Conforming changes.
(struct dbx_symfile_info): Move to gdb-stabs.h.
(start_psymtab): Call elfstab_offset_sections to calculate good
offsets for this source file, based on the ELF symbol table info.
(read_ofile_symtab): Yank N_CATCH, which is dead.
(process_one_symbol, N_CATCH): Yank.
(", N_FUN, N_FNAME, N_FN, N_FN_SEQ, N_SO, N_SOL, N_ENTRY):
Relocate with SECT_OFF_TEXT.
(", N_STSYM, N_LCSYM, N_ROSYM): Grope around in the stab string
to distinguish relocatable from absolute symbols. Then, if not
absolute, do:
(", N_STSYM, N_DSLINE): SECT_OFF_DATA.
(", N_LCSYM, N_BSLINE): SECT_OFF_BSS.
(", N_ROSYM): SECT_OFF_RODATA.
(elfstab_build_psymtabs): Caller has allocated dbx_symfile_info.
(dbx_symfile_offsets): Add to translate addr to offset.
the argv arguments (e.g. reading symbol files or core
files). This allows global parameters to be set, which will apply
during the symbol reading. The ./.gdbinit is still read after
argv processing.
* symtab.c (list_symbols): `i variables' shouldn't show enum values.
* partial-stab.h: Ignore N_ENDM.
* elfread.c (elf_symtab_read): Ignore symbols that don't have a
CODE or DATA section attachment. This eliminates a lot of random
values from shared libraries, which screw up the ordinary symbols
in the address ranges they happen to overlap.
* buildsym.c (define_symbol): Eliminate special tests
for function types; move into "function" cases in switch statement.
(define_symbol: 'f', 'F', 'P'): Process all parameter types
in case they define new type numbers. But ignore them (FIXME).
('k', 'B'): Ignore const and volatile if we see them (FIXME).
(read_sun_builtin_type): Add commentary.
* tm-mips.h (GDB_TARGET_IS_MIPS): Define for mips-xdep.c.
(READ_MIPS_FORMAT, COFF_FORMAT): Remove, unused now.
* mips-xdep.c: Remove most include files (unused, caused errs).
(fetch_core_registers): Use right parameters in dummy fn.
Fix from Jim Williams.
* stack.c (return_command): Evaluate expression *before* popping
off the stack frames! Fix inspired by Jim Williams.
(up_silently_command, down_silently_command): No sel frame is error.
* defs.h (memcpy, memset): Conditionalize decls on
#ifndef MEM_FNS_DECLARED, since DECstation differs.
(alloca): Break out the STDC and non-STDC alloca cases, to make
it work on old preprocessors as well as "picky ANSI" ones.
* xm-mips.h (memcpy, memset): Declare, and set MEM_FNS_DECLARED.
* mips-tdep.c (heuristic_proc_start): Zero arg produces zero.
* utils.c (fputs_demangled): Rename SLOP since DECstation system
header files define it!
symtab.h, tm-i386v4.h, valprint.c, values.c: Lint.
* breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c,
findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c,
putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h,
utils.c, valarith.c, valops.c, valprint.c, values.c:
Replace bcopy() use with memcpy(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c,
ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h,
target.c, values.c:
Replace bzero() use with memset(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* i386-tdep.c, main.c, valprint.c:
Replace bcmp() use with memcmp(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* defs.h (alloca): More diddling with alloca. Have to ensure
that it has a prototype, so that if alloca is defined as a macro
that takes an arg, the definition is seen as a use of a macro
that takes an arg, to satisfy picky ANSI preprocessors.
consistency with all other gdb files.
* cadillac.c: Use <string.h> rather than <strings.h>.
* cadillac.c (kernel_dispatch): Convert rindex usage to strrchr.
* Makefile.in (MAKE): Remove definition for consistency with
other Makefile.in files and to fix problem with recursive makes.
conditional.
* hppabsd-core.c: Don't include "param.h", include <sys/param.h>
instead.
* remote.c (remote_wait): Cast signal to void * to avoid warning
from busted HP compiler.
* gdbtypes.c (init_type): Use copy of typename on type_obstack.
* dwarfread.c (enum_type): Save enum names on type_obstack.
* dwarfread.c (struct_type): Save member name on type_obstack.
* symtab.c (_initialize_symtab): Fix misspelling.
* regex.c (store_jump, insert_jump): Return void.
detecting start of new symbol info after reading symtab for a
module with a zero length TEXT segment.
(Note that this fixes the BNR problem with printing vxWorksVersion. That ought
to make Ken happy).
* coffread.c (coff_end_symtab): Cast 2nd arg of complain() to
correct type.
* defs.h (NORETURN): Define away for Lucid compiler.
* remote.c (remote_timer, remote_interrupt): Signal handlers
take one int arg.
* ser-termios.c (serial_write, serial_close): Return whatever
value the write/close call returns, rather than falling off end.
* inferior.h (PTRACE_ARG3_TYPE): Third arg to ptrace is int on
more systems than it is "char *". Define PTRACE_ARG3_TYPE to
default to int.
* infptrace.c, hppabsd-xdep.c, hppahpux-xdep.c, i386-xdep.c,
inferior.h (call_ptrace): Use PTRACE_ARG3_TYPE to declare type
of third arg.
* a68v-xdep.c, arm-xdep.c, convex-xdep.c, hp300ux-xdep.c, infrun.c,
m88k-xdep.c, mach386-xdep.c, mips-xdep.c, os68k-xdep.c, pyr-tdep.c,
pyr-xdep.c, rs6000-xdep.c, sparc-xdep.c, sun3-xdep.c, sun386-xdep.c,
symm-xdep.c, ultra3-xdep.c: Use PTRACE_ARG3_TYPE to cast ptrace
argument 3.
* sparc-xdep.c, a68v-xdep.c (fetch_inferior_registers,
store_inferior_registers): Supply missing fourth argument to
ptrace().
appendix (too hard to maintain, esp w/recent versions of config.sub).
Also corrected xref to this section accordingly.
(2) updated sample output from config.sub to match latest variation of
that script
(3) minor editing to gnu contrib text on set/show remotedebug
* Use prototypes for all interface routines (fix bugs found as a result of
doing so).
* Make full_filename more robust in the face of null dirname/filenames.
* Get pty at startup instead of at child creation time. Put GDB descriptors
0, 1 and 2 on it so that we can see the output of shell commands.
* Get rid of prompt(), use print_prompt() instead. Fixes loads of stupid
prompting problems.
* dwarfread.c (enum_type): Fix misspelling in comment.
* valprint.c (val_print_fields, cplus_val_print): Minor
adjustment to printing of C++ class structures to more closely
match format for printing C structures, with and without setting
pretty print.
(which is not a Posix signal) if it isn't defined.
* tm-linux.h, xm-linux.h, config/linux.m[ht], configure.in:
New port to Linux (a free Unix clone for 386 machines).
* coffread.c (record_minimal_symbol): Pass the minsym type to it.
Callers changed.
(coff_end_symtab): Sort blocks if needed. Complain if misordered.
(read_coff_symtab): Move patch_opaque_types call from
coff_symfile_read. Restrict it to symtabs from this objfile.
(process_coff_symbol: C_TPDEF): Don't put ordinary foward
references on opaque type chain; just let coff_lookup_type handle 'em.
(decode_type): Complain about tagndx values on
non-struct/union/enum types, which the EPI compiler tends to produce.
* symtab.c (list_symbols): Make minimal symbol variable-finding work.
* tm-68k.h (FIX_CALL_DUMMY): Avoid alignment and byte order
dependency.
* elfread.c (elf_symfile_read): Update bfd_elf_find_section
usage to match new prototype. Include libbfd.h to get prototype.
declarations of malloc/realloc/free that are inserted by some
versions of yacc.
* m2-exp.y: Prevent conflicts with TRUE and FALSE tokens by
#undeffing them.
* xm-rs6000.h: Declare malloc/realloc/free appropriately. Yet
another decl of strdup (this really ought to come from libiberty.h!).
(_initialize_remote): `set remotedebug' enables packet trace.
* dbxread.c (process_one_symbol:N_FUN): GCC now produces relative
N_SLINE's, etc, just like Sun cc on Solaris2.
* am29k-tdep.c (read_register_stack, write_register_stack):
Change RSTACK_HIGH_ADDR to rstack_high_address, a user-settable
variable. Add `set' and `show' commands for it.
* doc/gdb.texinfo: Document it.
* eval.c: Avoid residue-by-zero when evaluating without side effects.
(Bug and fix found by Pierre Willard.)
* sparc-tdep.c: Clean up slightly for Solaris2.
C++ syms as demangled, not just functions.
* buildsym.c (read_range_type): When we find a signed char
type, do a lookup of signed char, not plain char. Plain char's
still get looked up as plain char's elsewhere.
* xm-sun3os4.h: Define MALLOC_INCOMPATIBLE to avoid conflicts
with decls of malloc in c-exp.tab.c (as produced by yacc).
There's got to be a better way to do this...
* mipsread.c, dbxread.c: Remove troublesome inclusion of non-
standard <strings.h> file, now that the only single use of
rindex in the gdb source files is gone.
which #defines index to be strchr. Unfortunately, index is
a member of a symbol table structure that can't be changed.
* mipsread.c: tm-mips.h includes coff/symconst.h and coff/sym.h,
remove redundant #include's.
* symtab.c (decode_line_1): Until C++ support stabilizes, when
C++ lookups fail, print possibly helpful hint about completion.
* cplus-dem.c (demangle_signature): Fix ARM style demangling
for static data members.
* dbxread.c (dbx_psymtab_to_symtab_1): Fix prototype.
* config/ncr3000.mh (INSTALL): Don't use /usr/ucb/install,
it's broken on ncr3000's.
Change 'modifier' to char from unsigned char. Cast single use
that needs to be unsigned char.
* symtab.h (SYMBOL_BASEREG_VALID): Explain disabling.
* utils.c (strdup_demangled): Add function.
* defs.h (strdup_demangled): Add prototype.
* stack.c (return_command): Demangle C++ function names for query.
* infcmd.c (jump_command): Demangle C++ function names for query.
* cplus-dem.c (consume_count): New function and prototype.
* cplus-dem.c (demangle_class, gnu_special, demangle_func_type,
do_type): Replace conversion code with consume_count().
* cplus-dem.c (gnu_special): Fix demangled of static members.
* source.c (list_command): Print demangled function names
when appropriate. Fix supplied by Peter Schauer.
* xm-sun4sol2.h (gregset_t): Thinko in register set definition.
* symtab.h: Disable SYMBOL_BASEREG_VALID until it works.
* dbxread.c (dbx_psymtab_to_symtab_1): Renamed from
psymtab_to_symtab_1. Use current psymtab's sym_offset and symbol_size,
rather than the one for the first file in the dependency chain.
set. Don't reset our own texthigh, or dependency-only pst's, in
scanning all the rest of the psymtabs.
(process_one_symbol): Fix comments around N_OBJ, N_OPT, N_UNDF.
* buildsym.h (N_UNDF): Improve comments.
(N_LSYM, etc): Skip types without names (":T(0,3)=sfoob...").
an additional per-symbol value.
* symtab.h (SYMBOL_BASEREG, SYMBOL_BASEREG_VALID): Add defines.
* frame.h (FRAME_GET_BASEREG_VALUE): Provide default definition.
* findvar.c (read_var_value): Use SYMBOL_BASEREG if valid.
* printcmd.c (address_info): Use SYMBOL_BASEREG if valid.
* symmisc.c (print_symbol): Use SYMBOL_BASEREG if valid.
extra info in the minimal symbol.
(elf_symtab_read): The extra info is the size of an ELF object,
which was kludged to us in the `udata' field of the BFD symbol.
Gag me with a crowbar...
(elf_symfile_read): Keep track of both the absolute load address,
and the offset between load addr and symbols. Handle STABS as
well as DWARF sections, passing the absolute load address to
elfstab_build_psymtabs.
* objfiles.c (free_objfile): Eliminate storage leaks. Contributed
by <Peter.Schauer@regent.e-technik.tu-muenchen.dbp.de>.
* symfile.c (symfile_bfd_open): Comment where name is freed.
* symmisc.c (extend_psymbol_list): Comment where list is freed.
Add symbol_size and file offsets to struct symloc.
Add static symbol_table_offset, string_table_offset,
file_string_table_offset, next_file_string_table_offset,
last_function_name.
(add_old_header_file): Convert error() to complain()t.
(dbx_symfile_read): Get symbol size via the objfile.
Also get symbol_table_offset.
(dbx_symfile_init): Record symbol size and count via the objfile.
(dbx_next_symbol_text): Always add file_string_table_offset when
accessing string table.
(read_dbx_symtab): Initialize file_string_table_offset to 0.
(SET_NAMESTRING): Use the offset.
(end_psymtab): Large kludge to determine addresses where source
files start and end (for the psymtab header).
(psymtab_to_symtab_1): Set file_string_table_offset before reading.
Get this, symbol size, and symbol offset, from psymtab.
(read_ofile_symtab): Don't back up one symbol for Solaris2.
Patch up last_source_start_addr if zero in N_SO.
(process_one_symbol): Add variable function_start_offset.
( "", N_FUN, N_LBRAC, N_RBRAC, N_SLINE): Add ifdef for
BLOCK_ADDRESS_FUNCTION_RELATIVE.
( "", N_OBJ, N_OPT): Ignore.
(elfstab_build_psymtabs): New function to read stabs out of
an ELF file.
* Makefile.in: Accept $(BISON) even though we really want $(YACC).
(gdb): use GLOBAL_CFLAGS when linking, too.
* partial-stab.h (N_UNDF): Deal with Sol2 relative stringtab offsets.
(N_OBJ, N_OPT): Ignore.
('f', 'F'): Save last function name.
* symfile.h: Prototype elfstab_build_psymtabs.
* symfile.c: Add almost-OK debug versions of add_psymbol_*to_list.
* xm-sysv4.h: Add <limits.h> to avoid conflicting defns in defs.h.
* buildsym.c (read_sun_builtin_type, read_sun_floating_type): New.
(define_symbol): Skip arg types in function entries. Resolve
overloaded 'P' which acc uses for prototypes of functions called
by this file.
(read_type: 'b', 'r'): Handle Solaris2 builtin types.
* minsyms.c (prim_record_minimal_symbol_and_info): Hack to
save size of ELF symbols. FIXME.
* tm-sun4os5.h: Rename to tm-sun4sol2.h. Update defines for Sol2.
* xm-sun4os5.h: Rename to xm-sun4sol2.h. Hack more defines.
* config/sun4os5.m[ht]: Rename to config/sun4sol2.m[ht]; new xm, tm.
* defs.h (reg_names): Fix declaration to match that in infcmd.c
* stack.c (reg_names): Delete redundant (and inconsistent) decl.
* WHATS.NEW: Point out improved C++ function name handling.
* gdbtypes.c (lookup_fundamental_type): For now, use the same
type names for both implicitly and explicitly signed integral
types. See comment in the source code.
tokens with embedded whitespace, such as C++ demangled names.
* defs.h (demangle_and_match, strcmp_iw, skip_quoted): Prototypes.
* main.c (gdb_completer_quote_characters): Add global variable.
* main.c (symbol_completion_function): Total rewrite for C++
demangled name handling.
* main.c (skip_quoted): New function.
* main.c (main): Set rl_completer_quote_characters.
* symmisc.c (dump_symtab): Print source language for symtab.
* symtab.c (expensive_mangler): Add prototype and function.
* symtab.c (completion_list_add_symbol): Total rewrite for new
C++ demangled name handling.
* symtab.c (lookup_symbol): Check for demangled C++ symbol first,
other changes for demangled C++ symbol handling.
* symtab.c (lookup_demangled_block_symbol): Use demangle_and_match.
* symtab.c (lookup_demangled_partial_symbol): Use demangle_and_match.
* symtab.c (decode_line_1): Recognize C++ demangled names on input.
* symtab.c (completion_list_add_symbol): Total rewrite for new
C++ demangled name handling.
* symtab.c (expensive_mangler): New function.
* utils.c (strcmp_iw, demangle_and_match): New functions.
* xcoffread.c (aixcoff_symfile_read): Fix prototype.
* Makefile.in, config/*.mh, config/*.mt: Rename TM_CFLAGS
to MT_CFLAGS, XM_CFLAGS to MH_CFLAGS to match file names.
* config/sun4os5.mh: Add MH_CFLAGS=-xs to save debug info.
without masking, since it is signed and will later be compared
against signed quantities. The right fix is probably to make
it all unsigned, but this is a small, safe fix for this release.
FIXME -- make the real change sometime soon.
(Imported from progressive.)