Commit graph

233 commits

Author SHA1 Message Date
Kevin Buettner
a14ed312fd PARAMS removal. 2000-05-28 01:12:42 +00:00
Andrew Cagney
4d6140d95e Cleanup delete_breakpoint cleanups. 2000-05-15 05:54:02 +00:00
Jim Blandy
4478b372e9 * gdbarch.sh (POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Two new
functions which architectures can redefine, defaulting to
generic_pointer_to_address and generic_address_to_pointer.
* findvar.c (extract_typed_address, store_typed_address,
generic_pointer_to_address, generic_address_to_pointer): New
functions.
(POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Provide default
definitions.
(extract_address, store_address): Doc fixes.
* values.c (value_as_pointer): Doc fix.
(value_from_pointer): New function.
* defs.h (extract_typed_address, store_typed_address): New
declarations.
* inferior.h (generic_address_to_pointer,
generic_pointer_to_address): New declarations.
* value.h (value_from_pointer): New declaration.

* ax-gdb.c (const_var_ref): Use value_from_pointer, not
value_from_longest.
* blockframe.c (generic_push_dummy_frame): Use read_pc and
read_sp, not read_register.
* c-valprint.c (c_val_print): Use extract_typed_address instead of
extract_address to extract vtable entries and references.
* cp-valprint.c (cp_print_value_fields): Use value_from_pointer
instead of value_from_longest to extract the vtable's address.
* eval.c (evaluate_subexp_standard): Use value_from_pointer
instead of value_from_longest to compute `this', and for doing
pointer-to-member dereferencing.
* findvar.c (read_register): Use extract_unsigned_integer, not
extract_address.
(read_var_value): Use store_typed_address instead of store_address
for building label values.
(locate_var_value): Use value_from_pointer instead of
value_from_longest.
* hppa-tdep.c (find_stub_with_shl_get): Use value_from_pointer,
instead of value_from_longest, to build arguments to __d_shl_get.
* printcmd.c (set_next_address): Use value_from_pointer, not
value_from_longest.
(x_command): Use value_from_pointer, not value_from_longest.
* tracepoint.c (set_traceframe_context): Use value_from_pointer,
not value_from_longest.
* valarith.c (value_add, value_sub): Use value_from_pointer, not
value_from_longest.
* valops.c (find_function_in_inferior, value_coerce_array,
value_coerce_function, value_addr, hand_function_call): Same.
* value.h (COERCE_REF): Use unpack_pointer, not unpack_long.
* values.c (unpack_long): Use extract_typed_address to produce
addresses from pointers and references, not extract_address.
(value_from_longest): Use store_typed_address instead of
store_address to produce pointer and reference values.
2000-04-14 18:43:41 +00:00
Andrew Cagney
03f2053f96 Replace ../include/wait.h with gdb_wait.h. 2000-02-09 08:52:47 +00:00
Jason Molenda
d9fcf2fb1c import gdb-2000-02-01 snapshot 2000-02-02 00:21:19 +00:00
Jason Molenda
4ce44c668d import gdb-1999-11-16 snapshot 1999-11-17 02:31:06 +00:00
Jason Molenda
2acceee218 import gdb-1999-10-04 snapshot 1999-10-05 23:13:56 +00:00
Jason Molenda
6426a772a2 import gdb-1999-09-28 snapshot 1999-09-28 21:55:21 +00:00
Jason Molenda
c2c6d25f0d import gdb-1999-09-21 1999-09-22 03:28:34 +00:00
Stan Shebs
d4f3574e77 import gdb-1999-09-08 snapshot 1999-09-09 00:02:17 +00:00
Jason Molenda
104c1213b4 import gdb-1999-08-30 snapshot 1999-08-31 01:14:27 +00:00
Jason Molenda
53a5351d90 import gdb-1999-08-23 snapshot 1999-08-23 22:40:00 +00:00
Jason Molenda
7be570e7ce import gdb-1999-08-16 snapshot 1999-08-16 19:57:19 +00:00
Jason Molenda
a0b3c4fd32 import gdb-1999-08-02 snapshot 1999-08-02 23:48:37 +00:00
Jason Molenda
adf40b2e16 import gdb-1999-07-19 snapshot 1999-07-19 23:30:11 +00:00
Jason Molenda
c5aa993b1f import gdb-1999-07-07 post reformat 1999-07-07 20:19:36 +00:00
Jason Molenda
cce74817d9 import gdb-1999-06-07 snapshot 1999-06-07 19:19:32 +00:00
Stan Shebs
b83266a0e1 import gdb-19990504 snapshot 1999-05-05 14:45:51 +00:00
Stan Shebs
7a292a7adf import gdb-19990422 snapshot 1999-04-26 18:34:20 +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
David Taylor
65b07ddca8 all remaining *.c *.h files from hp merge. 1998-12-31 21:58:30 +00:00
David Taylor
4ef1f46773 hp merge changes -- too numerous to mention here; see ChangeLog and
ChangeLog-gdbtk for details.
1998-12-28 23:06:13 +00:00
Andrew Cagney
9ddf9aa9be CARP:
Rename REGISTER_NAMES{} -> REGISTER_NAME().
1998-12-10 06:10:03 +00:00
Andrew Cagney
b696009406 CARP:
Cleanup FRAME_CHAIN_VALID. Replace all macro's with functions.
1998-11-30 10:56:16 +00:00
Andrew Cagney
c8623080cb CARP: --enable-build-warnings=-Werror: Fix problems stopping GDB being
canadian-crossed to host i386-cygwin.
1998-11-25 22:13:53 +00:00
Andrew Cagney
98760eab33 CARP: Convert macro definitions of USE_STRUCT_CONVENTION into target
specific functions.
1998-11-23 12:35:23 +00:00
Stan Shebs
3e269acb3e * coffread.c (coff_symtab_read) [SEM]: Remove code, macro can
never be defined.
	* dbxread.c (process_one_symbol) [BLOCK_ADDRESS_ABSOLUTE]:
	Remove, no longer needed.
	* hppa-tdep.c (N_SET_MAGIC): Remove, no longer used.
	* config/pa/xm-hppab.h (SEEK_SET, SEEK_CUR, SEEK_END): Ditto.
	* config/mips/tm-mipsm3.h (NUMERIC_REG_NAMES): Ditto.
	* config/mips/mipsm3.mt (TDEPFILES): Remove mipsread.o.
Cruft discovered while working on GDB internals manual
1998-01-30 03:54:54 +00:00
Stu Grossman
5d394f7072 * Makefile.in: Add rule for hpux-thread.o (needs special header
files).
	* (SUBDIRS):  Remove mswin.
	* Change procedure for creating init.c.  Speeds things up quite a
	bit.
	* config.in configure configure.in:  Check for select, poll.
	* Check for OSF header files before including hpux-thread.o.
	* Don't configure doc or testsuite when building under MSVC.
	* findvar.c value.h (read_register_pid write_register_pid):  Make
	global.  Needed for hppa-tdep.c.
	* (supply_register):  Don't set pid to inferior_pid when supplying
	registers.
	* hppa-tdep.c (saved_pc_after_call):  frame_saved_pc ->
	FRAME_SAVED_PC.
	* (frame_saved_pc):  Change name to hppa_frame_saved_pc.
	* (hppa_pop_frame):  Don't use a pid of 0 with target_write_pc.
	Use write_pc instead, which uses the correct pid.
	* (target_read_pc target_write_pc):  Use read/write_register_pid
	instead of read/write_register to preserve the pid passed in.
	* inftarg.c (child_can_run):  Add flag child_suppress_run to allow
	hpux-threads.c to override this as a runnable target.
	* config/pa/nm-hppah.h:  Define target_new_objfile and
	target_pid_to_str.
	* config/pa/tm-hppa.h (FRAME_SAVED_PC):  Use hppa_frame_saved_pc
	instead of frame_saved_pc.
	* config/m68k/tm-m68k.h:  Define TARGET_M68K for Wingdb.
	* config/m68k/tm-monitor.h:  Use FRAME_CHAIN_VALID_ALTERNATE, since
	we can't easily determine the start file bounds with ELF.
	* config/mips/tm-mips.h:  Define TARGET_MIPS for Wingdb.
	* hpux-thread.c:  New file for HPUX/OSF thread support.
	* osf-share/{README AT386/cma_thread_io.h HP800/cma_thread_io.h
	RIOS/cma_thread_io.h cma_attr.h cma_deb_core.h cma_debug_client.h
	cma_errors.h cma_handle.h cma_init.h cma_list.h cma_mutex.h
	cma_sched.h cma_semaphore_defs.h cma_sequence.h cma_stack.h
	cma_stack_int.h cma_tcb_defs.h cma_util.h}:  New files for OSF
	thread support.
1996-10-08 17:06:17 +00:00
Fred Fish
eb17f9d504 * findvar.c (write_register_pid): Only needed when TARGET_WRITE_PC
is not defined.
	(read_register_pid): Only needed when TARGET_READ_PC is not
	defined.
	* hppa-tdep.c (frame_saved_pc): Remove prototype.
	* infptrace.c (udot_info): Prototype when CHILD_XFER_MEMORY is
	not defined.
	* config/xm-aix4.h (aix_resizewindow): Convert old style decl
	to prototype.
	* xcoffsolib.c (command.h): Include for needed prototypes.
1996-08-15 20:52:34 +00:00
Fred Fish
e5718bee33 From Blair MacIntyre <bm@cs.columbia.edu>:
* hppa-tdep.c (hppa_fix_call_dummy): Use MSYMBOL_TYPE rather
	than SYMBOL_TYPE on msymbols.
	* somsolib.c (som_solib_create_inferior_hook): Ditto.
1996-08-14 22:41:34 +00:00
Jeff Law
0d43c8e711 * valops.c (call_function_by_hand): Handle aligning stacks that
grow up correctly.
        * config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Define.
        (STACK_ALIGN): Define.
        * hppa-tdep.c (hppa_alignof): Don't demand a minumim two byte
        alignment on structs/unions.
Fixing assorted structure passing/return problems reported by the net.
1996-08-07 16:05:19 +00:00
Fred Fish
3f550b5940 * configure.in: Add test for "long long" support.
* configure: Regenerate with autoconf.
	* acconfig.h: Add CC_HAS_LONG_LONG
	* config.in: Regenerate with autoheader.
	* config/mips/tm-mips64.h (FORCE_LONG_LONG): Remove
	* config/sparc/tm-sp64.h (CC_HAS_LONG_LONG): Remove.
	* config/mips/tm-vr4300el.h (CC_HAS_LONG_LONG): Remove.
	* config/mips/tm-vr4300.h (CC_HAS_LONG_LONG): Remove.
	* config/mips/xm-irix5.h (CC_HAS_LONG_LONG): Remove
	(PRINTF_HAS_LONG_LONG): Remove.
	(FORCE_LONG_LONG): Remove.
	* config/powerpc/xm-aix.h (UINT_MAX): Undef and use gdb's version.
	* config/convex/xm-convex.h (CC_HAS_LONG_LONG): Remove
	(PRINTF_HAS_LONG_LONG): Remove.
	* config/xm-nbsd.h (CC_HAS_LONG_LONG): Remove.
	(PRINTF_HAS_LONG_LONG): Remove.
	* config/pa/tm-hppa.h (GET_FIELD): Put parens around
	subtraction inside shift.  Put parens around subtraction
	in operand of bitwise and.
	(struct frame_info): Forward declare
 	if __STDC__ defined.
	(frame_saved_regs): Ditto.
	(struct value): Ditto.
	(struct type): Ditto.
	(struct inferior_status): Ditto.
	(init_extra_frame_info): Add prototype.
	(skip_prologue): Ditto.
	(frameless_function_invocation): Ditto.
	(frame_chain): Ditto.
	(frame_chain_valid): Ditto.
	(saved_pc_after_call): Ditto.
	(hppa_fix_call_dummy): Ditto.
	(hppa_push_arguments): Ditto.
	(pa_do_registers_info): Ditto.
	(in_solib_call_trampoline): Ditto.
	(in_solib_return_trampoline): Ditto.
	(push_dummy_frame): Ditto.
	* convex-tdep.c (decout): Use print_longest rather than
	fprintf_filtered.
	* defs.h: Remove use of FORCE_LONG_LONG and __GNUC__ to set
	CC_HAS_LONG_LONG.
	(INT_MIN): Fix so it works correctly when assigned to a long long.
	* valprint.c (longest_to_int): Rewrite to remove dependence
	on INT_MIN and INT_MAX.
	(print_longest): Rewrite the code that falls back to synthesized
	hex output when LONGEST value is not representable as in a long and
 	printf doesn't support printing long longs.
	* ch-valprint.c (chill_val_print): Cast 2nd arg of
	chill_print_type_scalar to LONGEST.
	chill_print_type_scalar): Make static and add prototype.
	* hppa-tdep.c (get_field): Ifdef out unused function.
	(set_field): Ditto.
	(extract_3): Ditto.
	(extract_5_store): Ditto.
	(extract_11): Ditto.
	(extract_12): Ditto.
	(deposit_17): Ditto.
	(extract_14): Convert to static and add prototype.
	(deposit_14): Ditto.
	(extract_21): Ditto.
	(deposit_21): Ditto.
	(extract_17): Ditto.
	(extract_5r_store): Ditto.
	(extract_5R_store): Ditto.
	(extract_5_load): Ditto.
	(find_proc_framesize): Ditto.
	(find_dummy_frame_regs): Ditto.
	(sign_extend): Ditto.
	(find_unwind_entry): Add prototype.
	(find_return_regnum): Ditto.
	(unwind_command): Ditto.
	(find_dummy_frame_regs): Add parens around subtraction in operand
	of bitwise-and.
	(skip_prologue): Add parens around operands of logical-and inside
	operand of logical-or.
	(sign_extend): Add parens around operands of subtraction inside
	operand of shift.
	(low_sign_extend): Ditto.
	* top.c (filename_completer): Convert old style decl of
	filename_completion_function into prototype.
	* f-lang.c (patch_common_entries): Ifdef out unused function.
	* stabsread.c (read_cfront_baseclasses): Remove unused local
	variable "msg_noterm".
	(resolve_cfront_continuation): Remove unused local variable "fip".
	(read_type): Remove unused variable xtypenums.
	(read_cfront_static_fields): Remove unused variable "i".
	(read_cfront_static_fields): Remove unused variable "nfields".
	(read_cfront_member_functions): Add missing comment terminator.
	(read_cfront_static_fields): Return 1 rather than random value.
	(read_cfront_baseclasses): Ditto.
	(read_cfront_baseclasses): Ditto.
	(read_cfront_baseclasses): Ditto.
	* somsolib.c (som_solib_create_inferior_hook): Remove unused
	variable "u".
	(som_solib_create_inferior_hook): Remove unused variable
	shadow_contents.
	(language.h): Add for needed prototypes.
	(som_solib_sharedlibrary_command): Add prototype.
	* hpread.c: (hpread_read_array_type): Add prototype.
	* somread.c (hpread_build_pysmtabs): Add prototype.
	(hpread_symfile_finish): Ditto.
	(hpread_symfile_init): Ditto.
	* hppah-nat.c (fetch_register): Convert old style decl
	to prototype.
	(gdbcore.h): Include for needed prototypes.
	(fetch_register): Remove unused variable "mess".
	* remote-pa.c (get_offsets): Ifdef out unused function.
	(remote_start_remote): Remove unused variable "timeout".
	(boot_board): Add prototype.
	(reaad_frame): Add prototype.
	(getpkt): Remove unused variable "bp".
	(remote_kill): Add prototype.
	(remote_mourn): Add prototype.
	(remote_insert_breakpoint): Add prototype.
	(remote_remove_breakpoint): Add prototype.
	* valops.c (value_push): Only use if PUSH_ARGUMENTS is not defined.
	* infcmd.c (do_registers_info): Only need prototype if
	DO_REGISTERS_INFO is not defined.
	(breakpoint_auto_delete_contents): Only need if
	CALL_DUMMY_BREAKPOINT_OFFSET is defined.
1996-07-28 06:32:48 +00:00
Fred Fish
5579919f7d * Makefile.in (scm-exp.o, scm-lang.o, scm-valprint.o): Add targets and
dependencies.
	* scm-lang.c (gdb_string.h): Include.
	* objfiles.c (add_to_objfile_sections): Cast second arg of obstack_grow
	call to correct type (char *).
	* cp-valprint.c (cp_print_static_field): Ditto.
	* somsolib.c (som_solib_create_inferior_hook): Add a declaration
	for external find_unwind_entry function (from hppa-tdep.c).
	* remote-pa.c (remote_write_bytes, remote_read_bytes): Change
	type of second arg to "char *" to be type compatible with
	dcache.
	(remote_wait): Cast second arg to strtol to correct type.
	* hppa-tdep.c (compare_unwind_entries): Change argument types to
	"const void *" to be type compatible with qsort, and then
	assign to local args prior to use.
1996-04-09 06:09:33 +00:00
Fred Fish
251b8ab932 * hppa-tdep.c (hppa_pop_frame): Call clear_proceed_status before
proceeding.
1996-04-01 17:21:32 +00:00
Jeff Law
87273c713f * symfile.c (auto_solib_add): Renamed from auto_solib_add_at_startup.
All references changed.
        * breakpoint.c (bpstat_what): Add shlib_event to the class types.
        Update state table.  Reformat so that it's still readable.
        When we hit the shlib_event breakpoint, set the calss of shlib_event.
        (breakpoint_1): Add "shlib events" as a breakpoint type.
        Print the shlib_event breakpoint like other breakpoints.
        (create_solib_event_breakpoint): New function.
        (breakpoint_re_set_one): Handle solib_event breakpoints.
        * breakpoint.h (enum bytype): Add bp_shlib_event breakpoint type.
        (enum bpstat_what_main_action): Add BPSTAT_WHAT_CHECK_SHLIBS
        action.
        (create_solib_event_breakpoint): Declare.
        * infrun.c (wait_for_inferior): Handle CHECK_SHLIBS bpstat.
        (normal_stop): Inform the user when the inferior stoped due
        to a shared library event.
        (_initialize_infrun): Add new set/show variable "stop_on-solib-events"
        to control whether or not gdb continues the inferior or stops it when
        a shared library event occurs.
        * minsyms.c (lookup_minimal_symbol_solib_trampoline): New function.
        * somsolib.c (TODO list): Update.
        (som_solib_create_inferior_hook): Arrange for gdb to be notified
        when significant shared library events occur.
        * hppa-tdep.c (find_unwind_entry): No longer static.
First cut at the machine independent changes for 7363.  Also includes
code to automatically track shl_load/shl_unload calls on hpux.
1996-01-23 21:06:34 +00:00
Jeff Law
f9384420ae * ch-exp.c (parse_named_record_element): Avoid aggregrate
initializations for automatic variables.

        * hppa-tdep.c (hppa_alignof): Fix typo in last change.

Fixes minor build problems.
1995-12-03 19:59:21 +00:00
Per Bothner
940d596798 * alpha-tdep.c, c-exp.y, h8500-tdep.c, f-exp.y, f-valprint.c,
findvar.c, hppa-tdep.c, infcmd.c, language.c, printcmd.c,
 	rs6000-tdep.c, symmisc.c, symtab.c:
	Add check_typedef/CHECK_TYPEDEF as needed.
1995-11-30 01:43:37 +00:00
Jeff Law
5812b9a12d * hppa-tdep.c (frame_chain): Fix more obscure problems caused
by system calls that core dump processes without saving all
        the register state.
1995-10-18 05:48:23 +00:00
Jeff Law
7e72b115ad * tm-hppa.h (PROLOGUE_FIRSTLINE_OVERLAP): Delete. Causes more
problems than it fixes.
	* hppa-tdep.c (skip_prologue): If we exit the main loop without
	finding all the register saves, retry again without looking for
	the registers we could not find the first time.

Better fix for 7768.
1995-08-22 08:04:15 +00:00
Jeff Law
c85ff3a363 * hppa-tdep.c (frame_chain_valid): Handle systems where "$START$"
calls "main" directly.
	(skip_prologue): Always assume arguments were saved into the stack
	since GCC will do so without setting the magic Args_Saved bit in
	the unwind descriptor.
1995-08-22 05:43:30 +00:00
Jeff Law
f4eec25cb8 * hppa-tdep.c (frame_saved_pc): Don't try to dig a return pointer
out of a long branch stub.

hpux10 _start is incorrectly marked as a long-branch stub.
1995-08-07 04:17:24 +00:00
Fred Fish
6c9638b444 Update FSF address. 1995-08-02 03:41:12 +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
Jeff Law
46f569b403 * hppa-tdep.c (hppa_fix_call_dummy): Rewrite code for calling
into shared libraries.

Amazing...  7363 has required serious work in gcc, gas, bfd, and now gdb...
1995-07-27 08:30:22 +00:00
Jeff Law
b7202faa33 * hppa-tdep.c (frame_chain): Try to compensate for incomplete
register information in core files when backtracing.
1995-06-11 00:03:02 +00:00
Jeff Law
c38e0b58f3 * hppa-tdep.c (frame_saved_pc): Handle backtracing through signal
handler in dynamically linked executables.
mentor-7139
1995-06-07 18:43:58 +00:00
Stu Grossman
d8afcce964 * hppa-tdep.c (read_unwind_info): Cosmetic cleanup.
* (unwind_command):  Clean it up and make it print things out
	nicer.
	* monitor.c:  Add ^C handling capability (mostly ripped off from
	remote.c).
	* (monitor_printf):  Make it check the command echo.
	* (monitor_printf_noecho):  Similar to above, but doesn't check
	for echo.
	* (monitor_stop):  No longer waits for prompt.  That is the job of
	the caller.  This makes things work much better for monitor_wait,
	which waits for the prompt itself.
	* (monitor_open):  Deal with new monitor_stop semantics.  Also,
	flush input after sending init strings to get rid of junk that may
	be output.  Also, don't always send \r to remote.  Use
	monitor_ops->line_term cuz proper character isn't always \r.
	* (monitor_fetch_register):  Switch to completely different
	algorithm to deal with lame-ass monitors which put spaces in the
	middle of numbers, and prompt with a space!!!!!
	* (monitor_read_memory_single):  New routine to be used with
	monitors that can only return one byte/short/long at a time.  This
	is selected via MO_GETMEM_READ_SINGLE.
	* (monitor_load_srec):  Use monitor_printf_noecho for sending S
	records.  Most targets don't echo them.
	* (monitor.h):  Get rid of cmd_delim.  Add line_delim.
	* op50n-rom.c (op50n_cmds):  Fill it up.  Make it work.
	* w89k-rom.c:  Change all eols from \r to \n.  Change load_resp to
	^Q to prevent error message.
	* config/pa/tm-hppa.h (CALL_DUMMY (for hppro)):   Add special
	instruction sequence at end to make restore_pc_queue happy.
1995-05-11 02:26:00 +00:00
Stu Grossman
7486c68d68 * hppa-tdep.c (deposit_17): New routine to deposit 17 bit
constants into PA instructions.
	* Put #ifdefs around all signal handling code.  Not generally
	needed for embedded boards.
	* (hppa_fix_call_dummy):  Parameterize offsets into call dummy to
	allow different dummys to be used by this code.  Use
	INSTRUCTION_SIZE instead of REGISTER_SIZE for things.
	Conditionalize setup of _sr4export fixup.  Improve comments.
	* config/pa/tm-hppa.h:  Define INSTRUCTION_SIZE.  Use a different
	call dummy if PA_LEVEL_0 is defined.  Better comments for call
	dummys.  Define offsets for LDIL/LDO instructions which load
	function addresses.
	* config/pa/tm-pro.h:  Get rid of signal handling stuff.  Define
	PA_LEVEL_0 to disable mucking with space regs and such.
1995-04-20 00:15:14 +00:00
Jim Kingdon
bc28e68dad * hppa-tdep.c (pa_print_registers), monitor.c: Use
extract_unsigned_integer and friends, not SWAP_TARGET_AND_HOST.
	* defs.h, findvar.c: Move SWAP_TARGET_AND_HOST back to findvar.c.
	Rename it to SWAP_FLOATING to make it clear it is no longer for
	integers.
1995-03-01 07:18:04 +00:00
Kung Hsu
326ae3e292 * defs.h: define SWAP_TARGET_AND_HOST macro.
* findvar.c, monitor.c, hppa-tdep.c: remove definition of
        SWAP_TARGET_AND_HOST.
1995-02-28 23:08:06 +00:00
Per Bothner
5222ca60be * valops.c (value_arg_coerce): Now takes param_type argument.
(call_function_by_hand):  Convert arguments with value_arg_coerce
	early, and overwrite original args with converted args.
	No longer need multiple calls to value_arg_coerce.
	(value_arg_push):  Removed.
	* hppa-tdep.c (hppa_push_arguments):  No longer call value_arg_coerce.
	* mips-tdep.c (mips_push_arguments):  Likewise.
	* alpha-tdep.c (alpha_push_arguments):  Likewise.
	* rs6000-tdep.c (push_arguments, ran_out_of_registers_for_arguments):
	Likewise.
	* value.h (value_arg_coerce):  Remove declaration.  (It's now static.)

	* valops.c (value_cast):  Do COERCE_VARYING_ARRAY after COERCE_REF.
1995-02-12 18:51:42 +00:00
Jim Kingdon
2d336b1b51 * config/sparc/tm-sun4sol2.h, dbxread.c: Rename
N_SO_ADDRESS_MAYBE_MISSING to SOFUN_ADDRESS_MAYBE_MISSING.
	* symtab.h (minimal_symbol) [SOFUN_ADDRESS_MAYBE_MISSING]: Add
	filename field.
	* elfread.c (record_minimal_symbol_and_info),
	minsyms.c, symtab.h (prim_record_minimal_symbol_and_info): Return
	newly created symbol.
	* elfread.c (elf_symtab_read) [SOFUN_ADDRESS_MAYBE_MISSING]:
	Set filename field of minimal symbol.
	* symmisc.c (dump_msymbols) [SOFUN_ADDRESS_MAYBE_MISSING]:
	Print filename field.
	* minsyms.c, symtab.h (lookup_minimal_symbol): New arg sfile.
	* symm-tdep.c, somsolib.c, hppa-tdep.c, c-exp.y, f-exp.y,
	m2-exp.y, nindy-tdep.c, m3-nat.c, irix5-nat.c, hpread.c,
	os9kread.c, breakpoint.c, alpha-tdep.c, valops.c, symtab.c,
	printcmd.c, dbxread.c: Change callers to pass NULL for sfile.
	* dbxread.c (process_one_symbol) [SOFUN_ADDRESS_MAYBE_MISSING]:
	Find address of function from minimal symbols.
	* partial-stab.h, case 'f', 'F': Call find_stab_function_addr
	instead of getting pst->textlow from the stab.
	* minsyms.c (find_stab_function_addr): New function.
1995-02-09 07:00:45 +00:00
Stan Shebs
18b46e7c53 General cleanup and simplication of disassembler interface.
* a29k-pinsn.c, arm-pinsn.c, convex-pinsn.c, gould-pinsn.c,
        hppa-pinsn.c, i386-pinsn.c, i960-pinsn.c, m68k-pinsn.c,
        m88k-pinsn.c, mips-pinsn.c, ns32k-pinsn.c, pyr-pinsn.c,
        rs6000-pinsn.c, sparc-pinsn.c, tahoe-pinsn.c, vax-pinsn.c: Remove.
	* gould-tdep.c, ns32k-tdep.c, tahoe-tdep.c, vax-tdep.c: New files,
	had been -pinsn.c files.
	* Makefile.in (ALLDEPFILES): Remove removed files.
	(a29k-pinsn.o, arm-pinsn.o, convex-pinsn.o, gould-pinsn.o,
        hppa-pinsn.o, i386-pinsn.o, i960-pinsn.o, m68k-pinsn.o,
        m88k-pinsn.o, mips-pinsn.o, ns32k-pinsn.o, pyr-pinsn.o,
        rs6000-pinsn.o, sparc-pinsn.o, tahoe-pinsn.o, vax-pinsn.o):
        Remove compile actions.
	* arm-tdep.o, gould-tdep.o, ns32k-tdep.o, tahoe-tdep.o,
	vax-tdep.o: Add compile actions.
	* defs.h (tm_print_insn): New global.
	* a29k-tdep.c (gdb_print_insn_a29k): New function.
	(_initialize_a29k_tdep): Rename from _initialize_29k,
	set tm_print_insn.
	* alpha-tdep.c (print_insn): Remove.
	(_initialize_alpha_tdep): Set tm_print_insn.
	* arm-tdep.c (arm_print_insn): New function, was print_insn
	in arm-pinsn.c.
	* convex-tdep.c (convex_print_insn): New function, was print_insn
	in convex-pinsn.c.
	* h8300-tdep.c (print_insn): Remove.
	(gdb_print_insn_h8300): New function.
	(_initialize_h8300_tdep): New function.
	* h8500-tdep.c (print_insn): Remove.
	(_initialize_h8500_tdep): New function.
	* hppa-tdep.c (_initialize_hppa_tdep): Set tm_print_insn.
	* i386-tdep.c (_initialize_i386_tdep): New function.
	* i960-tdep.c (mem, next_insn): New functions, were in
	i960-pinsn.c.
	(_initialize_i960_tdep): Set tm_print_insn.
	* m68k-tdep.c (_initialize_m68k_tdep): New function.
	* m88k-tdep.c (_initialize_m88k_tdep): New function.
	* mips-tdep.c (gdb_print_insn_mips): New function.
	(_initialize_mips_tdep): Set tm_print_insn.
	* pyr-tdep.c (pyr_print_insn): New function, was print_insn
	in pyr-pinsn.c.
	* rs6000-tdep.c (_initialize_rs6000_tdep): New function.
	* sh-tdep.c (print_insn): Remove.
	(gdb_print_insn_sh): New function.
	(_initialize_sh_tdep): Set tm_print_insn.
	* sparc-tdep.c (_initialize_sparc_tdep): New function.
	* w65-tdep.c (print_insn): Remove.
	(_initialize_w65_tdep): New function.
	* z8k-tdep.c (print_insn): Remove.
	(gdb_print_insn_z8k): New function.
	(_initialize_z8k_tdep): Set tm_print_insn.
	* printcmd.c (print_insn): New function, generic disassembler.
	* config/*/*.mt (TDEPFILES): Remove refs to *-pinsn.o.

	* defs.h (query_hook, error_hook): Fix prototypes.
1995-01-17 04:36:51 +00:00
Rob Savoye
15edf5253b * hppa-tdep.c (pa_print_registers): Extract register values stored
in big endian format on big and little endian hosts.
1994-12-30 01:47:27 +00:00
Jeff Law
3200aa595b * hppa-tdep.c (hppa_fix_call_dummy): Prefer import stubs over
export stubs and actual shared library functions so that lazy
	binding works correctly.  Try both __d_plt_call and __gcc_plt_call
	trampolines for calling import stubs.
1994-12-29 02:31:10 +00:00
Jeff Law
244f7460fb * hppa-tdep.c (push_dummy_frame): Refine code to determine what
space ID to place in the stack & inf_status structure.
	(hppa_pop_frame): Don't walk through trampoline code if popping a
	call dummy frame.
	(hppa_fix_call_dummy): Call the stack dummy directly if the
	current PC is in a shared library.
1994-12-28 21:55:21 +00:00
Jeff Law
e43169eb57 * hppa-tdep.c (push_dummy_frame): Return type is void. Clear
in_syscall bit in flags.  Don't depend on the PC queue registers
	when in_syscall is set, they're not valid.
	* config/pa/tm-hppa.h (PUSH_DUMMY_FRAME): Pass inf_status down to
	push_dummy_frame.
	(SR4_REGNUM): Define.

	* hppa-tdep.c: Misc. lint changes.
1994-12-28 19:33:08 +00:00
Rob Savoye
bd2b724a0c * hppa-tdep.c: Use GDB_TARGET_IS_PA_ELF so SOM target support will
stop being linked in.
	* config/pa/tm-hppap.h: New file. Set GDB_TARGET_IS_PA_ELF,
	otherwise it looks like BSD-ELF.
1994-12-07 21:26:22 +00:00
Jeff Law
b1bbe38b3d * somsolib.c (som_solib_get_got_by_pc): New function.
* somsolib.h (som_solib_get_got_by_pc): Add extern decl.
	* hppa-tdep.c (hppa_fix_call_dummy): Handle case where FUN is the
	function's export stub or real address in a shared library.
1994-12-01 05:34:30 +00:00
Jeff Law
54576db325 * tm-hppa.h (skip_trampoline_code): Add extern decl.
* hppa-tdep.c (hppa_pop_frame): Silently restart the inferior and
	allow it to execute any return path trampoline code.  Stop the
	inferior and give the user control when the trampoline has
	finished executing.
	(in_solib_call_trampoline): Handle export stubs which also perform
	parameter relocations.
	(in_solib_return_trampoline): Likewise.
1994-11-26 04:39:07 +00:00
Jeff Law
a76c22401c * hppa-tdep.c (in_solib_call_trampoline): Recognize calls through
_sr4export and $$dyncall as trampolines.  Likewise for long-call
	stubs and parameter relocation stubs.
	(in_solib_return_trampoline): Recognize a return trampoline for
	return value relocation stubs.
1994-11-25 09:21:49 +00:00
Jeff Law
2848f79344 * hpread.c: Include hp-symtab.h instead of hpux-symtab.h.
Various name changes to match those used by hp-symtab.h.

No longer sanitize away hpread changes.  Merge ChangeLog.hpread into
ChangeLog and ChangeLog-93.
1994-11-25 08:06:49 +00:00
Jeff Law
481faa25ac * blockframe.c (find_pc_partial_function): Inhibit mst_trampoline
symbol special handling when INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK
	is defined.
	* infrun.c (IN_SOLIB_CALL_TRAMPOLINE): Renamed from
	IN_SOLIB_TRAMPOLINE.  All callers changed.
	(IN_SOLIB_RETURN_TRAMPOLINE): Provide default definition.
	(wait_for_inferior): Handle single stepping through trampolines on
	return paths from shared libraries.
	* config/pa/tm-hppa.h (IN_SOLIB_CALL_TRAMPOLINE): Use
	in_solib_call_trampoline.
	(IN_SOLIB_RETURN_TRAMPOLINE): Use in_solib_return_trampoline.
	(INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK): Define.
	* hppa-tdep.c (in_solib_call_trampoline): New function.
	(in_solib_return_trampoline): New function.
1994-11-24 08:02:01 +00:00
Rob Savoye
0eac27b928 * hppa-tdep.c: Remove including sys/dir.h from a target file. 1994-11-16 23:31:41 +00:00
Jeff Law
f32fc5f979 * hppa-tdep.c (skip_trampoline_code): Handle shared library import
trampolines.
1994-11-16 07:21:06 +00:00
Jeff Law
c2e00af68e * hppa-tdep.c (rp_saved): Handle IMPORT stubs too.
* somsolib.c (som_solib_add): Check the value of __dld_flags, if
	it indicates __dld_list is not valid return an error.  If it
	indicates that libraries were not mapped privately, issue a
	warning.
1994-11-11 17:55:38 +00:00
Jeff Law
73a250722a * hppa-tdep.c (read_unwind_info): Use "text_offset" for linker
stub unwind descriptors too.
1994-11-08 06:06:35 +00:00
Jeff Law
bfaef242b5 * Enable backtracing from inside a SOM shared library back into
user code.
	* hppa-tdep.c (internalize_unwinds): Accept and use new
	"text_offset" argument for dynamic relocation of
	region_{start,end} fields in the unwind descriptor.
	(read_unwind_info): Pass text_offset to internalize unwinds.
1994-11-08 05:31:33 +00:00
Jeff Law
54b2555b0c * hppa-tdep.c (frame_saved_pc): Mask off low two bits when
retrieving the PC from a signal handler caller.  Fix thinko
	in Stan's last change ("frame", should have been "frame->next").
	If the next frame is a signal handler caller and it's a system
	call which has entered the kernel ((PSW & 0x2) != 0), then the
	saved pc is in %r2 instead of %r31.
1994-11-06 20:02:31 +00:00
Jeff Law
cb5f71282d * hppa-tdep.c (hppa_frame_find_saved_regs): Change "frame" to
"frame_info" throughout.
1994-11-05 06:56:43 +00:00
Stan Shebs
669caa9c19 Replace useless FRAME, FRAME_ADDR types with struct frame_info *
and CORE_ADDR, respectively.
	* frame.h (FRAME, FRAME_INFO_ID, FRAME_ADDR): Remove.
	* blockframe.c (get_frame_info): Remove.
	* a29k-tdep.c, alpha-tdep.c, blockframe.c, breakpoint.c,
	breakpoint.h, energize.c, findvar.c, gdbtk.c, gould-pinsn.c,
	h8300-tdep.c, h8500-tdep.c, hppa-tdep.c, i386-tdep.c, i960-tdep.c,
	infcmd.c, inferior.h, infrun.c, m68k-tdep.c, m88k-tdep.c,
	mips-tdep.c, nindy-tdep.c, printcmd.c, pyr-tdep.c, rs6000-tdep.c,
	sh-tdep.c, sparc-tdep.c, stack.c, valops.c, z8k-tdep.c,
	config/a29k/tm-a29k.h, config/alpha/tm-alpha.h,
	config/gould/tm-pn.h, config/h8300/tm-h8300.h,
	config/h8500/tm-h8500.h, config/mips/tm-mips.h,
	config/ns32k/tm-merlin.h, config/ns32k/tm-umax.h,
	config/pyr/tm-pyr.h, config/sparc/tm-sparc.h): Replace FRAME with
	struct frame_info * everywhere, replace FRAME_ADDR with CORE_ADDR,
	rename variables consistently (using `frame' or `fi'), remove
	calls to get_frame_info and FRAME_INFO_ID, remove comments about
	FRAME and FRAME_ADDR cruftiness.
1994-11-04 01:19:29 +00:00
Rob Savoye
459877ea9d * hppa-tdep.c: Remove include files a.out.h, ioctl.h, and
machine/psl.h. These are host files.
1994-10-20 04:08:52 +00:00
Jim Kingdon
16726dd15b The point of these changes is to avoid reading the frame pointer
and stack pointer during stepping, to speed things up.
	A.  Changes to not select a frame until we need a selected frame:
	    * blockframe.c (flush_cached_frames): Call select_frame (NULL, -1).
	    * infrun.c (wait_for_inferior): Move call to select_frame back to
	    normal_stop.  This reverts a change of 13 Apr 94 (it says Jeff
	    Law, but the change was my idea); the only reason for that change
	    was so we could save and restore the selected frame in
	    wait_for_inferior, and now that flush_cached frames clears the
	    selected frame, that should work OK now.
	B.  Changes to not create a current_frame until we need one:
	    * blockframe.c (get_current_frame): If current_frame is NULL, try
	    to create an innermost frame.
	    * sparc-tdep.c (sparc_pop_frame), infcmd.c (run-stack_dummy),
	    infrun.c (wait_for_inferior), thread.c (thread_switch),
	    convex-tdep.c (set_thread_command), a29k-tdep.c (pop_frame),
	    alpha-tdep.c (alpha_pop_frame), convex-xdep.c (core_file_command),
	    h8300-tdep.c (h8300_pop_frame), h8500-tdep.c (h8300_pop_frame),
	    hppa-tdep.c (hppa_pop_frame), i386-tdep.c (i386_pop_frame),
	    i960-tdep.c (pop_frame), m68k-tdep.c
	    (m68k_pop_frame), mips-tdep.c (mips_pop_frame), rs6000-tdep.c
	    (push_dummy_frame, pop_dummy_frame, pop_frame), sh-tdep.c
	    (pop_frame), config/arm/tm-arm.h (POP_FRAME),
	    config/convex/tm-convex.h (POP_FRAME), config/gould/tm-pn.h
	    (POP_FRAME), config/ns32k/tm-merlin.h (POP_FRAME),
	    config/ns32k/tm-umax.h (POP_FRAME), config/tahoe/tm-tahoe.h
	    (POP_FRAME), config/vax/tm-vax.h (POP_FRAME): Don't
	    call create_new_frame.
	    * corelow.c (core_open), altos-xdep.c (core_file_command),
	    arm-xdep.c (core_file_command), gould-xdep.c (core_file_command),
	    m3-nat.c (select_thread), sun386-nat.c (core_file_command),
	    umax-xdep.c (core_file_command): Don't call create_new_frame; do
	    call flush_cached_frames.
	    * blockframe.c (reinit_frame_cache): Don't call create_new_frame
	    or select_frame.
	C.  Changes to get rid of stop_frame_address and instead only
	fetch the frame pointer when we need it.
	    * breakpoint.c (bpstat_stop_status): Remove argument
	    frame_address; use FRAME_FP (get_current_frame ()).
	    * infrun.c (wait_for_inferior): Don't pass frame pointer to
	    bpstat_stop_status.
	    * infrun.c (wait_for_inferior): Use FRAME_FP (get_current_frame
	    ()) instead of stop_frame_address.
	    * infrun.c (save_inferior_status, restore_inferior_status),
	    inferior.h (struct inferior_status): Don't save and restore
	    stop_frame_address.
	    * inferior.h, infcmd.c, thread.c (thread_switch), m3-nat.c
	    (select_thread): Remove stop_frame_address and uses thereof.
	D.  Same thing for the stack pointer.
	    * infrun.c (wait_for_inferior): Remove stop_sp and replace
	    uses thereof with read_sp ().
	E.  Change to eliminate one nasty little spot where we were
	wanting to know the frame pointer from before the current step
	(idea from GDB 3.5, which saved my ass, because my other ideas of
	how to fix it were very baroque).
	    * infrun.c: Remove prev_frame_address.
	    * infrun.c (wait_for_inferior, step_over_function): Use
	    step_frame_address instead of prev_frame_address.
	F.  Same basic idea for the stack pointer.
	    * inferior.h, infcmd.c: New variable step_sp.
	    * infcmd.c (step_1, until_next_command): Set it.
	    * infrun.c: Remove prev_sp and replace uses by step_sp.
	    * infrun.c (wait_for_inferior): If we get out of the step
	    range, then set step_sp to the current stack pointer before we
	    start going again.
1994-10-08 03:41:21 +00:00
Jeff Law
471fb8d8c0 * hppa-tdep.c (frame_saved_pc): Fix thinko in code to dig saved pc
out of an interrupt frame.
1994-09-26 05:22:21 +00:00
Jeff Law
98c0e047bd * Makefile.in (ALLDEPFILES): Add hpread.c.
(hpread.o): Add dependencies.

        * somread.c: Do not include "aout/aout64.h".  SOM has nothing to
        do with a.out.
        (BYTES_IN_WORD): Delete.
        (som_symfile_read): Call hpread_build_psymtabs to build any
        minimal symbols based on the HP C native debug symbols.
        (som_symfile_finish): Call hpread_symfile_finish.
        (som_symfile_init): Call hpread_symfile_init.
        * config/pa/tm-hppa.h (HPREAD_ADJUST_STACK_ADDRESS): Define.
        * hppa-tdep.c (hpread_adjust_stack_address): New function.

        * config/pa/hppabsd.mh (NATDEPFILES): Add hpread.o
        * config/pa/hppahpux.mh (NATDEPFILES): Likewise.
        * hpread.c: New file.
1994-08-19 16:48:51 +00:00
Jeff Law
4cbc4bf151 * hppa-tdep.c (skip_trampoline_code): Revert incorrect change
from June 2, 1994 (what was I thinking?!?).  Fix it right this
	time.
1994-08-19 06:57:06 +00:00
Jeff Law
f81eee9deb * hppa-tdep.c (compare_unwind_entries): Add "const" to both
argument types to shut up GCC.
1994-08-01 08:46:51 +00:00
Jeff Law
edd86fb0da * hppa-tdep.c (saved_pc_after_call): If the saved PC is in a
linker stub, then return the address the stub will return to.
	(frame_saved_pc): Correctly restart the search for the saved
	pc when a linker stub is encountered.

	* hppa-tdep.c (inst_saves_gr): Handle 16 and 8 bit instruction
	register stores emitted by the version 9 HP compilers.
	(inst_saves_fr): Relax test for a specific base register (%r1);
	this avoids losing with the version 9 HP compilers.
	(skip_prologue): Try to skip argument stores emitted by the HP
	compilers.  It's not perfect, but it's better than before.
1994-08-01 07:49:59 +00:00
Stu Grossman
cad1498f8a * Makefile.in: Add stuff to build nlmstub.
* Add rule for annotate.o to keep Sun make happy.
	* configure.in:  Add config for powerpc/Netware.

	* partial-stab.h (near N_SO):  Don't call START_PSYMTAB with null
	filename.  This speeds up handling of trailing N_SO stabs (they
	mark the end of a .o file).

	* target.c, target.h:  Change the way pushing and popping of
	targets work to support target overlays and inheritance.
	* corelow.c, hppa-tdep.c, inflow.c, remote-nindy.c, utils.c:
	Fixup references to current_target, due to previous changes.

	* config/i386/tm-i386nw.h:  Enable longjmp support.  More work is
	needed to get the address of longjmp out of the target.
1994-07-23 00:53:28 +00:00
Jeff Law
0fc2728985 * hppa-tdep.c (read_unwind_info): ELF unwind information is in the
.PARISC.unwind section now.
1994-07-05 01:32:46 +00:00
Jeff Law
e9a3cde889 * hppa-tdep.c (target_read_pc, target_write_pc): Accept (and
ignore) a PID argument.
	(hppa_pop_frame): Pass a PID to target_write_pc.
	* config/pa/tm-hppa.h (TARGET_READ_PC, TARGET_WRITE_PC): Accept
	and pass through a PID argument.
	(target_read_pc, target_write_pc): Update prototypes.
1994-06-10 16:43:52 +00:00
Jeff Law
36af5ec640 * hppa-tdep.c (skip_trampoline_code): Fix typo. 1994-06-03 05:21:30 +00:00
Jeff Law
f55179cbcd * hppa-tdep.c (read_unwind_info): Make sure elf_unwind_size and
elf_unwind_entries are always initialized.
1994-05-12 18:02:27 +00:00
Jeff Law
88b91d4a1b * hppa-tdep.c (skip_trampoline_code): Handle argument relocation
stubs which return directly to the caller rather than to the stub
        itself.
1994-05-12 16:50:43 +00:00
Jeff Law
d782a99583 * hppa-tdep.c (internalize_unwind_info): Delete unused indexp
argument.
1994-04-19 16:47:30 +00:00
Jeff Law
9c842e0c31 * nm-hppab.h (KERNEL_U_ADDR): Define.
(FIVE_ARG_PTRACE): Likewise.
        (CANNOT_STORE_REGISTER): Likewise.
        nm-hppah.h (KERNEL_U_ADDR): Define.
        (FIVE_ARG_PTRACE): Likewise.
        (CANNOT_STORE_REGISTER): Likewise.
        (NEED_TEXT_START_END): Likewise.

        * tm-hppah.h (NEED_TEXT_START_END): Delete definition.
        * xm-hppah.h (KERNEL_U_ADDR): Delete definition.
        (FIVE_ARG_PTRACE): Likewise.
        * xm-hppab.h (KERNEL_U_ADDR): Delete definition.
        (FIVE_ARG_PTRACE): Likewise.

        * hppa-tdep.c (read_unwind_info): Make static.
        (restore_pc_queue): Indirect through the target vector to
        reload the register state.
1994-04-18 17:16:56 +00:00
Jeff Law
c5152d4234 * paread.c (compare_unwind_entries): Delete function. It's been
moved into hppa-tdep.c.
        (read_unwind_info): Likewise.
        (pa_symfile_read): No longer call read_unwind_info.  The unwind
        tables will be read in as they are needed.

        * hppa-tdep.c (compare_unwind_entries): New function.
        (read_unwind_info, internalize_unwinds): Likewise.
        (find_unwind_entry): Read in unwind information on demand.
1994-04-17 05:22:39 +00:00
Jeff Law
4f91591410 * hppa-tdep.c (hppa_fix_call_dummy): If FUN is a procedure label,
then gets its real address into FUN and its GOT/DP value into %r19.

        * tm-hppa.h (CALL_DUMMY): Use %r20, not %r19 as a temporary.
1994-04-06 00:56:36 +00:00
Jeff Law
7f43b9b70d * hppa-tdep.c (frameless_function_invocation): If no unwind
descriptor was found, then assume this was not a frameless
        function invocation.
        (frame_saved_pc): If the saved PC is in a linker stub, then
        return the return address which the linker stub will return to.
1994-04-06 00:51:50 +00:00
Jeff Law
19cd0c1f75 * hppa-tdep.c (hppa_fix_call_dummy): Use an alternate method for
calling import stubs for functions in shared libraries.
1994-03-30 07:03:01 +00:00
Jeff Law
de48213858 * hppa-tdep.c (skip_prologue): Do nothing if not at the beginning
of a function.
        (skip_trampoline_code): Rewrite and add support for argument
        relocation stubs stubs, import/export stubs, calls through
        "_sr4export" and cascaded trampolines.
1994-03-26 01:07:36 +00:00
Jeff Law
fdafbfad9e * hppa-tdep.c (skip_prologue): Return "pc" not zero
if no unwind descriptor is found.
1994-03-25 18:48:24 +00:00
Jeff Law
eb1167c65c * tm-hppa.h (NUM_REGS): Bump to 128 registers.
(REGISTER_NAMES): Add entries for "right-half" of FP registers.
        (REGISTER_RAW_SIZE, MAX_REGISTER_RAW_SIZE): Do not treat FP regs
        differently.  All registers are four bytes.
        (REGISTER_BYTES, REGISTER_BYTE): Simplify now that all registers are
        the same size.
        (REGISTER_VIRTUAL_TYPE): Use builtin_type_float for all FP regs.

        * hppa-tdep.c (pa_print_fp_reg): Update to print even numbered FP
        registers as both single and double values (fetching 2nd 32bit half
        as necessary).  Annotate each register printed with its precision.
1994-03-25 18:21:49 +00:00
Jeff Law
0a64709eb4 * config/pa/tm-hppao.h (NO_PC_SPACE_QUEUE_RESTORE): Define.
* hppa-tdep.c (hppa_pop_frame): Do not restore the PC space
        queue if NO_PC_SPACE_QUEUE_RESTORE is defined.
1994-03-23 04:16:32 +00:00
Jeff Law
4fd5eed484 * hppa-tdep.c (hppa_fix_call_dummy): Use value_ptr.
(hppa_push_arguments): Likewise.
1994-03-21 19:53:36 +00:00
Jeff Law
70e43abe7c * hppa-tdep.c (pc_in_linker_stub): Move decl to beginning of file.
(pc_in_interrupt_handler): New function.  Also add PARAM decl.
        (find_proc_framesize): Deal with HPUX setting SAVE_SP bit for
        signal trampoline and interrupt routines.
        (frame_saved_pc): Handle signal trampolines and interrupt routines.
        (frame_chain, frame_chain_valid): Likewise.
        (hppa_frame_find_saved_regs): Likewise.  Also deal with special
        saved regs convention for SP.

        * tm-hppa[bho].h: FRAME_FIND_SAVED_PC_IN_SIGTRAMP): Define.
        (FRAME_BASE_BEFORE_SIGTRAMP): Define.
        (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Define.

        * tm-hppah.h (IN_SIGTRAMP): Define.
1994-03-04 17:54:41 +00:00
Jeff Law
c7f3b703a3 * config/pa/tm-hppa.h (unwind_table_entry): Use one of the
reserved fields to hold a stub unwind entry type.  Fix typo.
        (stub_unwind_entry): New structure for raw stub unwind entries.
        (stub_unwind_types): The types of stubs we may encounter.
        (UNWIND_ENTRY_SIZE, STUB_UNWIND_ENTRY_SIZE): New defines.
        * hppa-tdep.c (rp_saved): Use additional information provided
        by linker stub unwind descriptors.
        (frameless_function_invocation): Likewise.
        (frame_chain_valid): Likewise.
        * paread.c (compare_unwind_entries): New function for sorting
        unwind table entries.
        (read_unwind_info): Rewrite to remove dependency on host endianness.
        Read in data from the $UNWIND_END$ subspace which contains linker
        stub unwind descriptors.  Merge that data into the basic unwind
        table.
1994-01-18 04:04:36 +00:00
Jeff Law
c598654a5b * config/pa/tm-hppa.h (FRAME_FIND_SAVED_REGS): Call
hppa_frame_find_saved_regs.
        * hppa-tdep.c (dig_fp_from_stack): Delete function.
        (prologue_inst_adjust_sp): New function.
        (is_branch, inst_saves_gr, inst_saves_fr): New functions.
        (skip_prologue): Completely rewrite to use unwind information.
        (hppa_frame_find_saved_regs): Likewise.
1994-01-11 19:14:11 +00:00
Jim Kingdon
67ac975911 * target.h: Add enum target_waitkind, enum target_signal, and
struct target_waitstatus.  Change status argument to target_wait to
	be struct target_waitstatus * instead of int *.
	* target.h, infrun.c, all targets: Change type of signal arguments
	to resume(), proceed(), and target_resume() from int to enum
	target_signal.
	* All targets (*_wait, *_resume): Change accordingly.
	* infcmd.c (program_info, signal_command), throughout infrun.c,
	* fork-child.c, solib.c, hppa-tdep.c, osfsolib.c: Use this stuff.
	* convex-xdep.c, convex-tdep.c: Add FIXME's (getting the Convex
	signal code stuff right with the new signals would be non-trivial).
	* inferior.h (stop_signal): Make it enum target_signal not int.
	* target.c, target.h (target_signal_to_string, target_signal_to_name,
	target_signal_from_name): New functions.
	* inftarg.c, target.h (target_signal_to_host, target_signal_from_host,
	store_waitstatus): New functions.
	* procfs.c (procfs_notice_signals): Use them.
	* i960-tdep.c (i960_fault_to_signal): New function, to replace
	print_fault.
	* config/i960/tm-i960.h: Don't define PRINT_RANDOM_SIGNAL.
1994-01-04 21:53:53 +00:00
Jeff Law
2f8c3639fa * dbxread.c (process_one_symbol): Handle stabs-in-som just like
stabs-in-elf.
        (pastab_build_psymtabs): Likewise.

        * hppa-tdep.c: Change all comments to reference %r3 or frame pointer
        rather than %r4.
        (frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the
        frame pointer.

        * config/pa/tm-hppa.h (FP_REGNUM): Define as %r3.
        (FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer.
        (CALL_DUMMY): Likewise.
1993-12-27 04:46:05 +00:00
Jim Kingdon
f4f0d17487 * valops.c (call_function_by_hand, push_word), defs.h (push_word),
convex-xdep.c, m88k-nat.c, i386m3-nat.c, mips-tdep.c, mipsm3-nat.c,
	ns32km3-nat.c, remote-bug.c, m88k-tdep.c, remote-hms.c, remote-mips.c,
	config/gould/tm-np1.h, hppa-tdep.c (hppa_fix_call_dummy), remote-vx.c:
	Use REGISTER_SIZE, unsigned LONGEST, and
	{store,extract}_unsigned_integer, instead of sizeof
	(REGISTER_TYPE) and REGISTER_TYPE.
	* All tm.h files: Change REGISTER_TYPE to REGISTER_SIZE.
	* hppa-tdep.c (pa_print_fp_reg): Remove unused variable val.

	* Makefile.in (ALLDEPFILES): Remove i386ly-nat.c and m68kly-nat.c.
	Add lynx-nat.c.
1993-12-26 18:10:22 +00:00
Jeff Law
192c3eeb94 * hppa-tdep.c (init_extra_frame_info): Correctly adjust the base
of the current frame when "fromleaf" is true.  Do not adjust the
        frame base of the innermost frame if it is a leaf function.
1993-12-26 04:06:32 +00:00
Peter Schauer
ad09cb2bd3 * findvar.c (value_of_register, value_from_register),
hppa-tdep.c (pa_print_fp_reg), infcmd.c (do_registers_info),
	valops.c (value_assign):   Use REGISTER_CONVERT_TO_* only if
	REGISTER_CONVERTIBLE is defined, otherwise just copy the content.
	Pass desired type to REGISTER_CONVERT_TO_*.

	* config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*):
	Pass length of desired type to store/extract_floating.
	* config/i386/tm-arm.h, config/i386/tm-i386aix.h,
	config/i386/tm-sun386.h, config/i386/tm-symmetry.h,
	config/m88k/tm-m88k.h config/rs6000/tm-rs6000.h (REGISTER_CONVERT_*):
	Use extract_floating and store_floating with length of desired type.
	* config/m68k/tm-news.h (STORE,EXTRACT_RETURN_VALUE):  Add type
	parameter to REGISTER_CONVERT_*.

	* config/a29k/tm-a29k.h, config/convex/tm-convex.h,
	config/gould/tm-np1.h, config/gould/tm-pn.h, config/h8300/tm-h8300.h,
	config/h8500/tm-h8500.h, config/i386/tm-i386v.h,
	config/mips/tm-mips.h, config/ns32k/tm-merlin.h,
	config/ns32k/tm-umax.h, config/pa/tm-hppa.h, config/pyr/tm-pyr.h,
	config/sh/tm-sh.h, config/sparc/tm-sparc.h, config/tahoe/tm-tahoe.h,
	config/vax/tm-vax.h, config/z8k/tm-z8k.h (REGISTER_CONVERTIBLE,
	REGISTER_CONVERT_TO_RAW, REGISTER_CONVERT_TO_VIRTUAL):  Remove
	versions for which REGISTER_CONVERTIBLE is always false.
	* z8k-tdep.c (register_convert_to_virtual, register_convert_to_raw):
	Remove, no longer used.

	* alpha-tdep.c (alpha_register_convert_to_raw,
	alpha_register_convert_to_virtual):  New routines to handle
	the different raw formats in alpha floating point registers.
	* config/alpha/tm-alpha.h (REGISTER_CONVERTIBLE,
	REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW):  Use them.
1993-11-02 21:51:10 +00:00
Thomas Lord
199b2450f6 Change the stream argument to _filtered to GDB_FILE *.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.

Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')

Replaced calls to fopen for output to gdb_fopen.

Added sufficient goo to utils.c and defs.h to make the above work.

The net effect is that stdio output functions are only directly used
in utils.c.  Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.

In the near future, GDB_FILE will stop being equivalant to FILE.

The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior.  The testsuite doesn't notice anything
like this, though.

Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code.  All output from commands
should go to a GDB_FILE.

Target-specific code can still use stdio directly to communicate with
targets.
1993-11-01 22:25:23 +00:00
Jim Kingdon
976bb0be03 * Makefile.in (init.c): Generate using the source, not munch. This
cleans up all kinds of hassles (which nm to use in munch, etc).  The
	new formatting conventions (mostly already followed) are that
	the name of the _initialize_* routines must start in column zero,
	and must not be inside #if.
	* munch: Removed.
	* Makefile.in: Remove references to munch.
	* serial.c, remote.c, infptrace.c, maint.c, convex-tdep.c,
	alpha-tdep.c, hp300ux-nat.c, hppab-nat.c, osfsolib.c, remote-es.c,
	procfs.c, remote-udi.c, ser-go32.c, ultra3-xdep.c, sh-tdep.c,
	i960-tdep.c, hppa-tdep.c, h8500-tdep.c, dpx2-nat.c, delta68-nat.c,
	z8k-tdep.c: Make sure the above conventions are followed.  Make
	sure they are all declared as returning void.  Clean up
	miscellaneous comments and such.
1993-10-22 05:55:58 +00:00
Jim Kingdon
8c5e002153 * hppa-tdep.c (restore_pc_queue): Call target_terminal_ours after
done stepping the inferior.
1993-10-18 23:06:19 +00:00
Stu Grossman
de43d7d005 * breakpoint.c (breakpoint_thread_match break_command_1):
Thread-specific breakpoint support.
* breakpoint.h (struct breakpoint):  Add thread id field.
* fork-child.c (fork_inferior):  Move call to init_thread_list()
back a bit so that init_trace_fun can do thread functions.
* hppa-tdep.c (restore_pc_queue):  Add pid to call to target_wait.
* hppab-nat.c (child_resume):  Handle default pid.
* hppah-nat.c (child_resume):  Handle default pid.
* i386lynx-nat.c (child_wait):  New arg pid.
* inflow.c (kill_command):  Reset thread list.
* infptrace.c (child_resume):  Handle default pid.
* infrun.c:  Thread-specific breakpoint support.
* inftarg.c (child_wait):  Add pid arg.
* osfsolib.c (solib_create_inferior_hook):  Add pid to call to
target_resume.
* procfs.c:  Multi-thread support.
* remote-bug.c (bug_wait):  Add pid arg.
* remote-hms.c (hms_wait):  Add pid arg.
* remote-mips.c (mips_wait):  Add pid arg.
* remote-mon.c (monitor_wait):  Add pid arg.
* remote-nindy.c (nindy_wait):  Add pid arg.
* remote-sim.c (gdbsim_wait):  Add pid arg.
* remote-udi.c (udi_wait):  Add pid arg.
* remote-vx.c (vx_wait):  Add pid arg.
* remote-z8k.c (sim_wait):  Add pid arg.
* remote.c (remote_wait):  Add pid arg.
* solib.c (solib_create_inferior_hook):  Add pid to call to
target_resume.
* target.h (struct target_ops):  Add pid arg to to_wait and
to_notice_signals.
* thread.c (valid_thread_id):  New func to validate thread #s.
* (pid_to_thread_id):  New func to do the obvious.
* thread.h:  Prototypes for above.

* coff-solib.c (coff_solib_add):  Use nameoffset field to locate
filename.
1993-10-16 06:42:02 +00:00
Jim Kingdon
01a0354571 * hppa-tdep.c (frame_chain): Rework so that it correctly
handles boundaries where code with a frame pointer calls code
	without a frame pointer.
	(dig_fp_from_stack): New function.
1993-10-06 21:48:39 +00:00
Jim Kingdon
8966221d52 * hppa-tdep.c (frame_chain): Rework so that it correctly
handles boundaries where code with a frame pointer calls code
	without a frame pointer.
	(dig_fp_from_stack): New function.
1993-10-06 20:17:56 +00:00
Jim Kingdon
ed1a07ad1f * config/pa/tm-hppa.h: Declare target_read_pc and target_write_pc.
(STORE_RETURN_VAULE): Pass the correct offset of the return
	register to write_register_bytes.
	* hppa-tdep.c: Use target_write_pc if PCOQ_TAIL_REGNUM was not saved.
1993-09-07 19:57:45 +00:00
Jim Kingdon
6cfec92912 From Jeffrey Law:
* tm-hppa.h (TARGET_WRITE_PC): Define.
	* hppa-tdep.c (hppa_fix_call_dummy): If in a syscall,
	then return the address of the dummy itself rather than
	the address of $$dyncall.
	(target_write_pc): New function to store a new PC.
1993-07-30 20:49:52 +00:00
Jim Kingdon
d3862cae59 From J. Law:
* infcmd.c (read_pc): Remove PA specific code.
	* tm-hppa.h (TARGET_READ_PC): Define.
	* hppa-tdep.c (target_read_pc): New function.
1993-07-30 17:01:26 +00:00
Jim Kingdon
247145e6f0 * paread.c (pa_symtab_read): Put file-local symbols in minimal symbols.
* hppa-tdep.c (frame_chain_valid): Check that our function has the
	same address as _start, not that it must be the same symbol.
1993-07-30 15:52:26 +00:00
Jim Kingdon
63757ecd89 * hppa-tdep.c: Make "maintenance print unwind" command from old
"unwind" command.
1993-07-29 21:42:31 +00:00
Jim Kingdon
4432b9f9ff * hppa-tdep.c: Remove all uses of use_unwind and `set use_unwind'
command.  Now we use unwind info by default if we can find it.
1993-07-29 18:41:26 +00:00
Jim Kingdon
6e35b037df * hppa-tdep.c (pc_in_linker_stub): Fix unclosed comments. 1993-07-29 17:14:38 +00:00
Jim Kingdon
b8ec9a798f * hppa-tdep.c: Remove all uses of use_unwind and `set use_unwind'
command.  Now we use unwind info by default if we can find it.

	* config/sparc: Move VARIABLES_INSIDE_BLOCK and SUN_FIXED_LBRAC_BUG
	to tm-sparc.h so they are shared between Solaris and SunOS4.
	* dbxread.c (process_one_symbol): Deal with SunOS4 acc N_STSYM and
	N_GSYM functions.
1993-07-26 22:16:09 +00:00
Jim Kingdon
08ecd8f3d8 * hppa-tdep.c (pc_in_linker_stub): Return 0 if can't read memory. 1993-07-26 19:19:39 +00:00
Jim Kingdon
28403b8ee7 * hppa-tdep.c (pc_in_linker_stub): New function.
(find_proc_framesize): Return 0 for linker stubs.
	(rp_saved): Tell the caller where rp is saved.
	(frame_chain_valid): Return 1 for linker stubs.
	(frame_saved_pc): Use return value from rp_saved.
1993-07-19 17:36:18 +00:00
Jim Kingdon
d08c6f4c11 * hppa-tdep.c (pc_in_linker_stub): New function. 1993-07-15 17:49:41 +00:00
Jim Kingdon
5ac7f56ee8 * hppa-tdep.c (pc_in_linker_stub): New function.
(find_proc_framesize): Return 0 for linker stubs.
	(rp_saved): Tell the caller where rp is saved.
	(frame_chain_valid): Return 1 for linker stubs.
	(frame_saved_pc): Use return value from rp_saved.
1993-07-15 17:38:59 +00:00
Jim Kingdon
eabbe766c0 * hppa-tdep.c (find_proc_framesize): If there is a frame pointer,
use it.
1993-07-12 16:34:23 +00:00
Jim Kingdon
34df79fc9d * findvar.c, defs.h
({extract,store}_{signed_integer,unsigned_integer,address}):
	New routines to replace SWAP_TARGET_AND_HOST.
	All over: All uses of SWAP_TARGET_AND_HOST on integers replaced.
1993-07-10 01:35:53 +00:00
Jim Kingdon
558f4183fb * hppa-tdep.c (hppa_push_arguments): Allocate enough space for
arguments.
1993-07-08 20:06:19 +00:00
Jim Kingdon
47976ba770 * hppa-tdep.c: Change _initialize_hppab_tdep to _initialize_hppa_tdep. 1993-07-08 19:53:05 +00:00
Ian Lance Taylor
1edc5cd26d * hppa-tdep.c (hppa_push_arguments): Allocate correct amount of
memory.
1993-05-10 22:30:34 +00:00
Stu Grossman
8fa7488059 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c: Declare frame_saved_pc.
	(frameless_function_invocation): New function.
	(frame_saved_pc, init_extra_frame_info): Use
	frameless_function_invocation.
	* gdb/config/tm-hppa.h (SAVED_PC_AFTER_CALL): Use saved_pc_after
	call instead of just grabbing the value currently in %r2.
	(FRAMELESS_FUNCTION_INVOCATION): Use frameless_function_invocation.
	* gdb/config/tm-hppah.h (SAVED_PC_AFTER_CALL): Delete private
	definition and use the common one in tm-hppa.h.
1993-05-05 23:52:10 +00:00
Stu Grossman
4b01383bcd * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (frame_chain_valid): If "use_unwind" is true, then
	use unwind descriptors to determine if the frame chain is valid.
1993-05-05 22:39:23 +00:00
Stu Grossman
b227992a76 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (find_dummy_frame_regs):  Rework so that
	it does not assume %r4 is the frame pointer.
1993-05-05 22:35:32 +00:00
Stu Grossman
68c8d698d4 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-pinsn.c (print_insn): Handle 'r' and 'R' for break, rsm,
	and ssm instructions.
	* gdb/hppa-tdep.c (extract_5r_store, extract_5R_store): New
	helper functions for print_insn.
1993-05-05 22:26:57 +00:00
Stu Grossman
a34d4bc178 * Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (gcc_p, hpux_cc_p): Delete unused functions.
1993-05-05 22:23:07 +00:00
Stu Grossman
66a1aa071e * Merge in HPPA/BSD patches from Utah:
* defs.h:  Add const to 2nd arg of psignal prototype.
	* hppah-tdep.c:  Renamed to hppa-tdep.c 'cuz it's common code with
	BSD now.
	* hppab-core.c:  Deleted.  No longer useful.
	* hppab-nat.c:  #include more files.  Use PT_WUREGS, not
	PT_WRITE_U.
	* hppab-tdep.c:  Deleted.  Supplanted by hppa-tdep.c.
	* config/pa/hppabsd.mh (NATDEPFILES):  Remove hppab-core.o.
	* config/pa/hppabsd.mt (TDEPFILES):  hppab-tdep.o => hppa-tdep.o
	* config/pa/hppahpux.mt (TDEPFILES):  hppab-tdep.o => hppa-tdep.o
	* config/pa/xm-hppab.h:  #define SET_STACK_LIMIT_HUGE.
1993-04-23 23:43:18 +00:00