* dbxread.c (read_ofile_symtab): Fix up N_CATCH better. Pass
offset to process_one_symbol.
(process_one_symbol): Take new offset parameter. Add it into
appropriate symbol types to relocate symbols to loaded addresses.
Handle all possible symbol types, and complain() about types that
we don't expect to see.
* mipsread.c (psymtab_to_symtab_1): Pass offset of zero to
process_one_symbol (FIXME, should pass real offset).
Misc bugfixes:
* breakpoint.c (resolve_sal_pc): Split out code to resolve a
sal's PC value.
(set_breakpoint, break_command_1, until_break_command,
catch_command_1, breakpoint_re_set_one): Use it.
(breakpoint_re_set_one): Disable bkpts that don't re-set cleanly.
(breakpoint_re_set): Mention breakpoint number in error messages.
* symtab.h (resolve_sal_pc): Declare.
* infcmd.c (jump_command): Use resolve_sal_pc.
* source.c (find_source_lines): Avoid "Source file is more
recent than executable" when bfd_get_mtime gives 0.
(list_command): Shorten "FILE, line N" to "FILE:N".
* putenv.c (putenv): Avoid unportably casting pointers to unsigneds.
* target.c (target_read_string): Create this routine to read null
terminated strings from the target. It deals with running off the
end of memory elegantly as well. solib.c (find_solib): Use
target_read_string() to avoid problems with running off the end of
memory.
to xm-sysv4.h. Split OPCODE_DIR into OPCODE_DIR1 and OPCODE_DIR2
to reflect actual locations of opcode files, so TAGS target will
be buildable.
i386-tdep.c: Change an erroneous 'm68k' reference to 'i386'.
i386-tdep.c (supply_fpregset, fill_fpregset): Remove m68k code.
m68k-tdep.c (supply_fpregset, fill_fpregset): Fix array
dereferencing to access the correct elements.
valops.c (value_addr): Declare return type of external func value_copy().
xcoffread.c: Undefine next_symbol_text before redefining it.
command that prints /proc specific information, changes to solib.c to
allow more flexible handling of finding the dynamic linker structures,
changes to utils.c and defs.h to add a new null_cleanup() function to
serve as an anchor point for cleanup chains with no obvious "first
cleanup".
Made some more progress in removing duplicate assembly opcode files.
More improvements to how mipsread and to a lesser extent dbxread work.
See the ChangeLog for details.
causing return of random value to callee.
* config/mh-amix, config/mh-i386v4: Change to find alloca by
compiling and linking alloca.c, even when it is not strictly
required. Also arrange to link with -ltermlib rather than
-ltermcap.
* Makefile.in: Move TERMCAP definition to prior to inclusion
of host makefile fragments so it can be overridden.
Change svr4 references to sysv4.
* source.c: Move declaration of external function index to
front of file so it is in scope for all references.
* utils.c (error, fatal): Make definitions consistent with
defs.h declarations (declared as "volatile void").
to take into account the minimum size granularity of the code section. For
now, the buffering is simply disabled until it can be done right.
There is still a similar problem in the i386 disassembly code for locations
within 20 bytes of the end of the code segment.
* Makefile.in: install using INSTALL_PROGRAM and INSTALL_DATA.
added clean-info. added some standards.text support and made it
look like our other Makefiles.
* configure.in: mark this directory target dependent. configure
now runs entirely in objdir so make existence tests and
references against ${srcdir}.
Thu Dec 5 22:46:13 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* Makefile.in: idestdir and ddestdir go away. Added copyrights
and shift gpl to v2. Added ChangeLog if it didn't exist. docdir
and mandir now keyed off datadir by default.
* main.c (initialize_main): Revise command descriptions.
* command.c (show_user): `info user' -> `show user'.
* symtab.c (_initialize_symtab): Typo in `info types' desc.
* coffread.c (coff_symfile_read): Avoid select_source_symtab,
since it is not needed and can cause errors when examining ".o"s.
(read_coff_symtab, decode_base_type): Use complain, not printf.
Print symbol name, not its number.
Remove "#if defined(clipper) #define BELIEVE_PCC_PROMOTION", which
someday should go in a clipper target config file.
* symfile.c (compact_misc_function_vector): Handle empty vector.
(complain, clear_complaints, syms_from_objfile): Fix complaint
formatting.
* xcoffexec.c: Change syms_from_objfile caller.
in the same executable without collision (c-exp.y, m2-exp.y). Add forward
delaration of function returning pointer to shut up compiler warnings about
conversion of int to pointer (symtab.h).
core file (core.c), permanently remove the register_addr() stub (elfread.c),
move a misplaced #endif (procfs.c), and add fetch_core_registers func for
core file support (procfs.c).
READ_MIPS_FORMAT, which have been unused since BFD. Still
remaining is COFF_NO_LONG_FILE_NAMES.
* tm-sun3.h, tm-altos.h: Remove detritus accidentally left from
function calling code moved to m68k-tdep.c.
Complain if no auxents on .bf and .ef FCN symbols, and assume
lots of line numbers.
(init_linenos, enter_linenos): Use a sentinel at the end of the
read-in linenos, to make for a fast, safe loop-end test.
* utils.c: All the v*fprintf emulation is now in libiberty,
so we can get rid of some junk.
* xm-sun3os4.h, xm-sun4os4.h, xconfig/decstation, xconfig/i386sco,
xconfig/sun3os4, xconfig/sun4os4: Don`t need HAVE_STRSTR any more.
* m68k-pinsn.c (print_insn_arg): Support BB/BW/BL
type operands, as used by branch instructions.
* gmalloc.c: Fix prototype of memcpy.
* elfread.c: Comment out register_addr, since it conflicts
with the one in coredep.c.
* buildsym.h: Remove extern declarations of two functions
that are really static in buildsym.c.
* tm-mips.h: Add symbolic names for more registers.
* mips-xdep.c (store_inferior_registers): Use new register names.
* xm-mips.h: Simplify REGISTER_U_ADDR, since it is now
only used for core files, not ptrace. Therefore,
the KERNEL_U_ADDR hack is no longer needed.
The mapping to ptrace number is now in in mips-xdep.c.
* mips-xdep.c: Define REGISTER_PTRACE_ADDR (using the
mapping from the old REGISTER_U_ADDR), and use it
in {fetch,store}_inferior_registers.
* mipsread.c: Rename #include ecoff.h to new name coff-mips.h.
* mips-tdep.c (mips_push_dummy_frame, mips_pop_frame):
Save/restore FP regs correctly (?).
* dbxread.c: Remove duplicate define_symbol and type_synonym_name
(these had been previously moved to buildsym.c).
Hence, define_symbol becomes extern instead of static.
* buildsym.c (read_struct_type): Comment out bogus handling
of C++ operator methods. Minor hacking of reading of class
contexts. Make define_symbol non-static, so dbxread.c can call it.
filename with error messages.
* stack.c (frame_select_command): Rename to select_frame_command
to avoid "fr" and "fra" having nonunique completions.
* symfile.c (sort_symtab_syms): Ignore sort of zero symtab *.
(symfile_init): Print file format name when unable to handle it.
(free_named_symtabs): Use BLOCKVECTOR rather than obsolete BLOCKLIST.
* symmisc.c (free_symtab): Only free linetable if nonzero.
* symtab.h: Remove obsolete BLOCKLIST macros.
(record_line): Record directly in a subfile. Alloc on demand.
(compare_line_numbers): Add from xcoffread.c.
(end_symtab): New params say whether to sort pendings and
linetable. Patch block stabs if defined. Shrink linetable before
allocating the symtab.
* buildsym.h: Delete line_vector* and prev_line_number. Add
global_stabs and file_stabs for xcoffread.
* dbxread.c (start_subfile): Move to buildsym. Change above calls.
* symtab.h: LINETABLE(symtab) can now be null. Zap LINELIST.
* symmisc.c, symtab.c: Cope with null LINETABLEs.
(add_symbol_file): Call it to do the real work.
(syms_from_bfd): Initialize entry_point before calling symfile_init.
* symtab.h, symfile.c, coffread.c, mipsread.c, dwarfread.c:
Avoid declaring or setting entry_point (symfile.h & symfile.c cope).
only differences were in the specific trap vectors used and whether or not
an fpu was present. These are now handled by appropriate definitions of
BPT_VECTOR and HAVE_68881 respectively. Other minor obvious cleanups.
Minor spelling correction in valops.c.
rather than jumping back to command level. Modules that want to print
their own warnings without calling warning() can call warning_setup() to
handle the terminal compatibly with warning() and error().
* tm-68k.h (FPI_REGNUM): Add.
* infrun.c (child_create_inferior): flush stdout and stderr
before forking.
* configure.in: Handle amigados, amix hosts and targets.
* inflow.c: Handle TIOCGLTC_BROKEN for Amiga.
From Andreas Schwab:
* values.c (show_convenience): Use printf_filtered.
* main.c (define_command): Check result of lookup_command for
exact match.
(echo_command): Use printf_filtered, and force output out.
* dbxread.c (read_enum_type): Avoid Modula-2 kludge that breaks C
programs.
* i387-tdep.c (double_to_i387): Fix typo for double_to_ieee_extended.
* utils.c (_initialize_utils): If !ISATTY, don't paginate.
This avoids coredumps under `set print object on' in value_headof
(called erroneously by value_from_vtable_info) for `p &struct'
or `p *struct'. From Peter Schauer.
Make complaint message not C++-specific.
* symtab.c (lookup_symtab_1, lookup_symbol): "fatal" errors
between symtabs and psymtabs become ordinary error()s.
* dbxread.c (read_dbx_symtab): Relocate end_of_text_addr
properly, making "end pc" correct in shared lib psymtabs.
(From Guy Harris <guy@auspex.com>.)
(read_dbx_symtab): N_STSYM and N_LCSYM define static vars.
Ditto Gould N_NBSTS and N_NBLCS. Also, all types in the psymtab
should be file-scope, not global.
(read_struct_type): Remove ancient multiple-inheritance warning.
(read_range_type): Check base type, complain & patch if undefined.
* doc/Makefile: generate aux version-no file doc/gdbVN.m4
from main Makefile.in version definition
doc/gdb.texinfo: use version recorded in doc/gdbVN.m4 for current
GDB version no refs
Makefile.in (setup-to-dist): generate doc/gdbVN.m4
language.c can use it. (Though language.c should really not be
handling warnings/errors the way it does, FIXME.)
* symtab.c (lookup_primitive_type): const lint.
first.
* main.c (main, print_gnu_advertisement, print_gdb_version):
Reformat legalese so it always prints, but acts as an "I'm here"
message while symbols are being read. If any errors occur,
print a few newlines to set off the message and start it at the
left margin. Remove mention of "help" command, and don't yak about
symbol reading.
(catch_errors): Error string is now printed first in case of
error, not last.
* command.c (undef_cmd_error, lookup_cmd): On undefined command,
suggest the "help" command.
* Makefile.in (VERSION): Set to 4.0.2.
* core.c (core_open): Open file ourselves, read or r/w, depending on
write_files. Use bfd_fdopenr.
* gdbcore.h (write_files): New variable.
* exec.c (write_files): Define variable, add set&show for it.
(exec_file_command): Use write_files to open for read or r/write.
Make shared library reading happen automatically. These changes
are mostly from Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.
* inferior.h (stop_soon_quietly): Add to exported variables.
* infrun.c (child_create_inferior): call solib hook, if defined.
(child_attach): call solib hook, if defined.
* solib.c: Include inferior.h. Add from_tty to so_list as kludge.
(find_solib): Use lookup_misc_func rather than hand-rolled.
(symbol_add_stub): New stub for catch_errors.
(solib_add): Avoid output if !from_tty. Catch errors rather
than just calling symbol_file_add and bombing.
(solib_create_inferior_hook): Interface with the target process
to let it read and alloc shared libs, then figure out what it did.
* core.c (validate_files): Fix typo, soften warning.
(Fix from Hiroto Kagotani <kagotani@cs.titech.ac.jp>.)
* utils.c (fputs_demangled): Avoid duplicate printing if
demangling is off. (Fix from J.T. Conklin <jtc@cayenne.com>.)
* infrun.c (proceed): Cast -1 to (CORE_ADDR) before comparing.
(Fix from pierre@la.tce.com (Pierre Willard).)
* main.c (catch_errors): Change argument to a char * from an int,
since a char * can point to a struct full of glop, but an int
is not guaranteed to be able to hold a pointer.
* breakpoint.c (breakpoint_cond_eval, bpstat_stop_status,
breakpoint_re_set_one, breakpoint_re_set): Adapt.
* core.c (core_open, solib_add_stub): Adapt.
* remote-vx.c (symbol_stub, add_symbol_stub, callers): Adapt.
* tm-sparc.h (PC_ADJUST): Avoid calling error() from this;
it causes recursive calls to error() when used in cleanups.
To do so requires that we make it a function, so we do.
* sparc-tdep.c (sparc_pc_adjust): New implem of PC_ADJUST.
* utils.c (do_cleanups): Remove the current cleanup from the
chain *before* calling it, in case error() is called from it.
The result won't be pretty, but won't be an infinite loop either.
(long_options): Terminate with a zero element.
[Bugfix from Atsuo Kawaguchi <atsuo@hark86.harl.hitachi.co.jp>.]
(gdb_readline): Make call-compatible with readline.
(init_signals): Improve comments re vfork vs. signal.
* utils.c (prompt_for_continue): Use new gdb_readline().
If we prompt for continuation, we don't let CR repeat the previous
command, once we get back to a prompt. It's too easy to keep
hitting CR, expecting "--more--" prompts, and have some long
command start repeating on you.
The child can be proceeded from inside wait_for_inferior in
evaluating breakpoint conditions, and DO_DEFERRED_STORES was
getting skipped in that case.
* expprint.c (print_subexp): Use filtered output, since the
subroutines we call use it, otherwise the output is horribly
mangled, since output of wrappable stuff comes out late.
* TODO: Document work needed on &fn and &array.
* printcmd.c (print_address_symbolic): New arg is the prefix
to print if a name is printed.
(print_address_demangle): Honor "set print address" now.
Use new arg above to improve spacing of output.
* valprint.c (val_print): When printing function pointers,
print symbolic form too.
* breakpoint.c (breakpoint_1): Use new print_address_symbolic.
* mips-pinsn.c (print_insn_arg 'd'): Print $ with reg name.
* mipsread.c (read_mips_symtab, read_the_mips_symtab,
parse_partial_symbols): Use newer BFD internals (external_filehdr
and external_aouthdr), byte-swap the fields that we care about
before using them, and make the file header data local to
read_the_mips_symtab rather than global.
* configure.in, Makefile.in: Avoid rebuilding "depend" as much.
Avoid declaring Makefile dependencies, because GNU Make stupidly
tries to update it if we do.
* coffread.c: Revise for minor changes to bfd internal coff
indexes.
* configure: If -template= is given a relative path, make it
absolute before recurring in subdirectories.
docn into separate sections---basically chapters, plus two loose
pieces that can be configured to go in different places. This
allows GNU m4 to preprocess the manual without coredumping.
* Makefile.dist: tell TeX where to find texinfo.
stuff for config manual) here where it counts; updated
to use new subdir structure (gdb/doc/).
* Makefile: generated from above via
config.gdb none
before checkin
files, formatted from gdb.texinfo (via gdb-all.texinfo, see
Makefile)---but due to use of texinfo 2, can't count on makeinfo
to generate these, so we distribute them already formatted.
* gdb.texinfo: included full Info node and menu crud (as generated
by C-u M-x texinfo-master-menu using the texinfo-2 elisp code).
* Makefile: updated "gdb.dvi" target to use M4 preprocessor;
put in comments-for-future gdb.info target (one day makeinfo will
work again).
* cplus-dem.c: Move CPLUS_MARKER define to after defs.h.
* infptrace.c (PT_WRITE_D, PT_READ_D): Use correct values.
(This still doesn't seem to make MIPS bkpts work.)
* mipsread.c: Remove dup "Reading symbol data..." msg.
(symbol_file_command, add_file_command): Remove, obsol.
* printcmd.c (ptype_command): Say "an enum" rather than "a enum".
Wrap output appropriately.
* stack.c (locals_info, catch_info, args_info): Check
selected_frame rather than target_has_stack or coredumping.
* valprint.c (type_print_varspec_suffix): Wrap "ptype" output of
enums appropriately.
eval.c, expprint.c, infcmd.c, infrun.c, main.c, printcmd.c,
remote.c, source.c, stack.c, dbxread.c, coffread.c, symfile.h,
symfile.c, utils.c, valarith.c, values.c, valops.c, tm-68k.h,
target.c, inftarg.c, ieee-float.c, environ.c, defs.h,
command.h, inferior.h, gdbcore.h, symtab.h, expression.h,
symtab.c, cplus-dem.c, value.h, expread.y, valprint.c,
copying.awk, solib.c, inflow.c, symmisc.c
: Lint. Use read_memory not read_memory_integer on CORE_ADDR's.
Use {value_as,unpack}_pointer (added to values.c)
not {value_as,unpack}_long on CORE_ADDR's.
Use longest_to_int (added to defs.h) instead of cast to int.
Remove from_tty arg to mod_path.
Put symfile_bfd in {coff,dbx}read.c not symfile.h.
Use OP_NULL instead of 0 where dummy enum exp_opcode needed.
* valprint.c (type_print_base): If the type being printed is a
struct containing undefined types, print "<undefine type>"
as the type instead of crashing.
* values.c (value_headof): Get the vtable pointer taking
TYPE_VPTR_BASETYPE into account.
* symtab.c, symtab.h, dbxread.c: Fix various whitespace splotches.
cross-debugging and not necessary anymore (see IN_SIGTRAMP in
xm-vax.h)).
[SET_STACK_LIMIT_HUGE]: Include <sys/{resource,time}.h>.
xm-tahoe.h: Don't define _DIRENT_.
* xm-tahoe.h: Remove USE_OLD_TTY (not needed now that terminal.h
includes sgtty.h before sys/ioctl.h).
the symtabs which we all know and love: (1) Look in the
STATIC_BLOCK for mangled symbols right after we check the blocks,
(2, 3) Look in the STATIC_BLOCK for all the symtabs and psymtabs
at the end.
* dbxread.c (read_struct_type): If const/volatile character is
missing, don't complain, just continue.
* dbxread.c (read_struct_type): Only try to read the fcontext if
it is there. Also change "error_type " to "return error_type ".
values.c (value_virtual_fn_field): If there is no fcontext,
then do things the way GDB 3.x did.
valops.c (search_struct_method): Add type to value_virtual_fn_field
arguments.
* dbxread.c (read_struct_type): Fix typo: *pp != '\0' -> **pp != '\0'.
core.c (core_close): Call CLEAR_SOLIB.
(core_open): Remove comment about "should deal with shared lib".
(core_xfer_memory): If we can't xfer the usual way, try the
shared libraries.
solib.c (so_list): New fields so_bfd and so_sections{,_end}.
(find_solib): Use solib_map_sections to get ld_text.
(solib_map_sections, solib_xfer_memory): New functions.
(clear_solib): Free so_sections and close so_bfd.
tm-sunos.h: Add solib_xfer_memory, solib_add.
chain before giving up with an internal error.
Sun Apr 21 21:43:10 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
* value.h, values.c (value_{,free_to_}mark): New functions.
breakpoint.c (bpstat_stop_status): Use them.
(set_section_command): New command ("section xxx yyy" -- should
be renamed to "set section xxx yyy" FIXME) which sets the
base address of a section of the exec file, overriding the
virtual address that BFD reports.