Commit graph

142 commits

Author SHA1 Message Date
Jason Molenda
392a587b05 import gdb-1999-05-25 snapshot 1999-05-25 18:09:09 +00:00
Stan Shebs
c906108c21 Initial creation of sourceware repository 1999-04-16 01:35:26 +00:00
Stan Shebs
071ea11e85 Initial creation of sourceware repository 1999-04-16 01:34:07 +00:00
Mark Alexander
e74acce48c * coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c,
os9kread.c: Replace identical sym_offsets functions with
	default_symfile_offsets.
	* somread.c (som_symfile_offsets): Use new SIZEOF_SECTION_OFFSETS
	macro to allocate section_offsets.
	* symfile.c (default_symfile_offsets): New function.
	* symfile.h: Declare default_symfile_offsets.
	* symtab.h: Define SIZEOF_SECTION_OFFSETS macro to
	simplify allocation of section_offsets.
1996-07-03 05:11:40 +00:00
J.T. Conklin
2b57629364 * configure.in: Check for working mmap, ansi headers, string.h,
strings.h, and memory.h.
* configure: Regenerated.

* gdb_stat.h: New file, "portable" <sys/stat.h>.
* gdb_string.h: New file, "portable" <string.h>.

* altos-xdep.c, arm-tdep.c, arm-xdep.c, convex-tdep.c,
convex-xdep.c, coredep.c, cxux-nat.c, dbxread.c, exec.c,
gould-xdep.c, hppa-tdep.c, i386aix-nat.c, i386b-nat.c,
i386mach-nat.c, i386v-nat.c, infptrace.c, m88k-nat.c, main.c,
mdebugread.c, objfiles.c, os9kread.c, procfs.c, pyr-xdep.c,
rs6000-nat.c, source.c, standalone.c, stuff.c, sun386-nat.c,
symfile.c, symm-nat.c, symm-tdep.c, symtab.c, top.c, ultra3-nat.c,
ultra3-xdep.c, umax-xdep.c, xcoffread.c: Include "gdb_stat.h"
instead of <sys/stat.h>.

* alpha-tdep.c, breakpoint.c, buildsym.c, c-typeprint.c,
ch-typeprint.c, coffread.c, command.c, core-sol2.c, core-svr4.c,
core.c, corelow.c, cp-valprint.c, dbxread.c, dcache.c, demangle.c,
dpx2-nat.c, dstread.c, dwarfread.c, elfread.c, environ.c, eval.c,
exec.c, f-lang.c, f-typeprint.c, f-valprint.c, findvar.c,
fork-child.c, gdbtypes.c, hpread.c, i386-tdep.c, infcmd.c,
inflow.c, infptrace.c, infrun.c, irix5-nat.c, language.c,
m2-typeprint.c, main.c, mdebugread.c, minsyms.c, mipsread.c,
monitor.c, nlmread.c, objfiles.c, os9kread.c, osfsolib.c, parse.c,
printcmd.c, procfs.c, regex.c, remote-adapt.c, remote-arc.c,
remote-array.c, remote-bug.c, remote-e7000.c, remote-eb.c,
remote-es.c, remote-hms.c, remote-mm.c, remote-os9k.c,
remote-pa.c, remote-sim.c, remote-st.c, remote-udi.c,
remote-utils.c, remote-vx.c, remote-vx29k.c, remote-vx68.c,
remote-vx960.c, remote-vxmips.c, remote-vxsparc.c, remote.c,
solib.c, somread.c, source.c, stabsread.c, stack.c, symfile.c,
symmisc.c, symtab.c, target.c, top.c, typeprint.c, utils.c,
valarith.c, valops.c, valprint.c, values.c, xcoffread.c: Include
"gdb_string.h" instead of <string.h>.
* gdbtk.c: Likewise.

* config/xm-sysv4.h, i386/xm-ptx.h, m68k/xm-sun3os4.h,
sparc/xm-sun4os4.h (HAVE_MMAP): Removed.

* config/xm-lynx.h, config/i386/xm-ptx.h,
config/m68k/nm-apollo68b.h, config/m68k/xm-hp300hpux.h,
config/mips/xm-irix3.h, config/mips/xm-mips.h,
config/mips/xm-news-mips.h, config/mips/xm-riscos.h,
config/pa/hppah.h, config/rs6000/xm-rs6000.h,
config/sparc/xm-sun4os4.h, config/sparc/xm-sun4sol2.h,
config/vax/xm-vaxbsd.h, config/vax/xm-vaxult.h,
config/vax/xm-vaxult2.h (MEM_FNS_DECLARED): Removed.
* config/mips/xm-irix3.h, config/mips/xm-mips.h,
config/pa/xm-hppah.h (memcpy, memset): Removed declarations.
1995-08-01 20:14:27 +00:00
Peter Schauer
2fe3b329f6 * infrun.c (IN_SOLIB_TRAMPOLINE): Correct comment, trampolines
are in the .plt section.
	* minsyms.c (lookup_solib_trampoline_symbol_by_pc,
	find_solib_trampoline_target):  New functions for handling
	stepping into -g compiled shared libraries.
	* symtab.h (lookup_solib_trampoline_symbol_by_pc,
	find_solib_trampoline_target):  Add prototypes.
	* config/tm-sunos.h (IN_SOLIB_TRAMPOLINE, SKIP_TRAMPOLINE_CODE):
	Define to handle stepping into  -g compiled shared libraries.
	* config/tm-sysv4.h (SKIP_TRAMPOLINE_CODE):  Define to handle
	stepping into  -g compiled shared libraries.
	* configure.in:  Add mips-*-sysv4* support.
	* config/mips/mipsv4.mh, config/mips/mipsv4.mt,
	config/mips/tm-mipsv4.h, config/mips/xm-mipsv4.h, mipsv4-nat.c:
	New files for MIPS SVR4 support.
	* Makefile.in:  Update for new mipsv4 files.
	* alpha-tdep.c (heuristic_proc_desc, find_proc_desc):  Use
	read_next_frame_reg to obtain the frame relative stack pointer.
	* mips-tdep.c (heuristic_proc_desc):  Use read_next_frame_reg to
	obtain the frame relative stack pointer.
	* mdebugread.c (parse_partial_symbols, psymtab_to_symtab1):
	Handle stStatic and stStaticProc symbols in stabs-in-ecoff output
	by entering them into the minimal symbol table.
	* printcmd.c (print_scalar_formatted):  Do not try to unpack to
	a long for float formats.
	* solib.c:  Include "elf/mips.h" only if DT_MIPS_RLD_MAP does not
	get defined in <link.h>.
	* solib.c (solib_add):  Add shared library sections to the section
	table of the target before adding the symbols.
	* partial-stab.h:  Relocate static and global functions.
	* dbxread.c (read_dbx_symtab):  Remove unused variable
	end_of_text_address.  Relocate text_addr when passing it
	to end_psymtab.

	For Alpha OSF/1 targets, enable gdb to set breakpoints in shared
	library functions before the executable is run. Retrieve dynamic
	symbols from stripped executables.
	* mipsread.c (read_alphacoff_dynamic_symtab):  New function.
	* mipsread.c (mipscoff_symfile_read):  Use it. Issue warning message
	if no debugging symbols were found.
	* alpha-tdep.c (alpha_skip_prologue):  Silently return the unaltered
	pc if memory at the pc is not accessible and GDB_TARGET_HAS_SHARED_LIBS
	is defined.
	* config/alpha/nm-alpha.h (GDB_TARGET_HAS_SHARED_LIBS):  Define,
	OSF/1 has shared libraries.
1994-04-08 00:35:15 +00:00
Ian Lance Taylor
e03c0cc670 Added Irix 5 support.
* configure.in (mips-sgi-irix5*): New host and target.  Use irix5
	for both.
	* config/mips/irix5.mh, config/mips/irix5.mt,
	config/mips/xm-irix5.h, config/mips/nm-irix5.h,
	config/mips/tm-irix5.h, irix5-nat.c: New files for Irix 5 support.
	* mdebugread.c: New file, split out of mipsread.c.  Added
	elfmdebug_build_psymtabs routine.  Added some checks on external
	symbols.  Changed code to keep ecoff_debug_info and
	ecoff_debug_swap structs in the psymtab and in global pointers
	rather than retrieving them from the bfd.  Also changed to keep
	the pending list with the psymtab rather than the objfile (each
	psymtab for a single objfile points to the same pending list).
	* mipsread.c: Bulk of file moved into mdebugread.c, leaving just
	the sym_fns.
	* Makefile.in (SFILES): Added mdebugread.c.
	(OBS): Added mdebugread.o.
	(mdebugread.o): New target.
	* symfile.h: Declare mdebug_build_psymtabs and
	elfmdebug_build_psymtabs.
	* elfread.c (struct elfinfo): Added mdebugsect field.
	(elf_locate_sections): Remember location of .mdebug section.
	(elf_symfile_read): Call elfmdebug_build_psymtabs on .mdebug
	section.
	* infrun.c (AT_FUNCTION_START): Set to 0 if not already defined.
	(wait_for_inferior): Use AT_FUNCTION_START if it is defined to see
	if PC is at the start of a function.
	* mips-tdep.c (read_next_frame_reg): Use SIGFRAME_REG_SIZE, and
	give it a default definition.
	(mips_skip_prologue): Skip instructions which initialize $gp
	register.
	(in_sigtramp): New procedure, moved in from mipsread.c.
	* config/mips/tm-mips.h: Declare in_sigtramp.
1993-12-06 17:31:05 +00:00
Jim Kingdon
0eed42deee * symfile.h (sym_fns), symfile.c (find_sym_fns), xcoffread.c,
coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, paread.c:
	Change from using bfd target name to using the flavour.
1993-10-31 18:54:28 +00:00
Jim Kingdon
4d57c5995e * symfile.c (reread_symbols): When re-reading symbols, do all the
right operations ourself, rather than calling symbol_file_command.
	If we re-read something, call clear_symtab_users not just
	breakpoint_re_set.
	* objfiles.h, objfiles.c (build_objfile_section_table): No longer
	static.
	* symfile.c (clear_symtab_users): Call clear_pc_function_cache.
	* coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, paread.c
	(*_symfile_offsets): Set objfile->num_sections.
	* remote.c (remote_wait), symfile.c (syms_from_objfile):
	Don't muck with objfile->num_sections now that all the symbol
	readers set it.
	* elfread.c: Clean up obsolete comment about handling only DWARF.
	* paread.c: Remove comment about how we should use an "ordinary"
	file format with an hppa suffix.  There is nothing ordinary about SOM.
1993-10-30 20:21:19 +00:00
Peter Schauer
99a15c6431 * mipsread.c (parse_partial_symbols): Do not add undefined
symbols to the partial symbol table.
1993-10-11 16:25:43 +00:00
Jim Kingdon
1fdbc4d17b * mipsread.c (parse_type): Don't complain() if we guessed struct
and it was a union, or vice versa.
1993-09-18 21:11:25 +00:00
Peter Schauer
85999c054b * mipsread.c: Many changes for alpha ecoff format:
Correct sizeof(int) == sizeof(long) assumptions.
	Replace stParsed hack by putting the parsed types on the pending chain.
	Replace mips specific ecoff mapping by ECOFF_REG_TO_REGNUM macro,
	provide default for cross debugging.
	Swapping the symbol back is no longer needed as the symbol is not
	modified anymore.
	Add new alpha basic types, handle btTypedef, handle stStaticProc
	external symbols .
	Update and clean up cross_ref for alpha cc cross ref variations.
	Allocate types on the type_obstack to inhibit storage leaks.
	* config/mips/tm-mips.h (ECOFF_REG_TO_REGNUM):  Define.
	* gdbtypes.c (recursive_dump_type):  Dump TYPE_TAG_NAME if it is set.
1993-09-16 07:38:42 +00:00
K. Richard Pixley
e7bf1152a9 gcc lint 1993-09-08 21:04:59 +00:00
K. Richard Pixley
ade40d3153 bcopy -> memcpy 1993-09-01 20:37:15 +00:00
Peter Schauer
e7e02420a7 * mipsread.c (parse_partial_symbols): Use language from FDR if it
is unambigous.  Patch from ptf@delcam.co.uk (Paul Flinders).
	* mipsread.c (ecoff_symfile_info):  New struct to hold the global
	pending_list.
	* mipsread.c (mipscoff_symfile_init, parse_partial_symbols):
	Allocate the global pending list and link it to the objfile.
	* mipsread.c (is_pending_symbol, add_pending):  Use global pending
	list from objfile. Allocate pending list entries from the
	psymbol_obstack.
	* mipsread.c (free_pending):  Remove. The pending list is now
	freed when the psymbol_obstack is freed.
	* mipsread.c (psymtab_to_symtab1):  Remove pending list allocation,
	the global pending list is used now.
	* mipsread.c (parse_partial_symbols):  Skip only the first
	file indirect entry when building the dependency list.
1993-09-01 12:10:55 +00:00
Peter Schauer
cbba020f3f * stabsread.h, dbxread.c (end_psymtab): Return NULL if the psymtab
was empty and thrown away.
	* mipsread.c (parse_partial_symbols):  Do not add empty psymtabs to
	dependency list, skip self dependencies.
	* mipsread.c (parse_fdr):  Removed, obsolete.
	* mipsread.c (parse_lines):  Check for cbLine being zero, not
	cbLineOffset.
	* mipsread.c (struct symloc):  Add pst_language.
	* mipsread.c (parse_partial_symbols):  Set up proper language for header
	files, save it in pst_language for psymtab_to_symtab_1.
	* mipsread.c (psymtab_to_symtab_1):  Use pst_language.
1993-08-30 19:50:47 +00:00
Peter Schauer
018ab14f59 * mipsread.c (parse_partial_symbols, psymtab_to_symtab_1):
Set language for psymtab and symtab.
	* mipsread.c (new_symbol):  Set language and initialize demangled
	name for symbol.
	* symmisc.c (print_symbol):  Use SYMBOL_SOURCE_NAME when printing
	the symbol type.
	* symtab.c (decode_line_1):  Inhibit coredumps with cfront executables.
1993-08-20 22:10:15 +00:00
Peter Schauer
6ac14d259e * config/vax/tm-vax.h (BELIEVE_PCC_PROMOTION): Define.
* mipsread.c (parse_symbol, parse_type, cross_ref):  Handle corrupt
	file indirect entries with complaints instead of core dumps. Remove
	complaint for stTypedef within aggregates.
1993-08-20 05:12:14 +00:00
Jim Kingdon
38bbfd3795 * fork-child.c (fork_inferior): Only quote exec file if needed.
* mipsread.c (parse_symbol): Remove 21 Jul 93 change with
	stTypedef inside an stBlock.
1993-07-27 17:43:09 +00:00
Peter Schauer
b31ca3dece * mipsread.c (parse_type): Do not set tag name for compiler
generated fake tag names.
1993-07-27 08:59:44 +00:00
Jim Kingdon
1c8961dd35 * mipsread.c (parse_symbol): Put stStaticProc symbols in minimal
symbols as mst_file_text.
1993-07-26 20:33:35 +00:00
Peter Schauer
579f025837 * mipsread.c (fixup_sigtramp): Initialize pdr.adr, it is used by
mips_in_lenient_prologue.
1993-07-21 07:13:13 +00:00
Ian Lance Taylor
2e9e68699d * mipsread.c: No longer need to undefine ZMAGIC. 1993-07-16 16:58:08 +00:00
Jim Kingdon
4fb0ff3b3d * mipsread.c (mylookup_symbol): Use strcmp, not STREQ, as we have
already checked the first characters.
1993-07-15 07:28:14 +00:00
Jim Kingdon
b5d4d6d7f8 * mipsread.c (parse_procedure): Take as argument the symtab to look
the name up in.  Look it up with mylookup_symbol, not lookup_symbol.
	(psymtab_to_symtab_1): For stabs, pass the symtab to parse_procedure.
1993-07-15 07:25:58 +00:00
Jim Kingdon
9adb88b7de * mipsread.c (psymtab_to_symtab_1, parse_procedure): For stabs,
save the indices of the MIPS_EFI_SYMBOL_NAME symbol rather than
	looking them up by the names of the functions.

	* mipsread.c (mylookup_symbol): Use strcmp, not STREQ, as we have
	already checked the first characters.
1993-07-15 05:24:16 +00:00
Jim Kingdon
28d14fd878 * mipsread.c (cross_ref): Set the name to unknown for "struct *" case.
Patch from ptf@delcam.co.uk (Paul Flinders).
1993-07-09 18:40:26 +00:00
Jim Kingdon
e7ff735c89 Fix a place in mipsread.c where I missed using tag_name; revision to
the following change.

Thu Jul  1 09:51:27 1993  Jim Kingdon  (kingdon@cygnus.com)

	* gdbtypes.h (struct type): Add field tag_name.
	* gdbtypes.c (type_name_no_tag), c-typeprint.c (c_type_print_base):
	Use it.
	* {coff,dwarf,mips,stabs}read.c: Set it.
1993-07-08 03:34:04 +00:00
Peter Schauer
7cf92dd250 Fix stack unwinding through _sigtramp on Irix. These patches are from
Paul Flinders <ptf@delcam.co.uk>.
	* mipsread.c (fixup_sigtramp): Find _sigtramp on Irix even when the
	executable uses sigvec.
	* mips-tdep.c (read_next_frame_reg): Allow tm-file to override
	sigcontext offsets.
	* config/mips/tm-irix3.h: Add sigcontext offsets for Irix.
1993-05-22 10:34:47 +00:00
Peter Schauer
ac8cf67dca * config/mips/tm-irix3.h: Clean up, use tm-bigmips.h and redefine
the necessary bits.
	* findvar.c (value_from_register): Fix uninitialized first_addr
	which caused problems with assignment of doubles to register variables
	on some targets.
	* mipsread.c: Remove TM_FILE_OVERRIDE, include tm.h and provide the
	missing mips definitions if necessary.

	Fix handling of double register variables for mips targets and big
	endian hosts. These patches are from Paul Flinders <ptf@delcam.co.uk>.
	* config/mips/tm-mips.h: Increase MAX_REGISTER_{RAW,VIRTUAL}_SIZE to
	  8 bytes for doubles.
	* config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE): New macro for
	  conversion of type held in multiple registers to host format.
	* config/mips/tm-mips.h (REGISTER_CONVERT_FROM_TYPE): New macro,
	  companion to REGISTER_CONVERT_TO_TYPE.
	* config/mips/tm-mips.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE):
	  Convert to function calls.
	* config/mips/tm-mips.h (FIX_CALL_DUMMY): New code for big endian
	  mips targets.
	* mips-tdep.c (mips_print_register): Raw buffer now needs just
	  MAX_REGISTER_RAW_SIZE bytes.
	* mips-tdep.c (mips_print_register): Use REGISTER_CONVERT_TO_TYPE
	  (if defined) for doubles.
	* mips-tdep.c: (mips_extract_return_value, mips_store_return_value):
	  New functions, take care of REGISTER_CONVERT_TO/FROM_TYPE.
	* valops.c (value_assign): Use REGISTER_CONVERT_TO_TYPE if
	  defined.
	* findvar.c (value_from_register): Use REGISTER_CONVERT_TO_TYPE if
	  defined.
1993-05-22 07:26:25 +00:00
Peter Schauer
e157305cd9 * mips-tdep.c (mips_skip_prologue): Always skip the typical prologue
instructions and nothing more.
	* mipsread.c (add_line): Add comment why we have to combine line number
	entries for the same line number.
1993-04-16 19:29:14 +00:00
Peter Schauer
0b0d6c3fa7 * breakpoint.c (breakpoint_re_set_one): Fix storage leak.
* breakpoint.c (enable_breakpoint): Don't enable watchpoint if it
	went out of scope.
	* exec.c (exec_close): Fix storage leak.
	* exec.c (exec_file_command): Make sure that bfd doesn't realign the
	output sections when patching an executable.
	* mips-nat.c (store_inferior_registers): Use REGISTER_PTRACE_ADDR
	when writing all registers.
	* mips-tdep.c (mips_push_dummy_frame): Save floating point registers
	at the right offset in the dummy frame.
	* mipsread.c (psymtab_to_symtab_1): Do not complain for stProc,
	stStaticProc and stEnd symbols as they are generated by gcc-2.x.
	* mipsread.c (mipscoff_new_init): Initialize stabsread and buildsym.
1993-03-28 19:28:26 +00:00
Fred Fish
1a0edbc7d7 * config/{a29k, arm, convex, gould, h8300, i386, i860, i960, m68k,
m88k, mips, none, ns32k, pa, pyr, romp, rs6000, sparc, tahoe, vax,
	z8k}:  New directories to hold cpu specific configuration files.
	Naming follows gcc convention.
	* config/{*.mt, *.mh}:  All target and host makefile fragment
	config files moved to an appropriate config/<cpu> subdirectory.
	* nm-*, xm-*, tm-*:  All native, host, and target files, which
	get linked to nm.h, xm.h, and tm.h respectively by configure,
	moved to appropriate config/<cpu> subdirectory.
	* nm-sysv4.h, xm-sysv4.h, tm-sysv4.h, tm-sunos.h, nm-trash.h:
	Native, host, and target files that are common across more than
	one cpu architecture and included by one of the configured
	native, host, or target files, get moved to config directory.
	* Makefile.in (INCLUDE_CFLAGS):  Add -I${srcdir}/config to
	pick up native, host, or target include files moved to one of
	the config subdirectories, and that are included by other files.
	* Makefile.in (alldeps.mak):  Modify to account for new config
	directory structure.
	* alldeps.mak, depend:  Update for new config directory structure.
	* config/*/[ntx]m-*.h:  Modify all files that include other
	[ntx]m-*.h files to use path relative to gdb/config.  I.E.
	"a29k/tm-ultra3.h" includes "a29k/tm-29k.h" rather than just
	"tm-29k.h".
	* remote-eb.c (tm-29k.h):  Include a29k/tm-29k.h.
	* mipsread.c (tm-mips.h):  Include mips/tm-mips.h.
	* i860-pinsn.c (tm-i860.h):  Include i860/tm-i860.h.
	* configure.in:  Default gdb_host_cpu to host_cpu, and remap
	the ones where the default is not unique or different than the
	config subdirectory name.  Similarly, handle gdb_target_cpu.
	Modify configure.in as appropriate to make use of gdb_host_cpu
	and gdb_target_cpu to find makefile fragments and make links.
1993-03-23 01:01:49 +00:00
Ian Lance Taylor
5f5341a71f * mipsread.c (compare_blocks): Sort blocks with the same start
address by decreasing ending address.
1993-03-22 20:41:20 +00:00
Peter Schauer
6c2e7392b7 * mipsread.c (parse_procedure): Save cur_fdr accross call to
lookup_symbol as it might get clobbered by the call.

        * mipsread.c (parse_partial_symbols): Use ADD_PSYMBOL_ADDR_TO_LIST.
        The previous code did not initialize the language field for the psymtab
        entry.
1993-03-22 20:22:54 +00:00
Ian Lance Taylor
5f7b214259 Reindented to GNU standard. No semantic changes. This checkin is to
give a base for the upcoming changes, to make clear what I actually
changed.
1993-02-04 19:37:37 +00:00
Ian Lance Taylor
fee754c921 Tue Feb 2 15:30:33 1993 Ian Lance Taylor (ian@cygnus.com)
* mipsread.c (upgrade_type): Build array types correctly, using
	create_range_type and create_array_type.
1993-02-02 23:32:18 +00:00
John Gilmore
6edd74aef3 * hp300ux-nat.c: Update copyrights.
* mipsread.c (parse_partial_symbols):  Complain about block
indexes that go backwards.  Fix from Peter Schauer.
* symfile.c (syms_from_objfile, symbol_file_add):  Allow a
symbol-file that has no linkage symbols to be read.
* tm-rs6000.h, xm-rs6000.h: (SIGWINCH_HANDLER and friends):  Move
from tm- file to xm-file, since they're host dependent.
* valarith.c (value_binop):  Typo.
1993-02-02 01:53:17 +00:00
Fred Fish
c4413e2c9b * c-exp.y (exp:STRING): Convert C strings into array-of-char
constants with an explicit null byte terminator.  OP_STRING is
	now used for real string types.
	* c-lang.c (builtin_type_*):  Move declarations to lang.c since
	they are used by all languages.
	* c-lang.c (_initialize_c_language):  Move initializations of
	builtin_type_* to lang.c.
	* c-typeprint.c (c_type_print_varspec_prefix,
	c_type_print_varspec_suffix):  TYPE_CODE_PASCAL_ARRAY renamed
	to TYPE_CODE_STRING.
	* c-valprint.c (c_val_print):  Change the way character arrays
	are printed as strings to be consistent with the way strings
	are printed when pointer-to-char types are dereferenced.
	Remove test of print_max before calling val_print_string, which
	now does it's own test.
	* eval.c (evaluate_subexp):  Add case for OP_ARRAY.
	* expprint.c (print_subexp, dump_expression):  Add case for OP_ARRAY.
	* expression.h (enum exp_opcode):  Add OP_ARRAY and document.
	* gdbtypes.c (builtin_type_*):  Add declarations moved from
	c-lang.c.
	* gdbtypes.c (create_string_type):  New function to create real
	string types.
	* gdbtypes.c (recursive_dump_type):  TYPE_CODE_PASCAL_ARRAY
	renamed to TYPE_CODE_STRING.
	* gdbtypes.c (_initialize_gdbtypes):  Add initializations of
	builtin_type_* types moved from c-lang.c.
	* gdbtypes.h (enum type_code):  TYPE_CODE_PASCAL_ARRAY renamed
	to TYPE_CODE_STRING.
	* gdbtypes.h (builtin_type_string):  Add extern declaration.
	* gdbtypes.h (create_string_type):  Add prototype.
	* m2-lang.c (m2_create_fundamental_type):  TYPE_CODE_PASCAL_ARRAY
	renamed to TYPE_CODE_STRING.
	* m88k-tdep.c (pushed_size):  TYPE_CODE_PASCAL_ARRAY renamed to
	TYPE_CODE_STRING.
	* mipsread.c (_initialize_mipsread):  TYPE_CODE_PASCAL_ARRAY
	renamed to TYPE_CODE_STRING.
	* parse.c (length_of_subexp, prefixify_subexp):  Add case for
	OP_ARRAY.
	* printcmd.c (print_formatted):  Recognize TYPE_CODE_STRING.
	* typeprint.c (print_type_scalar):  TYPE_CODE_PASCAL_ARRAY renamed
	to TYPE_CODE_STRING.
	* valops.c (allocate_space_in_inferior):  New function and
	prototype, using code ripped out of value_string.
	* valops.c (value_string):  Rewritten to use new function
	allocate_space_in_inferior, but temporarily disabled until some
	other support is in place.
	* valops.c (value_array):  New function to create array constants.
	* valprint.c (val_print_string):  Add comment to document use,
	complete rewrite to fix several small buglets.
	* value.h (value_array):  Add prototype.
	* value.h (val_print_string):  Change prototype to match rewrite.
	**** start-sanitize-chill ****
	* ch-valprint.c (chill_val_print):  Add case for TYPE_CODE_STRING.
	* ch-exp.y (match_character_literal):  Disable recognition of
	control sequence form of character literals and document why.
	**** end-sanitize-chill ****
1993-01-16 05:15:58 +00:00
Fred Fish
a8a69e6332 * Makefile.in (VERSION): Bump to 4.7.4.
* Makefile.in (SFILES_MAINDIR):  Add typeprint.c, c-typeprint.c,
	  m2-typeprint.c, c-valprint.c cp-valprint.c m2-valprint.c.
	* Makefile.in (HFILES):  Add valprint.h.
	* Makefile.in (OBS):  Add typeprint.o, c-typeprint.o,
	  m2-typeprint.o, c-valprint.o, cp-valprint.o m2-valprint.o.
	* typeprint.c, typeprint.h:  New files for language independent
	  type printing functions.
	* c-typeprint.c, m2-typeprint.c:  New files for language dependent
	  type printing functions and definitions.
	* valprint.h:  New include file for language independent value
	  printing definitions.
	* c-valprint.c, cp-valprint.c, m2-valprint.c:  New files for language
	  dependent value printing functions.
	* c-exp.y (production ptype):  Add range_type variable and use new
	  create_range_type function.
	* c-exp.y (tokentab2, tokentab3), c-lang.c (c_op_print_tab),
	  infcmd.c (path_var_name), language.c (unk_op_print_tab),
	  m2-lang.c (m2_op_print_tab):  Change from ANSI-obsolescent
	  "const static" to ANSI-conformant "static const".
	* c-exp.y (c_create_fundamental_type):  Remove unused nbytes.
	* c-exp.y (c_language_defn, cplus_language_defn):  Add c_print_type,
	  and c_val_print.
	* c-lang.h (c_print_type, c_val_print):  Add prototypes.
	* coffread.c (decode_type):  Add range_type variable and call to
	  new create_range_type function.
	* complaints.c (complain):  Remove unused val variable.
	* complaints.c (_initialize_complaints):  Make it void.
	* convex-tdep.c (value_of_trapped_internalvar):  Add range_type
	  variable and call new create_range_type function.
	* defs.h (enum val_prettyprint):  Move enum from value.h to here
	  so we can avoid having to include value.h just for prototypes that
	  need the enum (thanks ANSI).
	* dwarfread.c (struct_type):  Local anonymous_size variable is
	  only used if !BITS_BIG_ENDIAN.
	* dwarfread.c (decode_subscript_data_item):  Add rangetype
	  variable and call new create_range_type function.
	* elfread.c (elf_symfile_read):  Remove unused dbx and text_sect
	  variables.
	* eval.c (evaluate_subexp):  Remove unused local variable name
	  and the statement with no side effects that initializes it.
	* expprint.c (print_subexp):  Change local_printstr to
	  LA_PRINT_STRING.
	* gdbtypes.c (create_range_type):  New function that creates
	  a range type using code fragments from object file readers as
	  an example of what has to be initialized.
	* gdbtypes.c (create_array_type):  Removed index_type, low_bound,
	  and high_bound parameters, replaced with a single range_type
	  parameter.  Change function body to use passed in range_type
	  rather than handcrafting one.
	* gdbtypes.h (create_range_type):  Add prototype.
	* gdbtypes.h (create_array_type):  Change prototype parameters.
	* infrun.c (normal_stop):  Remove unused local variables tem and c.
	* infrun.c (hook_stop_stub):  Return 0 rather than random value.
	* language.c (unk_lang_print_type, unk_lang_val_print):  Add
	  stub functions that call error if called.
	* language.c (unknown_language_defn, auto_language_defn,
	  local_language_defn):  Add initializers unk_lang_print_type and
	  unk_lang_val_print.
	* language.h (struct language_defn):  Reformat for larger
	  comments, add la_print_type and la_val_print members.  Add
	  LA_PRINT_TYPE and LA_VAL_PRINT macros.  Change local_printchar
	  to LA_PRINT_CHAR and local_printstr to LA_PRINT_STRING.
	* m2-lang.c (m2_create_fundamental_type):  Remove unused local
	  variable nbytes.
	* m2-lang.c (m2_language_defn):  Add initializers m2_print_type
	  and m2_val_print.
	* m2-lang.h (m2_print_type, m2_val_print):  Add prototypes.
	* main.c (execute_command): Remove unused local variable cmdlines.
	* main.c (echo_command), stabsread.c (read_type), printcmd.c
	  (clear_displays), symmisc.c (block_depth), values.c
	  (clear_value_history):
	  Make testing of truth value of assignment result explicit.
	* mipsread.c (upgrade_type):  Update FIXME to include future use
	  of create_range_type.
	* printcmd.c (ptype_command, ptype_eval, whatis_command,
	  whatis_exp, maintenance_print_type):  Move prototypes and functions
	  to new typeprint.c.
	* printcmd.c (_initialize_printcmd):  Move add_com calls for
	  ptype_command and whatis_command to new typeprint.c.
	* ser-bsd.c (serial_open):  Remove unused variable sgttyb.
	* source.c (find_source_lines):  Local variable c only used
	  when LSEEK_NOT_LINEAR is defined.
	* stabsread.c (read_array_type):  Use new create_range_type
	  function.
	* stabsread.c (read_range_type):  Add new index_type variable and
	  call new create_range_type function rather than handcrafting
	  range types.
	* symmisc.c (type_print_1):  Change usages to LA_PRINT_TYPE.
	* symtab.c (typedef_print usages):  Use c_typedef_print, renamed.
	* symtab.c (type_print_base usages):  Use c_type_print_base.
	* symtab.c (type_print_varspec_prefix usages):  Use
	  c_type_print_varspec_prefix.
	* symtab.c (type_print_method_args usages):  Use
	  cp_type_print_method_args.
	* valprint.c:  Completely ripped apart and the fragments used
	  to create c-valprint.c, cp-valprint.c, m2-valprint.c, and
	  valprint.h.  Remaining stuff is language independent.
	* value.h (struct fn_field):  Forward declare for prototypes.
	* value.h (type_print_1):  Remove prototype.
	* value.h (enum val_prettyprint):  Moved to defs.h.
	* value.h (typedef_print):  Prototype renamed to c_typedef_print.
	* value.h (baseclass_offset):  Add prototype.
	**** start-sanitize-chill ****
	* Makefile.in (SFILES_MAINDIR):  Add ch-typeprint.c, ch-valprint.c.
	* Makefile.in (OBS):  Add ch-typeprint.o, ch-valprint.o.
	* ch-typeprint.c:  New file for language dependent type printing.
	* ch-valprint.c:  New file for language dependent value printing.
	* ch-exp.y (parse_number):  Remove prototype and stub function.
	* ch-exp.y (decode_integer_literal):  Removed unused digits and
	  temp variables.
	* ch-exp.y (convert_float):  Completely ifdef out for now.
	* ch-exp.y (tokentab2, tokentab3, tokentab4, tokentab5),
	  ch-lang.c (chill_op_print_tab):
	  Change from ANSI-obsolescent "const static" to ANSI-conformant
	  "static const".
	* ch-exp.y (yylex):  Add unhandled storage class enumeration
	  literals to switch statement for completeness.
	* ch-lang.c (chill_create_fundamental_types):  Remove unused
	  nbytes variable.  Change dummy type to 2 bytes to match int.
	  Handle FT_VOID types gratuituously added to chill DWARF by
	  compiler.  Change FT_CHAR case to generate an TYPE_CODE_CHAR
	  type rather than a one byte TYPE_CODE_INT type.
	* ch-lang.c (chill_language_defn):  Add chill_print_type and
	  chill_val_print.
	* ch-lang.h (chill_print_type, chill_val_print):  Add prototypes.
	**** end-sanitize-chill ****
1992-12-18 20:21:32 +00:00
Fred Fish
51b80b0072 * complaints.c: New file, code moved from utils.c.
* complaints.c (complain):  Made into a varargs function.
	* complaints.h:  New file, code moved from symfile.h.
	* Makefile.in (SFILES_MAINDIR):  Add complaints.c.
	* Makefile.in (HFILES):  Add complaints.h.
	* Makefile.in (OBS):  Add complaints.o.
	* symfile.c (complaint_root, stop_whining, complaint_series,
	complain, clear_complaints, add_show_from_set for stop_whining):
	Moved to complaints.c.
	* symfile.h (struct complaint, complaint_root decl, complain
	prototype, clear_complaints prototype):  Moved to complaints.h.
	* buildsym.c, coffread.c, dbxread.c, dwarfread.c, elfread.c,
	gdbtypes.c, mipsread.c, stbsread.c, symfile.c:  Include
	complaints.h.  Remove casts from arguments to complain(),
	which is now a varargs function, and remove unnecessary
	placeholder zero args.
	* defs.h (begin_line):  Add prototype.
	* defs.h (vprintf_filtered):  Add prototype.
	* dwarfread.c (varargs.h):  Remove, no longer needed.
	* dwarfread.c (dwarfwarn):  Remove prototype and function.
	* dwarfread.c (complaints):  Define a bunch of complaints.
	* dwarfread.c (SQUAWK):  Remove macro defs, convert all
	usages to standard complain() calls.
	* utils.c (begin_line):  New function that ensures that
	whatever gets filter-printed next starts on its own line.
	* utils.c (vprintf_filtered):  New func, like vfprintf_filtered,
	but to stdout (calls vfprintf_filtered internally).
1992-12-15 12:18:53 +00:00
Fred Fish
85f0a8484f * gdbtypes.c (create_array_type): Complete rewrite. Now requires
a optional type to decorate as an array type, the type of the
	index, and the bounds of the array.  Records this additional info
	in the array type for use with languages with nonzero array
	bounds.
	* gdbtypes.h (enum type_code):  Update comment for TYPE_CODE_ARRAY
	to note that arrays may have bounds.
	* gdbtypes.h (create_array_type):  Update prototype.
	* c-exp.y (ptype production):  Adjust for new create_array_type
	calling conventions.
	* coffread.c (decode_type):  Call create_array_type rather than
	handcrafting array types.
	* convex-tdep.c (value_type):  Remove, now use create_array_type.
	* convex-tdep.c (value_of_trapped_internalvar):  Convert calls to
	vector_type into calls to create_array_type.
	* dwarfread.c (decode_subscr_data):  Name changed to
	decode_subscript_data_item throughout.
	* dwarfread.c (decode_subscript_data_item):  Rewrite to use
	create_array_type.  Now records index type and range as well.
	* dwarfread.c (dwarf_read_array_type):  Rewrite as part of
	change to use create_array_type.
	* dwarfread.c (read_subroutine_type):  Test existing user defined
	types before decorating them, to ensure they are blank, and
	complain about it if they are not.
	* dwarfread.c (decode_fund_type):  For unrecognized types, always
	return some valid type (type integer).  If the unrecognized type
	cannot be an implementation defined type, complain as well.
	* m88k-tdep.c (pushed_size):  Update comment for TYPE_CODE_ARRAY.
	* m88k-tdep.c (store_param):  Update comment for TYPE_CODE_ARRAY.
	* mipsread.c (upgrade_type):  Add FIXME comment that code to
	handcraft arrays should be replaced with call to create_array_type.
	* stabsread.c (read_array_type):  Replace code to handcraft
	array types with call to create_array_type.
	* valprint.c (type_print_varspec_prefix):  Minor formatting
	change, join lines that don't need to be split.
1992-12-15 02:52:11 +00:00
John Gilmore
84a792c778 * mipsread.c (UNSAFE_DATA_ADDR): Remove MIPS-host-specific
definition, replace with portable one.
* remote-nindy.c:  Lint.
(nindy_wait):  Return type is int, result is inferior_pid.
* symmisc.c (dump_psymtab):  Only print section_offsets if set.
(initialize_symmisc):  Remove empty function.
* tm-spc-noun.h, tm-sun4os4.h, tm-sun4sol2.h (STACK_END_ADDRESS):
Remove obsolete, misspelled macro.
* doc/gdbint.texinfo:  Document obsolete STACK_END_ADDR.
(all @node commands):  Use new form to avoid nitpicking errors.
* doc/gdbint.texinfo:  Document host/native/target split.
1992-10-21 10:34:07 +00:00
John Gilmore
d5931d797d Lint around file_ptr's (bfd's off_t's) and bfd_seek.
* dbxread.c (read_dbx_symtab):  Use L_SET as bfd_seek arg.
(elfstab_build_psymtabs):  staboffset and stabstroffset args are
file_ptr's.
* dwarfread.c (struct dwfinfo):  Convert dbfoff, lnfoff to file_ptr.
(scan_compilation_units):  Punt unused filename arg.  dbfoff,
lnoffset, and curlnoffset are file_ptr's now.
(dwarf_build_psymtabs):  Drop desc and filename args; use
objfile.  dbfoff and lnoffset are file_ptr's now.
(read_ofile_symtab):  foffset is now file_ptr.  Use L_SET in bfd_seek.
* elfread.c (struct elfinfo):  dboffset and lnoffset are file_ptr's.
(elf_symfile_read):  Skip desc and filename args to
dwarf_build_psymtabs.  Pass file_ptr's to elfstab_build_psymtabs.
* gdb-stabs.h:  Use file_ptr rather than off_t.
* mipsread.c (fixup_symtab): f_ptr is a file_ptr.  Re-enable
compile-time debug check that someone turned off as "unused".
(read_the_mips_symtab):  st_filptr is a file_ptr.  Fix bfd_seek call.
* symfile.h:  Update dwarf_build_psymtabs and
elfstab_build_psymtabs prototypes.
* xcoffread.c (init_stringtab, init_lineno, xcoff_symfile_read):
Use file_ptr offsets.  bfd_seeks use L_SET.
1992-10-15 13:40:40 +00:00
Stu Grossman
dac4929a6d * mips-tdep.c, mipsread.c, tm-mips.h: Get rid of ".gdbinfo."
symbol.  #define MIPS_EFI_SYMBOL_NAME instead.  Use different
value so that demangler won't be invoked.  This greatly speeds up
stepping.
* mips-tdep.c (mips_pop_frame):  Rewrite handling of
linked_proc_info so that it properly deallocates the appropriate
item after it is done with it instead of before.
* Don't pass bogus frame pointer to create_new_frame().  Just
leave it as zero so that lower level code will figure out the
correct value.
1992-10-15 08:36:30 +00:00
Fred Fish
4ed3a9ea66 * breakpoint.c, buildsym.c, c-exp.y, coffread.c, command.c,
core.c, cplus-dem.c, dbxread.c, dwarfread.c, elfread.c, environ.c,
	eval.c, findvar.c, gdbtypes.c, hppabsd-tdep.c, hppahpux-tdep.c,
	i386-tdep.c, ieee-float.c, infcmd.c, inflow.c, infptrace.c,
	infrun.c, m2-exp.y, mipsread.c, objfiles.c, parse.c, procfs.c,
	putenv.c, remote-mm.c, remote-vx.c, solib.c, sparc-tdep.c,
	sparc-xdep.c, stack.c, symfile.c, symtab.c, symtab.h, target.c,
	tm-i386v.h, tm-sparc.h, utils.c, valarith.c, valops.c, valprint.c,
	values.c, xcoffread.c:
	Remove "(void)" casts from function calls where the return value
	is ignored, in accordance with GNU coding standards.
1992-07-04 03:22:08 +00:00
Fred Fish
51b57ded88 * dbxread.c, i386-pinsn.c, i386-tdep.c, regex.c, solib.c, symmisc.c,
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.
1992-06-29 23:34:38 +00:00
Fred Fish
50e0dc4198 * mipsread.c: Pass NULL name pointer to init_type, not 0.
* 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.
1992-06-25 19:10:49 +00:00
Fred Fish
fa0bcaa3a5 * mipsread.c: Undo ill effects from including <strings.h>,
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.
1992-06-17 05:23:00 +00:00
Stu Grossman
b303297ad8 * mipsread.c: #include <strings.h> for rindex(). 1992-06-16 21:17:43 +00:00
Fred Fish
4a11eef2eb Add TYPE_FLAG_FUND_TYPE bit to the flags member of the type structure,
and use it to decide when to print the actual type name rather than
trying to invent the name of a fundamental type.  This clears up the
confusion between int/long when they are the same sizes, removes one
obstacle to multi-language support (previously valprint.c thought
everything was a C type), and allows gdb to support distinctions between
explicitly and implicitly signed types when the compiler supports such
distinction in the debug output (as does every ANSI compiler I tested
except for gcc).
1992-04-15 05:42:00 +00:00
John Gilmore
817bc7b82a * mipsread.c (parse_partial_symbols): Complain when sh->index is
too high or when skipping `forwards' moves us backwards.
	(parse_type):  Print mis-guessed tag name in complaint.
	(parse_external):  Eliminate cur_stab and obscure top_stack clobbers.
	(parse_procedure):  Do not attempt to create symbols; just fill in
	the SYMBOL_VALUE field of a .gdbinfo. symbol if we can find one.
	(psymtab_to_symtab_1):  Split up `stabs' from `native ecoff' code
	for clarity.  Set top_stack before calling parse_external.  In
	stabs, sort symbols before calling parse_procedure.
	* mipsread.c:  Lint.
	* symmisc.c (std_in, std_out, std_err):  Add vars to access std
	FILE *'s when debugging GDB (e.g. as args to dump_symtab).
	* Makefile.in:  Remove stage* targets.  Avoid echo on recursive
	makes.  Eliminate doc/Makefile from tar.Z file if doc/Makefile.in
	exists.
	* mipsread.c:  Cleanup.  Add more complaints for unhandled cases.
	Remove new symbol types and such to ../include/coff/symconst.h.
	(parse_symbol):  Simplify code for parsing struct/enum/unions.
	(parse_type):  Handle `long long' types.
	(upgrade_type):  Handle `const' qualifier.
	(parse_partial_symbols):  fix indentation, clean a bit.
1992-04-12 06:40:04 +00:00
Stu Grossman
391ca579f1 * mipsread.c: Create a .gdbinfo pseudo-symbol for each
function also when parsing embedded stabs.
1992-04-07 06:21:33 +00:00
Per Bothner
ad142b8e1f * mipsread.c: Create a .gdbinfo pseudo-symbol for each
function also when parsing embedded stabs.
1992-04-07 00:29:36 +00:00
Stu Grossman
e5578a31ee * mipsread.c: Fix many invocations of complain. Use enum
type_code where appropriate.
1992-04-07 00:17:33 +00:00
Stu Grossman
41bd448eaa * mipsread.c: Fix many invocations of complain. 1992-04-06 23:43:04 +00:00
Stu Grossman
b2de19e3c6 * buildsym.h, dbxread.c, mipsread.c: Add objfile arg to
process_one_symbol.
1992-04-04 01:43:01 +00:00
John Gilmore
e10a30523e * Makefile.in (OBS): Compile mipsread.c for all targets now.
(VERSION):  Bump to 4.4.85.
* mipsread.c:  Update for new include files.  Lint.
* tm-irix3.h, tm-mips.h:  Use new include files for ECOFF symtab.
* config/{bigmips.mt, littlemips.mt, irix3.mt, decstation.mt}:
Don't need to bring in mipsread.o specially any more.
1992-04-03 04:30:55 +00:00
Stu Grossman
4ad1963ee0 * mipsread.c (fixup_sigtramp): Also look for _sigtramp as a real
routine (for Irix-4.x).  Make many funcs static and void.
* mips-tdep.c (mips-frame-chain):  Clean up, simplify.
* (init_extra_frame_info):  Don't trash cached value of frame
pointer register.  This fixes backtracing through routines that use
alloca().  Generally clean up declarations of functions, and use
typedefs and macros to reference data structures as appropriate.
* tm-irix3.h, tm-mips.h (EXTRA_FRAME_INFO):  use proper type for
proc_desc element.
1992-04-03 03:55:42 +00:00
Stu Grossman
d1bb1d4170 * mipsread.c (parse_symbol, parse_procedure): Re-do the way that
.gdbinfo. symbols are created.  Move creation from parse_procedure
to parse_symbol, where it is fairly easy to grow the symtab.  This
also fixes a symtab trashing bug on all mips-based systems.
* (got_numargs, lookup_numargs, free_numargs):  Delete.  Not
needed anymore.
* tm-mips.h, tm-iris3.h, mips-tdep.c, mipsread.c:  Re-do struct
mips_extra_func_info, and all the PROC_xxx macros that look at it.
1992-03-31 01:21:01 +00:00
John Gilmore
84ffdec2cb Create and use macros for iterating on symtabs, psymtabs, msymbols.
* minsyms.c (iterate_over_msymbols):  Remove; clunky and slow.
* symfile.h, symtab.h (iterate_over_msymbols):  Remove prototype
* coffread.c (coff_symfile_read):  iterate_over_symtabs => ALL_SYMTABS.
(patch_opaque_types):  Avoid dummy args and result.
* objfiles.c (have_partial_symbols, have_full_symbols,
have_minimal_symbols):  explicit iteration => ALL_OBJFILES; simplify.
(iterate_over_objfiles, iterate_over_symtabs,
iterate_over_psymtabs):  Remove, clunky and slow.
* objfiles.h:  Replace iterate_over_* prototypes with ALL_SYMTABS,
ALL_PSYMTABS, and ALL_MSYMBOLS macros.
* symmisc.c (dump_symtab, dump_psymtab, dump_msymbols,
dump_objfile):  Remove dummy args and results.  Move filename
comparisons to callers.
(printsyms_command, printpsyms_command, printmsyms_command,
printobjfiles_command):  iterate_over_* => ALL_*.  Compare filenames.
* symtab.c (lookup_symtab_1, lookup_symtab, lookup_partial_symtab,
lookup_symbol, find_main_psymtab, find_pc_symtab, sources_info,
list_symbols, make_symbol_completion_list):  Replace explicit
iteration with ALL_SYMTABS, ALL_PSYMTABS, or ALL_MSYMBOLS.
Eliminate Dijkstra flag crap, break out of loops with gotos.
(lookup_symtab_1):  Protect '/' tests from short filenames.
(cplus_mangled_symbol):  Move inline into lookup_symbol.
* xcoffexec.c (relocate_objfile_msymbols):  Remove poor hack.
(relocate_minimal_symbol):  Move inline to vmap_symtab.
(vmap_symtab):  Replace iteration with ALL_OBJFILES,
iterate_over_msymbols with ALL_MSYMBOLS.

Misc cleanup prior to release.

* dwarfread.c (dwarf_build_psymtabs):  Remove mainline test.
* mipsread.c (compare_symtabs, compare_psymtabs):  Remove, unused.
* mipsread.c:  Add prototypes for all static functions.

* symmisc.c (dump_symtab_lines, dump_symtabs, dump_last_symtab,
dump_blockvector, dump_block, dump_addrchass, dump_namespace,
dump_symbol, dump_type, dump_linetable, dump_strtbl):  Remove, unused.
* xcoffread.c (dump_symtab_lines, dump_symtabs, dump_last_symtab,
dump_blockvector, dump_block, dump_addrchass, dump_namespace,
dump_symbol, dump_type, dump_linetable, dump_strtbl):  Remove 2nd
unused copy!

* buildsym.c (define_symbol):  Handle global register variables
(from Pierre Willard).  Complain if register numbers are too large.
1992-03-29 23:17:36 +00:00
Fred Fish
5e2e79f859 Many changes, most related to creating entry point information on a per-objfile
basis.  See comments in objfiles.h and details in ChangeLog.  Also remove
redundant definitions of FRAME_CHAIN_VALID from most of the tm-* files and
use a default definition in frame.h.
1992-03-21 01:56:01 +00:00
Fred Fish
80d68b1d49 * coffread.c, mipsread.c, xcoffread.c, coffread.c, dbxread.c,
elfread.c (coff_symfile_finish):  Add function, prototype, and
	add to the xxxx_sym_fns struct for each file type.  Also reformat
	the xxxx_sym_fns vector to a standard format and add comments.
	* coffread.c, mipsread.c, xcoffread.c, coffread.c, dbxread.c,
	elfread.c (xxx_symfile_new_init, xxx_symfile_init, xxx_symfile_read):
	Pass pointer to struct objfile rather than pointer to sym_fns.
	Change references inside each function accordingly.  Allocate any
	symbol file specific info in the per-objfile memory region.
	* dbxread.c (free_and_init_header_files):  Break function into
	free_header_files(), called from dbx_symfile_finish(), and
	init_header_files(), called from dbx_new_init().
	* dbxread.c (dbx_new_init):  Move deallocation things to new
	dbx_symfile_finish function.
	* elfread.c (elf_new_init):  Call buildsym_new_init().
	* objfiles.c (free_objfile): Call the appropriate symfile_finish()
	routine for the objfile before deallocating other stuff.
	* sparc-tdep.c (get_longjmp_target):  Cast target_read_memory arg.
	* symfile.h:  Move struct sym_fns to before struct objfile def.
	Add sym_finish function pointer and change prototypes of other
	function pointers to reflect passing struct objfile pointer rather
	than struct sym_fns pointer.
	* symfile.c:  Remove now obsolete symtab_fns pointer.
	* symfile.c (symfile_init):  Renamed to find_sym_fns, and now only
	locates the correct sym_fns struct for the given objfile.
	* symfile.c (syms_from_objfile, symbol_file_add):  Restructured
	for better support of mapped symbol tables.
	* symfile.c (symbol_file_command):  Remove obsolete code using
	symfile_fns.
	* symfile.h:  Remove duplicate declarations for symfile_objfile,
	entry_point, and object_files.
	* target.c (target_info):  Compare symfile_objfile to NULL.
	* xcoffread.c (aixcoff_new_init):  Move deallocation stuff to
	aixcoff_symfile_finish().
1992-03-19 21:57:15 +00:00
John Gilmore
bec9fad905 * mipsread.c (mipscoff_symfile_read): Eliminate a lot of
useless code, including an lseek to an uninitialized variable.
Reported by Jim Williams <jimbo@wrs.com>.
1992-03-14 05:40:34 +00:00
Stu Grossman
407a8389b4 * config.sub configure.in config/.Sanitize config/mh-irix4
gdb/.Sanitize gdb/configure.in gdb/mips-tdep.c gdb/mipsread.c
gdb/procfs.c gdb/signame.h gdb/tm-irix3.h gdb/tm-mips.h
gdb/xm-irix4.h gdb/config/.Sanitize gdb/config/mt-irix3
gdb/config/mh-irix4 texinfo/configure.in:  Port to SGI Irix-4.x.
1992-03-05 20:20:27 +00:00
Michael Tiemann
d747e0af3d Tue Mar 3 15:11:52 1992 Michael Tiemann (tiemann@cygnus.com)
* All GDB files that #include defs.h: Removed stdio.h.
	(defs.h): #include stdio.h.

This has been tested by building GDBs for all targets hosted on Sun4.
None of the build problems were related to stdio.h inclusion.  (n.b.
many configurations don't build for other reasons.)
1992-03-03 23:26:26 +00:00
John Gilmore
021959e249 * xm-sun3os4.h, xm-sun4os4.h: Enable HAVE_MMAP.
* minsyms.c (install_minimal_symbols):  Add bunches to any
existing minsyms in the objfile.  Avoid extra mallocation
by working directly in the obstack.  Remove ignored `mainline' parm.
* coffread.c, dbxread.c, elfread.c, mipsread.c, solib.c, symtab.h,
xcoffread.c:  Change all callers.
* FIXME:  We should be able to eliminate MAINLINE from all the
symbol readers now, with a small bit of work.

* valops.c, value.h:  Lint.
* remote-vx.c:  Add missing break; statement.  Bugfix by
Michael Sclafani, <sclafani@src.dec.com>.
1992-02-22 08:17:01 +00:00
John Gilmore
778c358df8 * mipsread.c (parse_symbol): Avoid clobbering enum pointer when
looking at its members.  Improve guess between struct and union,
only assuming union if multiple members have offsets of zero.
1992-02-06 06:33:15 +00:00
Per Bothner
bd49ef36c2 Mips-specific bug-fix (for stabs-in-ecoff), and style fix. See ChangeLog. 1992-02-05 02:14:31 +00:00
Per Bothner
d4ea2aba3a Various fixed triggered by trying to do the right thing wrt
to external symbols in mips ecoff binaries.  See ChangeLog.
1992-01-30 03:56:32 +00:00
John Gilmore
c55e616795 Handle debug symbols in dynamically loaded (relocated) code:
* 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.
1992-01-28 02:57:37 +00:00
Per Bothner
7e258d18e0 Oodles of changes. The most important is adding support for stabs
encapsulated in mips ecoff.  See ChangeLog for the gory details.
1991-12-23 23:16:58 +00:00
Steve Chamberlain
f5f0679af0 Changes due to include file renaming:
* xcoffread.c:	internalcoff.h	->coff/internal.c,
	  		coff-rs6000.h	->coff/rs6000.h
	* mipsread.c:	coff-mips.h	->coff/mips.h
	* elfread.c:    elf-common.h	->elf/common.h
			elf-external.h	->elf/external.h,
			elf-internal.h	->elf/internal.h
	* dwarfread.c	dwarf.h		->elf/dwarf.h
	* dbxread.c:	aout64.h	->aout/aout64.h
			stab.gnu.h	->aout/stab_gnu.h

	* coffread.c:   internalcoff.h	->coff/internal.h
	* buildsym.c:   stab.gnu.h	->aout/stab_gnu.h
	* depend        Updated to take the above into account.
1991-12-01 06:47:23 +00:00
John Gilmore
67c29f758d Make structs work on DECstation (sigh) 1991-11-28 00:51:48 +00:00
John Gilmore
52bd2c221f Fix syntax errors. 1991-11-27 23:32:47 +00:00
John Gilmore
f1d77e9053 Improve G++ debugging support. 1991-11-27 09:43:59 +00:00
John Gilmore
7d9884b927 * defs.h: Incorporate param.h. All users changed.
* param-no-tm.h:  Change users to define TM_FILE_OVERRIDE instead.
* param.h, param-no-tm.h:  Removed.
* Update copyrights in all changed files.
* dbxread.c, dwarfread.c, inflow.c, infrun.c, m2-exp.y, putenv.c,
solib.c, symtab.h, tm-umax.h, valprint.c:  Lint.
* tm-convex.h, tm-hp300hpux.h, tm-merlin.h, tm-sparc.h,
xm-merlin.h:  Avoid host include files in target descriptions.
* getpagesize.h:  Removed, libiberty copes now.
1991-11-21 18:42:05 +00:00
John Gilmore
a048c8f537 Add tracking of object files (that contain symbols) to gdb.
This includes a "struct objfile" that owns symtabs and psymtabs
that were read in from that binary file.  See ChangeLog.
1991-11-09 10:50:07 +00:00
John Gilmore
c9bd6710ad * mipsread.c (read_mips_symtab, read_the_mips_symtab): Use real
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.
1991-11-01 19:12:35 +00:00
John Gilmore
d47d5315c8 * symfile.c (syms_from_bfd): New routine.
(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).
1991-10-26 08:02:23 +00:00
Fred Fish
4a35d6e91b Remove the object file specific fields from the partial symbol table
structure and replace them with a pointer to private data for each
different flavor of object file reader to initialize appropriately.
1991-10-24 08:42:20 +00:00
John Gilmore
e5fa3486b1 * mipsread.c (_initialize_mipsread): Avoid using
builtin_type_void at initialize time.
(mipscoff_symfile_read):  use it now.
1991-09-19 22:39:39 +00:00
John Gilmore
0c4d2cc2b3 * symfile.c (allocate_symtab): New fn, consolidates the work
of allocating and initializing a new struct symtab.  Set the
language of the symtab based on its filename extension.
* symfile.h:  Declare it.
* mipsread.c (new_symtab):  Use it.  Minor formatting changes.
* dbxread.c (end_symtab):  Use it.

* mipsread.c (parse_symbol, case stParam and stProc):  Add #if 0'd
code for saving types of parameters with each function definition.
* dbxread.c (define_symbol, function and parameter cases):  Ditto.
(read_dbx_symtab, case N_DEFD):  Ignore.
(read_enum_type):  Recognize FALSE/TRUE enum as Modula-2 BOOLEAN
type.
(read_range_type):  Rename MAX_OF_TYPE to MAX_OF_C_TYPE, etc.
#if 0 out its uses, though, since they set a dead value.
* coffread.c (end_symtab):  Use allocate_symtab.
(process_coff_symbol):  #if 0'd for functions and params as above.
(read_enum_type):  Recognize Modula-2 BOOLEAN.
1991-09-19 02:32:35 +00:00
Stu Grossman
3eaebb754c Fix signed vs. unsigned char bug in parse_lines(). 1991-09-17 05:17:00 +00:00
John Gilmore
101f259c8f Make mipsread.c handle static symbols, both in psymtabs and symtabs. 1991-07-19 07:09:41 +00:00
John Gilmore
b8c50f0918 * core.c (memory_error): Reword error msg to mislead less.
* 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.
1991-07-09 02:08:13 +00:00
John Gilmore
e072c73824 * mipsread.c: Rather than keeping count of how many symtabs
and psymtabs we have, for sorting purposes, count them when
        we need to sort.  This fixes bug in rereading of symbol tables.
1991-05-13 21:59:43 +00:00
John Gilmore
8ffd75c8a9 Mips bringup and general cleanup
* 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.
1991-05-03 01:07:12 +00:00
Jim Kingdon
961b4908e9 * mipsread.c (parse_symbol): Set startup_file_{start,end} if
entry_point is in current file.
1991-04-20 03:27:04 +00:00
Jim Kingdon
31ef19fc7f *** empty log message *** 1991-04-19 03:22:12 +00:00
John Gilmore
d219db0133 * symtab.h (GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK): New
defines for the blocks of a blockvector that contain global and
        file-static symbols and the first of the smaller scope contours.
	* mipsread.c:  Use them.

        * coffread.c (end_psymtab):  Free named symtabs and psymtabs for
        a file, once a new symtab has been read for it.
        * mipsread.c:  FIXME.  We need to do the same for MIPS, but it
        looks harder to determine the top-level block before it's been
        queued to the psymtab list.
1991-04-13 22:31:54 +00:00
K. Richard Pixley
bd5635a1e2 Initial revision 1991-03-28 16:26:26 +00:00