Commit graph

14446 commits

Author SHA1 Message Date
Pedro Alves
b77209e000 gdb/
* inferior.h: Forward declare struct ui_out.
	Forward declare struct private_inferior.
	(struct inferior): New.
	(init_inferior_list, add_inferior, add_inferior_silent)
	(delete_inferior, delete_inferior_silent, detach_inferior)
	(gdb_inferior_id_to_pid, pid_to_gdb_inferior_id, in_inferior_list)
	(valid_inferior_id, find_inferior_pid): New functions.
	(inferior_callback_func): New typedef.
	(iterate_over_inferiors, print_inferior, have_inferiors)
	(current_inferior): New functions.
	* inferior.c: New file.

	* Makefile.in (SFILES): Add inferior.c.
	(COMMON_OBS): Add inferior.o.

gdb/doc/
	* gdb.texinfo (Inferiors): New section.
2008-09-22 15:12:19 +00:00
Jonathan Larmour
d8c3d48d73 * arm-tdep.c (arm_skip_prologue): Call skip_prologue_using_sal
instead of determining symbol and line info directly.
	* MAINTAINERS: Update my email address.
2008-09-22 15:03:06 +00:00
Daniel Jacobowitz
d54be744b7 * symtab.c (skip_prologue_using_sal): Treat two consecutive lines
at the same address as a prologue marker.  Do not skip an entire
	function.
2008-09-22 14:56:17 +00:00
Andrew Stubbs
26fae1d6e3 2008-09-22 Andrew Stubbs <ams@codesourcery.com>
* frame.c (get_frame_register_bytes): Comment improvments.
2008-09-22 13:36:29 +00:00
Pedro Alves
1ad15515cd gdb/
* linux-nat.c (linux_nat_wait): Only use set_ignore_sigint in
	all-stop mode.

gdb/testsuite/
	* lib/mi-support.exp (mi_expect_interrupt): New.
	(mi_reverse_list, mi_check_thread_states): New, moved and renamed
	from gdb.mi/mi-nonstop.exp.
	* gdb.mi/mi-nsintrall.exp, gdb.mi/nsintrall.c: New.
	* gdb.mi/mi-nonstop.exp (myreverse, check_thread_states): Moved to
	lib/mi-support.exp.
	Use mi_check_thread_states throughout.  Avoid ".*" and do not
	require an anchor after -exec-run.
2008-09-22 11:00:41 +00:00
Andrew Stubbs
14fc49fb15 2008-09-19 Andrew Stubbs <ams@codesourcery.com>
* MAINTAINERS: Update my email address.
2008-09-19 18:33:10 +00:00
Andrew Stubbs
3f27f2a479 2008-09-19 Andrew Stubbs <ams@codesourcery.com>
* frame.c (get_frame_register_bytes): Detect bad debug info.
2008-09-19 18:12:17 +00:00
Jan Kratochvil
88ed393a46 Fix a crash on uninitialized ECS->EVENT_THREAD for a newly found thread.
* infrun.c (wait_for_inferior): Move this ECS->EVENT_THREAD
	initialization ...
	(fetch_inferior_event): ... and this ECS->EVENT_THREAD initialization
	...
	(handle_inferior_event): ... here after the add_thread call together
	with the local adjust_pc_after_break and reinit_frame_cache calls.
2008-09-17 21:48:49 +00:00
David Daney
d832cb68fb * breakpoint.c (bpstat_stop_status): Clear breakpoint_at for
all hardware bpstats.
2008-09-16 18:55:01 +00:00
Joel Brobecker
b1e40a6f91 * gstdint.h: Delete. 2008-09-16 18:21:33 +00:00
Mark Kettenis
50a834af8a * infcall.c (generic_push_dummy_code): Remove.
(push_dummy_code): Unconditionally call gdbarch_push_dummy_code.
2008-09-15 20:14:04 +00:00
Doug Evans
9d25dd43e8 * dwarf2read.c (struct abbrev_info): Make members name, form 16 bits.
(struct attribute): Ditto.
2008-09-15 15:32:01 +00:00
Dave Anglin
326e541f5e * hppa-linux-tdep.c (hppa_linux_sigtramp_frame_unwind_cache): Record
HPPA_IPSW_REGNUM and HPPA_SAR_REGNUM values.
2008-09-15 02:19:47 +00:00
Dave Anglin
85c83e9940 * hppa-linux-tdep.c (hppa_dwarf_reg_to_regnum): Remove surrounding
"#if 0" "#endif".  Fix mapping of DWARF DBX registers to GDB registers.
	Correct arguments and improve comments.
	(hppa_linux_init_abi): Call set_gdbarch_dwarf2_reg_to_regnum.  Delete
	disabled code.
	* hppa-tdep.c (hppa64_dwarf_reg_to_regnum): Fix check for floating
	point DBX register, change error to warning, and improve comments.
2008-09-15 01:56:31 +00:00
Doug Evans
76815b175e * dwarf2read.c (struct die_info): Make members tag, num_attrs 16 bits. 2008-09-15 01:22:02 +00:00
Dave Anglin
51e753cf3a * hppa-linux-tdep.c (hppa_linux_supply_fpregset): Correct iteration. 2008-09-14 14:08:42 +00:00
Joel Brobecker
06e476f547 * defs.h (GCC_GENERATED_STDINT_H): Define. 2008-09-14 06:37:18 +00:00
Tom Tromey
6c761d9c9c * varobj.c (varobj_set_display_format): Use xfree.
* tracepoint.c (stringify_collection_list): Use xfree.
	* remote-fileio.c (remote_fileio_reset): Use xfree.
	* mipsread.c (read_alphacoff_dynamic_symtab): Use xfree.
	* dfp.c (decimal_from_floating): Use xfree, xstrprintf.  Don't use
	asprintf.
	* cp-support.c (mangled_name_to_comp): Use xfree.
2008-09-13 23:37:05 +00:00
Joel Brobecker
339c13b662 * ada-lang.c (remove_extra_symbols): Remove stub symbols if
the associated complete symbol is also in the list.
        (ada_add_local_symbols, ada_add_non_local_symbols): New functions,
        extracted out from ada_lookup_symbol_list.
        (ada_lookup_symbol_list): Use them.  Remove the search through
        the minimal symbols.
2008-09-13 22:27:00 +00:00
Joel Brobecker
bc30ff585c * dwarf2read.c (add_partial_subprogram): New procedure.
(scan_partial_symbols): Use it.
        (load_partial_dies): Read in children of subprogram and lexical
        blocks for Ada compilation units.
2008-09-13 22:19:51 +00:00
Tom Tromey
bb01da776d * symfile.c (build_id_verify): Free 'found'.
(find_separate_debug_file): Use xfree, not free.
2008-09-13 17:28:56 +00:00
Doug Evans
00630ca836 * corefile.c (write_memory): Remove unnecessary copying. 2008-09-12 20:40:57 +00:00
Doug Evans
5d6fa95086 * sol-thread.c (_initialize_sol_thread): Add FIXME regarding
order of _initialize_* fns.
2008-09-12 20:10:57 +00:00
Doug Evans
d00adf3917 * dwarf2read.c (comp_unit_head): Rename first_die_ptr to
first_die_offset.  All uses updated.
	Delete unused members cu_head_ptr, next.
	Move members base_known, base_address to ...
	(dwarf2_cu) ... here.  All uses updated.
2008-09-12 20:06:25 +00:00
Pedro Alves
3d0bb823b0 gdb/
* Makefile.in (generated_files): Add $(NAT_GENERATED_FILES).
	* config/i386/i386gnu.mh (NAT_GENERATED_FILES): New.

gdb/doc/
	* gdbint.texinfo (Native Debugging): Mention NAT_GENERATED_FILES.
2008-09-12 10:39:03 +00:00
Ulrich Weigand
3c35e65b00 * fork-child.c (startup_inferior): Use target_wait and target_resume
directly instead of calling wait_for_inferior / resume.

	* infcmd.c (kill_if_already_running): Do not call no_shared_libraries
	or init_wait_for_inferior.
	(run_command_1): Call init_wait_for_inferior.
2008-09-11 16:09:33 +00:00
Ulrich Weigand
180b9a0ebe Add missing ChangeLog entry. 2008-09-11 14:34:38 +00:00
Ulrich Weigand
4cca3ac9ed * gdbtypes.h (builtin_type_void_data_ptr, builtin_type_void_func_ptr,
builtin_type_CORE_ADDR, builtin_type_char, builtin_type_short,
	builtin_type_int, builtin_type_long, builtin_type_signed_char,
	builtin_type_unsigned_char, builtin_type_unsigned_short,
	builtin_type_unsigned_int, builtin_type_unsigned_long,
	builtin_type_float, builtin_type_double, builtin_type_long_double,
	builtin_type_complex, builtin_type_double_complex, builtin_type_string,
	builtin_type_bool, builtin_type_long_long,
	builtin_type_unsigned_long_long): Remove macros.

	(builtin_type_f_character, builtin_type_f_integer,
	builtin_type_f_integer_s2, builtin_type_f_logical,
	builtin_type_f_logical_s1, builtin_type_f_logical_s2,
	builtin_type_f_real, builtin_type_f_real_s8, builtin_type_f_real_s16,
	builtin_type_f_complex_s8, builtin_type_f_complex_s16,
	builtin_type_f_complex_s32): Likewise.

	(builtin_type_m2_char, builtin_type_m2_int, builtin_type_m2_card,
	builtin_type_m2_real, builtin_type_m2_bool): Likewise.

	(struct builtin_f_type, builtin_f_type): Move to f-lang.h.
	(struct builtin_m2_type, builtin_m2_type): Move to m2-lang.h.

	* f-lang.h (struct builtin_f_type, builtin_f_type): Move here.
	* m2-lang.h (struct builtin_m2_type, builtin_m2_type): Move here.
2008-09-11 14:31:43 +00:00
Ulrich Weigand
b6da22b0d1 * solib-svr4.c (LM_ADDR_FROM_LINK_MAP): Use builtin types of
target_gdbarch instead of builtin_type_void_data_ptr.
	(LM_DYNAMIC_FROM_LINK_MAP, LM_NEXT, LM_NAME,
	IGNORE_FIRST_LINK_MAP_ENTRY, scan_dyntag, elf_locate_base,
	solib_svr4_r_map, solib_svr4_r_brk, solib_svr4_r_ldsomap,
	open_symbol_file_object): Likewise.
	* nto-tdep.c (LM_ADDR): Likewise.
2008-09-11 14:31:00 +00:00
Ulrich Weigand
ff7da46876 * bsd-uthread.c (bsd_uthread_read_memory_address): New function.
(bsd_uthread_fetch_registers, bsd_uthread_store_registers,
	bsd_uthread_wait, bsd_uthread_find_new_threads): Use it.
2008-09-11 14:30:24 +00:00
Ulrich Weigand
4e906f53ab * procfs.c (procfs_address_to_host_pointer): Use target_gdbarch
and its associated types to perform pointer conversion.
	(procfs_can_use_hw_breakpoint): Likewise.
	(procfs_auxv_parse): Remove unused variable.
2008-09-11 14:29:53 +00:00
Ulrich Weigand
ffe5a37e17 * auxv.c (default_auxv_parse): Use gdbarch_ptr_bit (target_gdbarch)
instead of builtin_type_void_data_ptr.
	* target.c (default_region_ok_for_hw_watchpoint): Likewise.
2008-09-11 14:29:21 +00:00
Ulrich Weigand
b806fb9a9b * expprint.c (print_subexp_standard): Compare against builtin type
associated with exp->gdbarch instead of builtin_type_char.

	* f-valprint.c (f_val_print): Use extract_unsigned_integer to
	extract values of arbitrary logical type.  Handle arbitrary
	complex types.

	* printcmd.c (float_type_from_length): New function.
	(print_scalar_formatted, printf_command): Use it.
2008-09-11 14:28:47 +00:00
Ulrich Weigand
3e3b026fee * valops.c: Include "objfiles.h" and "symtab.h".
(find_function_in_inferior): New argument OBJF_P.  Use it to return
	objfile where function is defined.  Use per-objfile arch types
	instead of builtin_type_ to define default return type.

	* linux-fork.c (checkpoint_command): Update calls.  Use per-objfile
	architecture to define inferior call argument types.
	* gcore.c (derive_heap_segment): Likewise.
	* objc-lang.c (value_nsstring): Likewise.
	* scm-lang.c (scm_lookup_name): Likewise.
	* scm-valprint.c (scm_inferior_print): Likewise.
	* valops.c (value_allocate_space_in_inferior): Likewise.

	* eval.c (evaluate_subexp_standard): Update calls.
	* objc-lang.c (lookup_objc_class, print_object_command): Likewise.

	* linux-fork.c: Include "objfiles.h".
	* scm-lang.c: Include "objfiles.h".
	* scm-valprint.c: Include "objfiles.h".
2008-09-11 14:27:34 +00:00
Ulrich Weigand
f8dcfc0aff ChangeLog:
* gdbarch.sh (name_of_malloc): Remove.
	* gdbarch.c, gdbarch.h: Re-generate.
	* valops.c (value_allocate_space_in_inferior): Do not call
	gdbarch_name_of_malloc.

doc/ChangeLog:

	* gdbint.texinfo (Target Conditionals): Remove documentation
	for gdbarch_name_of_malloc.
2008-09-11 14:27:00 +00:00
Ulrich Weigand
c56324e001 * valarith.c (value_x_unop): Use builtin_type_int8 as type for
UNOP_POSTINCREMENT/UNOP_POSTDECREMENT constant 0 argument.
	(value_bit_index): Use extract_unsigned_integer
	instead of unpack_long to read single byte.
2008-09-11 14:25:49 +00:00
Ulrich Weigand
7788af6d30 * infcall.c (value_arg_coerce): Add GDBARCH parameter. Use its
associates types instead of builtin_type_ macros.
	(find_function_addr): Leave output VALUE_TYPE NULL if unknown.
	(call_function_by_hand): Use per-architecture "int" type as
	fall-back if find_function_addr returns NULL VALUE_TYPE.
	Update call to value_arg_coerce.
2008-09-11 14:25:04 +00:00
Ulrich Weigand
ad4820ab42 * cp-abi.h (cplus_method_ptr_size): Add TO_TYPE parameter.
(cplus_make_method_ptr): Add TYPE parameter.
	* cp-abi.c (cplus_method_ptr_size): Add TO_TYPE parameter.  Pass it
	on to current_cp_abi.method_ptr_size callback.
	(cplus_make_method_ptr): Add TYPE parameter.  Pass it on to
	current_cp_abi.make_method_ptr callback.

	* gdbtypes.c (lookup_methodptr_type): Pass target type
	argument to cplus_method_ptr_size.
	* valops.c (value_cast): Pass type argument to cplus_make_method_ptr.
	(value_struct_elt_for_reference): Likewise.

	* gnu-v3-abi.c (get_class_arch): New function.
	(vtable_address_point_offset): Add GDBARCH parameter.  Use it
	instead of current_gdbarch.  Update all callers.
	(gnuv3_get_vtable): Likewise.
	(gnuv3_get_virtual_fn): Likewise.
	(gnuv3_decode_method_ptr): Likewise.
	(gnuv3_rtti_type): Call get_class_arch to determine architecture.
	Use it instead of current_gdbarch.
	(gnuv3_virtual_fn_field): Likewise.
	(gnuv3_baseclass_offset): Likewise.
	(gnuv3_print_method_ptr): Likewise.
	(gnuv3_method_ptr_to_value): Likewise.
	(gnuv3_method_ptr_size): Add TYPE parameter.  Use it to determine
	class architecture.  Use architecture types instead of builtin types.
	(gnuv3_make_method_ptr): Likewise.

	* cp-valprint.c (cp_print_class_member): Expect pointer type
	instead of class type.  Use its length when extracting value.
	* c-valprint.c (c_val_print): Update call to cp_print_class_member.
2008-09-11 14:24:28 +00:00
Ulrich Weigand
5ed92fa89a * stack.c (return_command): Use frame architecture to determine
default integer return type.

	* f-valprint.c (f77_get_dynamic_lowerbound): Use frame architecture
	to determine pointer types.
	(f77_get_dynamic_upperbound): Likewise.

	* objc-lang.c (OBJC_FETCH_POINTER_ARGUMENT): Remove.
	(resolve_msgsend): Use architecture of current frame to determine
	pointer types.  Inline OBJC_FETCH_POINTER_ARGUMENT.
	(resolve_msgsend_stret, resolve_msgsend_super,
	resolve_msgsend_super_stret): Likewise.
2008-09-11 14:23:51 +00:00
Ulrich Weigand
0dfff4cba7 * alpha-tdep.c (alpha_register_type): Use builtin_type (gdbarch)
instead of builtin_type_ macros.
	* amd64-tdep.c (amd64_register_type): Likewise.
	(amd64_get_longjmp_target): Likewise.
	* arm-tdep.c (arm_register_type): Likewise.
	* avr-tdep.c (avr_register_type): Likewise.
	* cris-tdep.c (cris_register_type, crisv32_register_type): Likewise.
	* frv-tdep.c (frv_register_type): Likewise.
	* h8300-tdep.c (h8300_register_type): Likewise.
	* hppa-tdep.c (hppa32_convert_from_func_ptr_addr,
	hppa_skip_trampoline_code): Likewise.
	* i386-tdep.c (i386_register_type): Likewise.
	(i386_unwind_pc, i386_sse_type): Likewise.
	* ia64-tdep.c (ia64_register_type): Likewise.
	* m32r-tdep.c (m32r_register_type): Likewise.
	* m68k-tdep.c (m68k_register_type, m68k_unwind_pc): Likewise.
	* m88k-tdep.c (m88k_register_type): Likewise.
	* mep-tdep.c (mep_register_type): Likewise.
	* mips-tdep.c (mips_pseudo_register_type): Likewise.
	* mn10300-tdep.c (mn10300_register_type): Likewise.
	* mt-tdep.c (mt_copro_register_type): Likewise.
	* rs6000-tdep.c (rs6000_builtin_type_vec64): Likewise.
	(rs6000_convert_register_p, rs6000_register_to_value,
	rs6000_value_to_register): Likewise.
	* s390-tdep.c (s390_register_type): Likewise.
	* sh64-tdep.c (sh64_register_type): Likewise.
	(sh64_build_float_register_type, sh64_do_fp_register): Likewise.
	* sh-tdep.c (sh_sh2a_register_type, sh_sh3e_register_type,
	sh_sh4_build_float_register_type, sh_sh4_register_type,
	sh_default_register_type): Likewise.
	* sparc64-tdep.c (sparc64_register_type): Likewise.
	* sparc-tdep.c (sparc32_register_type): Likewise.
	* spu-tdep.c (spu_builtin_type_vec128, spu_register_type): Likewise.
	* v850-tdep.c (v850_register_type): Likewise.
	* vax-tdep.c (vax_register_type): Likewise.
	* xtensa-tdep.c (xtensa_register_type, xtensa_unwind_pc,
	xtensa_push_dummy_call): Likewise.

	* std-regs.c (value_of_builtin_frame_fp_reg,
	value_of_builtin_frame_pc_reg): Likewise.
	* target-descriptions.c (tdesc_register_type): Likewise.
2008-09-11 14:23:15 +00:00
Ulrich Weigand
6d84d3d833 * ada-lang.c (ada_coerce_to_simple_array_type): Use builtin_type_int32
instead of builtin_type_int as default unspecified integral type.
	(ada_index_type, ada_array_bound_from_type, ada_variant_discrim_type,
	assign_component, to_fixed_range_type): Likewise.
	* ada-typeprint.c (print_range, print_range_bound,
	print_range_type_named): Likewise.
	* ada-valprint.c (print_optional_low_bound, ada_val_print_1): Likewise.
	* eval.c (evaluate_subexp_standard): Likewise.
	* gnu-v2-abi.c (gnuv2_virtual_fn_field): Likewise.
	* gnu-v3-abi.c (gnuv3_get_virtual_fn, gnuv3_baseclass_offset,
	build_gdb_vtable_type): Likewise.
	* jv-lang.c (java_array_type): Likewise.
	* m2-typeprint.c (m2_print_bounds, m2_is_long_set_of_type): Likewise.
	* m2-valprint.c (m2_print_long_set): Likewise.
	* parse.c (follow_types): Likewise.
	* p-typeprint.c (pascal_type_print_base): Likewise.
	* valops.c (value_one, value_array, value_string,
	value_bitstring): Likewise.
	* value.c (allocate_repeat_value, value_from_string): Likewise.
	* varobj.c (c_describe_child): Likewise.
	* mt-tdep.c (mt_register_type): Likewise.
	* sh-tdep.c (sh_sh4_build_float_register_type): Likewise.
	* sh64-tdep.c (sh64_build_float_register_type): Likewise.
2008-09-11 14:22:33 +00:00
Ulrich Weigand
b769d911fd * gdbtypes.h (struct builtin_type): Remove builtin_true_char
and builtin_true_unsigned_char.
	(builtin_type_true_char): Remove macro, add extern declaration.
	(builtin_type_true_unsigned_char): Add extern declaration.
	* gdbtypes.c (builtin_type_true_char): New global variable.
	(builtin_type_true_unsigned_char): Likewise.
	(_initialize_gdbtypes): Initialize them.
	(gdbtypes_post_init): Do not initialize builtin_true_char
	and builtin_true_unsigned_char members of struct builtin_type.

	* printcmd.c (print_scalar_formatted): Do not use builtin_type;
	use builtin_type_true_unsigned_char instead.

	* ada-valprint.c (ada_val_print_1): Use builtin_type_true_char
	instead of builtin_type_char for internal string.
2008-09-11 14:21:21 +00:00
Ulrich Weigand
fde6c81990 * gdbtypes.h (builtin_type_void): Remove macro, add declaration.
(builtin_type_f_void): Remove macro.
	* gdbtypes.c (builtin_type_void): New global variable.
	(_initialize_gdbtypes): Initialize it.

	* gnu-v3-abi.c (build_gdb_vtable_type): Do not call
	lookup_pointer_type or lookup_function_type on builtin_type_void.
	* printcmd.c (set_next_address): Likewise.
	* objc-lang.c (value_nsstring): Likewise.
	* mt-tdep.c (mt_copro_register_type): Likewise.
	* xtensa-tdep.c (xtensa_register_type): Likewise.

	* symfile.c (syms_from_objfile): Remove special handling
	of builtin_type_void and builtin_type_char.
2008-09-11 14:20:50 +00:00
Ulrich Weigand
d4dbb9c7d4 * eval.c (evaluate_subexp_standard): Use exp->gdbarch types instead
of builtin_type_ macros when handling OP_OBJC_ operations.
	* objc-lang.c (print_object_command): Likewise.
2008-09-11 14:20:15 +00:00
Ulrich Weigand
8ca1c40ee1 * ada-valprint.c: Include "objfiles.h".
(ada_val_print_1): Use the gdbarch associated with the objfile whether
	a System.Address type is defined to retrieve the proper pointer type
	to use to print it.
2008-09-11 14:19:44 +00:00
Ulrich Weigand
3cb382c9d3 * ada-lang.c (value_pos_atr): Add TYPE argument. Use it as
result type instead of builtin_type_int.
	(value_subscript_packed): Use pos_atr instead of value_pos_atr.
	(ada_value_subscript): Update call to value_pos_atr.
	(ada_value_ptr_subscript): Likewise.
	(ada_evaluate_subexp): Likewise.
2008-09-11 14:19:09 +00:00
Ulrich Weigand
a53b7a21e5 * ada-lang.c (cast_to_fixed): Do not cast to builtin_type_double.
(cast_from_fixed_to_double): Rename to ...
	(cast_from_fixed): ... this.  Add TYPE parameter.  Use it instead
	of builtin_type_double.
	(ada_value_cast): Use cast_from_fixed instead of casting result
	of cast_from_fixed_to_double.
	(ada_evaluate_subexp): Update calls to cast_from_fixed_to_double.
2008-09-11 14:18:34 +00:00
Ulrich Weigand
22fe0fbb30 * valops.c (value_ind): No longer allow dereferencing an
integer type.
	* eval.c (evaluate_subexp_standard): Handle deferencing an
	integer type here.
	* ada-lang.c (ada_evaluate_subexp): Likewise.
2008-09-11 14:17:58 +00:00
Ulrich Weigand
d8631d213f * ada-valprint.c (ada_val_print_1): When implicitly dereferencing
a reference type, pass the reference type directly to unpack_pointer.
	* c-valprint.c (c_val_print): Likewise.
	* f-valprint.c (f_val_print): Likewise.
	* m2-valprint.c (print_variable_at_address, m2_val_print): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.
2008-09-11 14:17:24 +00:00
Ulrich Weigand
cb18ec4997 * eval.c (evaluate_subexp_standard): Use builtin_type_int8
to construct the EVAL_SKIP dummy return value.
	* ada-lang.c (ada_evaluate_subexp): Likewise.
	* jv-lang.c (evaluate_subexp_java): Likewise.
	* m2-lang.c (evaluate_subexp_modula2): Likewise.
	* scm-lang.c (evaluate_exp): Likewise.
2008-09-11 14:16:51 +00:00
Ulrich Weigand
0ab7ba45fa * value.h (coerce_enum, coerce_number): Remove prototypes.
* value.c (coerce_enum, coerce_number): Remove.
	* valarith.c (value_x_binop): Do not call coerce_enum.
	(value_x_unop): Likewise.
	(value_logical_not): Call coerce_array instead of coerce_number.
2008-09-11 14:16:14 +00:00
Ulrich Weigand
f7c79c4197 * ax-gdb.c: Include "language.h".
(gen_frame_args_address): Add GDBARCH parameter; use it
	instead of current_gdbarch.
	(gen_frame_locals_address): Likewise.
	(gen_var_ref): Add GDBARCH parameter.  Update calls to
	gen_frame_args_address and gen_frame_locals_address.  Use
	pointer type from gdbarch.
	(gen_usual_unary): Add EXP parameter.  Use integer type
	from exp->gdbarch.
	(gen_usual_arithmetic): Likewise.
	(gen_integral_promotions): Likewise.
	(gen_add, gen_sub): Remove.
	(gen_ptradd, gen_ptrsub, gen_ptrdiff): New functions.
	(gen_logical_not): Use passed-in boolean result type
	instead of builtin_type_int.
	(gen_complement): Do not call gen_usual_unary or
	gen_integral_promotions.
	(gen_struct_ref): Call require_rvalue instead of gen_usual_unary.
	(gen_repeat): Add EXP parameter.  Update call to gen_expr.
	Use builtin_type_int32 as internal range type.
	(gen_sizeof): Add EXP and SIZE_TYPE parameters.  Use SIZE_TYPE
	as result type.  Update call to gen_expr.
	(gen_expr): Add EXP parameter.  Update calls to gen_expr,
	gen_repeat, gen_var_ref, gen_usual_unary, gen_usual_arithmetic,
	and gen_integral_promotions.  Call gen_ptradd, gen_ptrsub,
	gen_ptrdiff, or gen_binop instead of gen_add or gen_sub.
	Use exp->gdbarch instead of current_gdbarch.
	Call language_bool_type to determine result type of UNOP_LOGICAL_NOT.
2008-09-11 14:15:39 +00:00
Ulrich Weigand
f44316fa94 * eval.c (evaluate_subexp_standard): Add calls to binop_promote
and unop_promote before calling value_binop et. al.
	* ada-lang.c (ada_evaluate_subexp): Add calls to binop_promote
	and unop_promote before calling value_binop et. al.

	* valarith.c (value_binop): Do not call binop_promote or unop_promote.
	(value_pos): Do not call unop_promote.
	(value_neg, value_complement): Likewise.
2008-09-11 14:15:01 +00:00
Ulrich Weigand
4066e64672 * value.h (unop_promote, binop_promote): Add prototypes.
* eval.c (unop_promote, binop_promote): New functions.
	* valarith.c (unop_result_type, binop_result_type): Remove.
	(value_binop): Call binop_promote or unop_promote.
	Inline remaining parts of binop_result_type.  Remove special
	code to truncate integer values for unsigned operations.
	(value_pos): Call unop_promote.  Inline remaining parts of
	unop_result_type.
	(value_neg, value_complement): Likewise.
2008-09-11 14:14:20 +00:00
Ulrich Weigand
89eef11460 * value.h (value_add, value_sub): Remove.
(value_ptradd, value_ptrsub, value_ptrdiff): Add prototypes.
	* valarith.c (value_add, value_sub): Remove.
	(value_ptradd, value_ptrsub, value_ptrdiff): New functions.
	(find_size_for_pointer_math): Add assertion.  Update comment.
	(value_binop): Update comment.

	* eval.c (ptrmath_type_p): New function.
	(evaluate_subexp_standard): Replace value_add and value_sub
	by value_ptradd, value_ptrsub, value_ptrdiff or value_binop.
	Use builtin_type_uint8 instead of builtin_type_char to hold
	the increment for BINOP_{PRE,POST}{IN,DE}CREMENT operations.
	* valarith.c (value_subscript): Replace value_add by
	value_ptradd.  Replace value_sub by value_binop.
	* ada-lang.c (ada_value_ptr_subscript): Likewise.
	(ada_tag_name_2): Replace value_add by value_ptradd.
	(ada_evaluate_subexp): Replace value_add and value_sub by
	value_binop.
	* m2-lang.c (evaluate_subexp_modula2): Replace value_add
	by value_ptradd.
	* gnu-v2-abi.c (gnuv2_virtual_fn_field): Likewise.
	* gnu-v3-abi.c (gnuv3_method_ptr_to_value): Likewise.
2008-09-11 14:13:46 +00:00
Ulrich Weigand
98b90dd888 * eval.c (evaluate_subexp_for_sizeof): Use builtin_int type of
the expression architecture instead of builtin_type_int as the
	sizeof return type.
2008-09-11 14:12:57 +00:00
Ulrich Weigand
c806c55a06 * expression.h (enum exp_opcode): Document OP_COMPLEX to take
a type parameter as expression element.
	* eval.c (evaluate_subexp_standard) [OP_COMPLEX]: Retrieve result
	type as expression element.
	* f-exp.y: Pass in type when buildin OP_COMPLEX expression.
	* parse.c (operator_length_standard): Update length of OP_COMPLEX.
2008-09-11 14:12:15 +00:00
Ulrich Weigand
fbb06eb1ba * language.h (struct language_arch_info): New members
bool_type_default and bool_type_symbol.
	(lang_bool_type): Remove prototype.
	(LA_BOOL_TYPE): Remove macro.
	(language_bool_type): Add prototype.
	* language.c (lang_bool_type): Remove.
	(language_bool_type): New function.

	* value.h (value_in): Change return value to int.
	* value.c (value_in): Return int instead of struct value *.

	* eval.c (evaluate_subexp_standard): Call language_bool_type instead
	of using LA_BOOL_TYPE.  Update call to value_in.
	* ada-lang.c (ada_evaluate_subexp): Call language_bool_type instead
	of using LA_BOOL_TYPE or builtin_type_int for boolean values.

	* language.c (unknown_language_arch_info): Set bool_type_default member
	of struct language_arch_info.
	* ada-lang.c (ada_language_arch_info): Set bool_type_symbol and
	bool_type_default members of struct language_arch_info.
	* c-lang.c (c_language_arch_info): Set bool_type_default member
	of struct language_arch_info.
	(cplus_language_arch_info): Set bool_type_symbol and bool_type_default
	members of struct language_arch_info.
	* f-lang.c (f_language_arch_info): Set bool_type_symbol and
	bool_type_default members of struct language_arch_info.
	* jv-lang.c (java_language_arch_info): Set bool_type_symbol and
	bool_type_default members of struct language_arch_info.
	* m2-lang.c (m2_language_arch_info): Set bool_type_symbol and
	bool_type_default members of struct language_arch_info.
	* p-lang.c (p_language_arch_info): Set bool_type_symbol and
	bool_type_default members of struct language_arch_info.
2008-09-11 14:11:40 +00:00
Ulrich Weigand
de7b6b4701 * jv-lang.c (enum java_primitive_types): New type.
(java_language_arch_info): New function.
	(java_language): Use it instead of c_language_arch_info.
2008-09-11 14:11:02 +00:00
Ulrich Weigand
afc05acb8b * value.h (value_bitstring_subscript): New prototype.
* valarith.h (value_bitstring_subscript): New function.
	(value_subscript): No longer handle TYPE_CODE_BITSTRING.
	* eval.c (evaluate_subexp_standard): Call value_bitstring_subscript
	instead of value_subscript to handle TYPE_CODE_BITSTRING.
2008-09-11 14:10:24 +00:00
Ulrich Weigand
3e79cecf02 * expression.h (struct expression): New member GDBARCH.
* parse.c (parse_exp_in_context): Initialize it.
	* parser-def.h (parse_gdbarch, parse_language): New macros.

	* ada-exp.y (parse_type): New macro.
	Replace builtin_type_ macros by using parse_type.
	Replace current_language by parse_language.
	* ada-lex.l (processInt): Replace current_gdbarch by parse_gdbarch.
	Replace builtin_type_ macros.

	* c-exp.y (parse_type): New macro.
	Replace builtin_type_ macros by using parse_type.
	(parse_number): Replace current_gdbarch by parse_gdbarch.
	(yylex): Replace current_language by parse_language.

	* f-exp.y (parse_type, parse_f_type): New macros.
	Replace builtin_type_ macros by using parse_{f_,}type.
	(parse_number): Replace current_gdbarch by parse_gdbarch.
	(yylex): Replace current_language by parse_language.

	* jv-exp.y (parse_type): New macro.
	(parse_number): Replace builtin_type_ macros by using parse_type.

	* m2-exp.y (parse_type, parse_m2_type): New macros.
	Replace builtin_type_ macros by using parse_{m2_,}type.

	* objc-exp.y (parse_type): New macro.
	Replace builtin_type_ macros by using parse_type.
	(parse_number): Replace current_gdbarch by parse_gdbarch.
	(yylex): Replace current_language by parse_language.

	* p-exp.y (parse_type): New macro.
	Replace builtin_type_ macros by using parse_type.
	(parse_number): Replace current_gdbarch by parse_gdbarch.
	(yylex): Replace current_language by parse_language.
2008-09-11 14:09:37 +00:00
Ulrich Weigand
c841afd52a * parser-defs.h (write_exp_msymbol): Remove TEXT_SYMBOL_TYPE
and DATA_SYMBOL_TYPE arguments.
	* parse.c (write_exp_msymbol): Remove TEXT_SYMBOL_TYPE and
	DATA_SYMBOL_TYPE arguments.  Replace use of builtin_type_CORE_ADDR.
	(write_dollar_variable): Update call.

	* ada-exp.y (write_var_or_type): Update call.
	* c-exp.y: Likewise.
	* f-exp.y: Likewise.
	* jv-exp.y: Likewise.
	* m2-exp.y: Likewise.
	* objc-exp.y: Likewise.
	* p-exp.y: Likewise.
2008-09-11 14:08:33 +00:00
Joel Brobecker
0c1f74cf55 * ada-lang.c (ada_parent_type): Add handling of the case where
the _parent field is a pointer and/or has a parallel XVS type.
        (ada_evaluate_subexp) [OP_VAR_VALUE]: When doing an
        EVAL_AVOID_SIDE_EFFECTS evaluation of a tagged type, return
        the type of the tag instead of doing forcing an EVAL_NORMAL
        expression evaluation.
2008-09-10 20:14:30 +00:00
Joel Brobecker
5823c3efd3 * ada-lang.c (is_digits_suffix): New function.
(is_dot_digits_suffix): Remove.
        (ada_lookup_symbol_list): Remove digits suffix from minimal symbols
        before looking up in symbol table, and do not use wild matches on them.
        (wild_match): Reimplement for speed and to allow matching of operator
        symbols.
        (is_valid_name_for_wild_match): Return zero for names that do not
        follow the GNAT encoding.

        (is_name_suffix): Fix typo in comment.
        (to_record_with_fixed_variant_part): Ditto.
2008-09-10 20:10:48 +00:00
Pedro Alves
e5fa801315 * Makefile.in (gnu-nat.o): New rule. 2008-09-10 18:13:21 +00:00
Joel Brobecker
6d2e05aaf9 * ada-lang.c (ada_evaluate_subexp) [OP_ATR_SIZE]: Use
archecture-neutral builtin_type_int32 instead of builtin_type_int.
2008-09-10 16:19:38 +00:00
Joel Brobecker
2ac8a782d9 * ada-lang.c (ada_evaluate_subexp) [BINOP_ADD, BINOP_SUB]:
Add special handling for pointer types.
2008-09-10 16:12:35 +00:00
Pedro Alves
b861ac8114 * inf-ttrace.c (inf_ttrace_follow_fork): Declare locals at the
right scope level.
	(inf_ttrace_resume, inf_ttrace_wait): Typos.
2008-09-10 11:24:24 +00:00
Ulrich Weigand
030b4912c6 * ada-lang.c (ada_array_length): Use builtin_type_int32 instead
of builtin_type_int.
	(ada_evaluate_subexp) [UNOP_IN_RANGE]: Use operand range type
	instead of builtin_type_int.
2008-09-10 09:47:39 +00:00
Pedro Alves
d51fd4c898 gdb/
* infrun.c (normal_stop): Run hook-stop last.

gdb/testsuite/
	* gdb.base/hook-stop-continue.c: New.
	* gdb.base/hook-stop-continue.exp: New.
2008-09-09 18:58:20 +00:00
Pedro Alves
11cb6f65ab * gnu-nat.c (gnu_pid_to_exec_file): Delete.
(init_gnu_ops): Don't register it.
2008-09-09 15:49:04 +00:00
Pedro Alves
a9ab742235 * gnu-nat.c (gnu_attach): Push target before fetching the list of
threads.
2008-09-09 12:08:12 +00:00
Daniel Jacobowitz
694182d2ba * valops.c (value_cast_structs): Return NULL for failure.
(value_cast): Handle NULL from value_cast_structs.
	(value_fetch_lazy): Call check_typedef.  Remove unused variable.

	testsuite/
	* gdb.base/structs3.c, gdb.base/structs3.exp: New files.
2008-09-08 22:16:51 +00:00
Pedro Alves
dcf4fbde10 * inferior.h (context_switch_to): Delete.
* infrun.c (context_switch): Don't save and load infrun state.
	(context_switch_to): Delete.

	* infcmd.c (proceed_thread_callback): Replace context_switch_to
	calls by switch_to_thread calls.

	* gdbthread.h (save_infrun_state, load_infrun_state): Delete.
	* thread.c (main_thread_state, main_thread_executing): Delete.
	(inferior_thread): Delete references to them.
	(add_thread_silent): Fix case where we're adding a thread with the
	same ptid as an exited thread.  Remove references to
	context-switching.
	(load_infrun_state, save_infrun_state): Delete.
	(thread_alive, is_thread_state, any_running, is_executing)
	(set_executing): Remove the special handling for targets that
	don't register any thread.
	(restore_current_thread, thread_apply_all_command)
	(do_captured_thread_select): Unconditionally call
	switch_to_thread.

	* mi/mi-main.c (mi_cmd_execute): Check for exited threads.
	Call switch_to_thread instead of context_switch_to.
2008-09-08 22:10:20 +00:00
Pedro Alves
fedae5ffbc * infrun.c (context_switch): Don't context-switch the continuations. 2008-09-08 22:04:54 +00:00
Pedro Alves
95e54da724 Remove global continuations in favour of a per-thread
continuations.

	* gdbthread.h (struct thread_info): Add comments around
	continuations and intermediate_continuations.
	(save_infrun_state, load_infrun_state): Delete continuations and
	intermediate_continuations arguments.
	* infrun.c (fetch_inferior_event): Only call normal_stop if
	stop_soon is NO_STOP_QUIETLY.
	(context_switch): Don't context-switch the continuations.
	* thread.c (clear_thread_inferior_resources): Discard all
	continuations of the thread we're clearing.
	(save_infrun_state, load_infrun_state): Delete continuations and
	intermediate_continuations arguments, and the code referencing
	them.
	* utils.c: Include "gdbthread.h".
	(cmd_continuation, intermediate_continuation): Delete.
	(add_continuation): Add thread_info* argument.  Install the
	continuation on it.
	(restore_thread_cleanup): New.
	(do_all_continuations_ptid, do_all_continuations_thread_callback):
	New.
	(do_all_continuations): Reimplement.
	(discard_all_continuations_thread_callback,
	discard_all_continuations_thread): New.
	(discard_all_continuations): Reimplement.
	(add_intermediate_continuation): Add thread_info* argument.
	Install the continuation on it.
	(do_all_intermediate_continuations_thread_callback)
	(do_all_intermediate_continuations_thread): New.
	(do_all_intermediate_continuations): Reimplement.
	(discard_all_intermediate_continuations_thread_callback): New.
	(discard_all_intermediate_continuations_thread): New.
	(discard_all_intermediate_continuations): Reimplement.

	* breakpoint.c (until_break_command): Install the continuation on
	the current thread.

	* defs.h (cmd_continuation, intermediate_continuation): Delete.
	(struct thread_info): Forward declare.
	(add_continuation, add_intermediate_continuation): Add
	thread_info* argument.
	(do_all_continuations_thread, discard_all_continuations_thread)
	(do_all_intermediate_continuations_thread)
	(discard_all_intermediate_continuations_thread): Declare.
	* inf-loop.c (inferior_event_handler): In non-stop only run
	continuations on the thread that stopped.  In all-stop, run
	continuations on all threads.
	* infcmd.c (step_once, finish_command): Adjust.
2008-09-08 21:57:42 +00:00
Pedro Alves
414c69f7a7 Remove the global stop_step in favour of a per-thread
stop_step.

	* inferior.h (stop_step): Delete.

	* gdbthread.h (struct thread_info): Add comments to stop_step.
	(save_infrun_state, load_infrun_state): Remove stop_step argument.
	* thread.c (load_infrun_state, save_infrun_state): Remove
	stop_step argument, and references to it.

	* infrun.c (clear_proceed_status): Clear stop_step.
	(fetch_inferior_event): Adjust.
	(context_switch): Don't context-switch stop_step.
	(handle_inferior_event): Adjust.
	(normal_stop): Adjust.
	(save_inferior_status, restore_inferior_status): Adjust.

	* infcmd.c (stop_step): Delete.
	(step_1, step_1_continuation, step_once, until_next_command):
	Adjust.
2008-09-08 21:55:16 +00:00
Pedro Alves
af679fd003 Remove the global step_multi in favour of a per-thread
step_multi.

	* inferior.h (step_multi): Delete.
	* gdbthread.h (struct thread_info): Add comments around
	step_multi.
	(save_infrun_state, load_infrun_state): Remove step_multi
	parameter.
	* thread.c (load_infrun_state, save_infrun_state): Remove
	step_multi argument, and references to it.
	* infcmd.c (step_multi): Delete.
	(step_1): Adjust.
	(step_1_continuation, until_next_command): Adjust.
	* infrun.c (fetch_inferior_event): Adjust.
	(context_switch): Don't context-switch step_multi.
	(print_stop_reason, normal_stop): Adjust.
2008-09-08 21:52:25 +00:00
Pedro Alves
2020b7abd8 Remove the global stop_signal in favour of a per-thread
stop_signal.

	* inferior.h (stop_signal): Delete.
	* gdbthread.h (save_infrun_state, load_infrun_state): Remove
	stop_signal argument.
	* thread.c (load_infrun_state, save_infrun_state): Remove
	stop_signal argument.  Don't reference it.

	* infcmd.c (stop_signal): Delete.
	(program_info): Adjust.
	* infrun.c (resume): Clear stop_signal.
	(proceed): Adjust.  Pass the last stop_signal to the thread we're
	resuming.
	(context_switch): Don't context-switch stop_signal.
	(handle_inferior_event, keep_going): Adjust.
	(save_inferior_status, restore_inferior_status): Adjust.

	* fbsd-nat.c: Include "gdbthread.h".
	(find_signalled_thread, find_stop_signal): New.
	(fbsd_make_corefile_notes): Use it.
	* fork-child.c (startup_inferior): Adjust.

	* linux-nat.c (get_pending_status): Adjust.
	(linux_nat_do_thread_registers): Adjust.
	(find_signalled_thread, find_stop_signal): New.
	(linux_nat_do_thread_registers): Add stop_signal parameter.
	(struct linux_nat_corefile_thread_data): Add stop_signal member.
	(linux_nat_corefile_thread_callback): Pass stop_signal.
	(linux_nat_do_registers): Delete.
	(linux_nat_make_corefile_notes): Use find_stop_signal.  Assume
	there's always a thread.

	* procfs.c (find_signalled_thread, find_stop_signal): New.
	(find_stop_signal): New.
	(procfs_do_thread_registers): Add stop_signal parameter.
	(struct procfs_corefile_thread_data): Add stop_signal member.
	(procfs_corefile_thread_callback): Pass args->stop_signal.
	(procfs_make_note_section): Find the last stop_signal.

	* solib-irix.c: Include gdbthread.h.
	(irix_solib_create_inferior_hook): Adjust.
	* solib-osf.c: Include gdbthread.h.
	(osf_solib_create_inferior_hook): Adjust.
	* solib-sunos.c: Include gdbthread.h.
	(sunos_solib_create_inferior_hook): Adjust.
	* solib-svr4.c: Include gdbthread.h.
	(svr4_solib_create_inferior_hook): Adjust.

	* win32-nat.c (do_initial_win32_stuff): Adjust.
2008-09-08 21:51:18 +00:00
Pedro Alves
32400bebb2 * gdbthread.h (struct thread_info): Add comments around
proceed_to_finish.
	(save_infrun_state, load_infrun_state): Remove proceed_to_finish
	argument.
	* thread.c (load_infrun_state, save_infrun_state): Delete
	proceed_to_finish argument and references to it.

	* infcall.c (call_function_by_hand): Adjust.
	* infcmd.c (finish_command): Adjust.
	* infrun.c (proceed_to_finish): Delete.
	(clear_proceed_status): Adjust.
	(context_switch): Don't context-switch proceed_to_finish.
	(normal_stop, save_inferior_status, restore_inferior_status):
	Adjust.
2008-09-08 21:48:52 +00:00
Pedro Alves
347bddb745 * inferior.h (stop_bpstat): Delete.
* breakpoint.h (bpstat_do_actions): Remove bpstat* argument.

	* breakpoint.c (bpstat_do_actions): Rename to ...
	(bpstat_do_actions_1): ... this.  Make static.  Change return type
	to int.  Return true if a breakpoint proceeded.
	(bpstat_do_actions): New, as wrapper around bpstat_do_actions_1.
	(delete_breakpoint): Don't reference the global stop_bpstat; it's
	gone.

	* gdbthread.h (struct thread_info): Add stop_bpstat.
	(save_infrun_state, load_infrun_state): Remove stop_bpstat
	argument.
	* thread.c (load_infrun_state, save_infrun_state): Remove
	stop_bpstat argument, and the code referencing it.

	* infcall.c: Include "gdbthread.h".
	(call_function_by_hand): Adjust.
	* exceptions.c: Include "gdbthread.h".
	(throw_exception): Adjust.
	* infcmd.c (stop_bpstat): Delete.
	(continue_command): In all-stop, set the ignore count on the
	thread that reported the stop.  In non-stop, set it on the current
	thread.
	(finish_command_continuation): Adjust.
	(program_info): Adjust.
	* infrun.c (clear_proceed_status): Adjust.
	(context_switch): Don't context-switch stop_bpstat.
	(handle_inferior_event): Adjust.
	(normal_stop): Adjust.
	(save_inferior_status, restore_inferior_status): Adjust.

	* inf-loop.c (inferior_event_handler): Remove parameter to
	bpstat_do_actions call.
	* top.c (command_loop): Remove parameter to bpstat_do_actions
	call.  Call it unconditionally.
	* event-top.c (command_handler): Ditto.
	* python/python.c (execute_gdb_command): Ditto.
2008-09-08 21:46:21 +00:00
Pedro Alves
078130d0ca * inferior.h (step_over_calls): Delete.
* gdbthread.h (save_infrun_state, load_infrun_state): Remove
	step_over_calls argument.
	* thread.c (save_infrun_state, load_infrun_state): Remove
	step_over_calls argument.  Adjust.

	* infcmd.c (step_over_calls): Delete.
	(step_1): Adjust.
	* infrun.c (clear_proceed_status): Adjust.
	(context_switch): Don't context-switch step_over_calls.
	(handle_inferior_event, save_inferior_status)
	(restore_inferior_status): Adjust.
2008-09-08 21:43:00 +00:00
Pedro Alves
4e1c45eac7 Remove context switching in favour of accessing thread_info fields
directly.

	* infrun.c (stepping_over_breakpoint, step_resume_breakpoint):
	Delete.
	(struct thread_stepping_state): Delete.
	(gtss, tss): Delete.
	(follow_inferior_reset_breakpoints, follow_exec)
	(resume, clear_proceed_status): Adjust.
	(prev_pc): Delete.
	(proceed, start_remote, init_wait_for_inferior): Adjust.
	(struct execution_control_state): Add event_thread member.
	(delete_step_resume_breakpoint_callback)
	(delete_step_thread_step_resume_breakpoint)
	(delete_step_thread_step_resume_breakpoint_cleanup)
	(delete_step_thread_step_resume_breakpoint): New.
	(wait_for_inferior, init_execution_control_state): Use
	delete_step_thread_step_resume_breakpoint_cleanup.
	(wait_for_inferior): Set the event_thread.
	(fetch_inferior_event): Ditto.  Delete the step-resume breakpoint
	with delete_step_thread_step_resume_breakpoint.
	(init_thread_stepping_state): Change parameter type to
	thread_info.  Adjust.
	(context_switch): Don't context switch prev_pc,
	stepping_over_breakpoint, step_resume_breakpoint,
	step_range_start, step_range_end, step_frame_id,
	tss->stepping_over_breakpoint,
	tss->stepping_through_solib_after_catch,
	tss->stepping_through_solib_catchpoints, tss->current_line, or
	tss->current_symtab.
	(adjust_pc_after_break, handle_inferior_event)
	(currently_stepping, step_into_function)
	(insert_step_resume_breakpoint_at_sal)
	(insert_longjmp_resume_breakpoint, keep_going): Adjust.
	(clear_stepping_state): New.
	(normal_stop): Adjust.
	(save_inferior_status, restore_inferior_status): Adjust.

	* gdbthread.h (struct thread_info): Comments describing the
	members moved here.  Add step_after_step_resume_breakpoint.
	(delete_step_resume_breakpoint): Add thread_info argument.
	(save_infrun_state, load_infrun_state): Remove prev_pc,
	trap_expected, step_resume_breakpoint, step_range_start,
	step_range_end, step_frame_id, another_trap,
	stepping_through_solib_after_catch,
	stepping_through_solib_catchpoints, current_line and
	current_symtab function arguments.
	(inferior_thread): Declare.

	* thread.c (inferior_thread): New.
	(delete_step_resume_breakpoint): Add a thread_info parameter and
	rewrite.
	(load_infrun_state, save_infrun_state): Remove prev_pc,
	trap_expected, step_resume_breakpoint, step_range_start,
	step_range_end, step_frame_id, stepping_over_breakpoint,
	stepping_through_solib_after_catch,
	stepping_through_solib_catchpoints, current_line and
	current_symtab args.  Remove code referencing them.

	* infcmd.c (step_range_start, step_range_end, step_frame_id):
	Delete.
	(step_1, step_once, until_next_command): Adjust.

	* inferior.h (step_range_start, step_range_end, step_frame_id):
	Delete.

	* linux-nat.c (linux_child_follow_fork): If following the child,
	move the step state to it.  Adjust.
	* inf-ptrace.c (inf_ptrace_follow_fork): Ditto.
	* inf-ttrace.c (inf_ttrace_follow_fork): Ditto.
2008-09-08 21:40:39 +00:00
Pedro Alves
757f359dd1 * bsd-uthread.c (bsd_uthread_find_new_threads): Claim the main
thread.
2008-09-08 21:37:01 +00:00
Pedro Alves
0de3b513a4 * corelow.c (add_to_thread_list): If this is the first time we
hear about thread info, update inferior_ptid.
	(core_open): Clear the thread list and set inferior_ptid before
	acknowledging a new inferior.  Find threads before fetching
	register info.  Give an upper target layer a chance to find and
	claim new threads.  Print core generation and stop signal info
	after finding new threads.
	(get_core_register_section): Look at the lwp member of
	inferior_ptid for detecting if we have threads info, instead of
	the pid member.
	(core_pid_to_str): New.
	(init_core_ops): Register core_pid_to_str.
2008-09-08 21:36:01 +00:00
Pedro Alves
4189d2f820 * spu-linux-nat.c (spu_child_post_startup_inferior)
(spu_child_post_attach): Don't add the main thread here.
2008-09-08 21:34:35 +00:00
Pedro Alves
617fd3b510 Use ptid_t.tid to store thread ids instead of ptid_t.pid.
* gnu-nat.c (inf_validate_procs): If this is the first time we're
	seeing a thread id, extend the main thread's ptid.  If we still
	have pending execs, don't be verbose about new threads.
	(gnu_wait, gnu_resume, gnu_attach, gnu_thread_alive)
	(gnu_pid_to_str, cur_thread, sig_thread_cmd): Adjust.
	* i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers):
	Adjust.
2008-09-08 21:33:25 +00:00
Pedro Alves
2689673f45 * procfs.c (to_attach): Create a procinfo for the current lwp.
Add it to gdb's thread list.
	(procfs_fetch_registers, procfs_store_registers): Assume there's
	always an lwp.
	(procfs_wait): Don't add the main thread here.
	(procfs_init_inferior): Create a procinfo for the main lwp here.
	Change main thread's ptid with thread_change_ptid.
	(procfs_notice_thread): Check for exited threads.
	(procfs_corefile_thread_callback): Remove check for the main
	process.
	(procfs_make_note_section): Assume there is always a thread.

	* sol-thread.c (sol_thread_attach): Clear sol_thread_active before
	attaching.  Change the main thread ptid with thread_change_ptid.
	(sol_thread_detach): Clear sol_thread_active.
	(sol_thread_wait): Check for exited threads.
	(sol_thread_create_inferior): Clear sol_thread_active before
	creating a new inferior.  Change the main thread ptid with
	thread_change_ptid.
	(sol_thread_mourn_inferior): Clear sol_thread_active.
	(sol_find_new_threads_callback): Check for exited threads.
2008-09-08 21:31:54 +00:00
Pedro Alves
62a93fa9cb * inf-ttrace.c (inf_ttrace_wait): On TTEVT_LWP_CREATE and
LWP_TERMINATE, resume the caller thread.  On TTEVT_LWP_CREATE,
	TTEVT_LWP_EXIT and TTEVT_LWP_TERMINATE, don't stop the whole
	process, and return TARGET_WAITKIND_IGNORE.
2008-09-08 21:30:23 +00:00
Pedro Alves
438ac09b47 * inf-ttrace.c: Include <signal.h>
(inf_ttrace_delete_dead_threads_callback): New.
	(inf_ttrace_resume_lwp): New.
	(inf_ttrace_resume_callback, inf_ttrace_resume): Rewrite.  Don't
	delete dying threads until they are really dead.
	(inf_ttrace_wait): After stopping the whole process, delete any
	dying thread that is really dead by now.
	(inf_ttrace_thread_alive): Return 1.
	(inf_ttrace_extra_thread_info): New.
	(inf_ttrace_target): Register inf_ttrace_extra_thread_info.
2008-09-08 21:28:53 +00:00
Pedro Alves
2935f27f6e * inf-ttrace.c (inf_ttrace_follow_fork): Register the main thread
of the child fork.
	(inf_ttrace_attach): Add the main thread.
	(inf_ttrace_resume_callback): Check for exited threads.  Adjust
	for always a thread.
	(inf_ttrace_wait): Decorate the main thread's ptid with lwp info
	using thread_change_ptid, and set its private data.  Don't add the
	main thread here.
	(inf_ttrace_pid_to_str): Adjust.
2008-09-08 21:27:45 +00:00
Pedro Alves
fb5e7258b3 * bsd-uthread.c (bsd_uthread_wait): Decorate the main thread with
thread_change_ptid.  Check for exited threads.
	(bsd_uthread_find_new_threads): Check for exited threads.
2008-09-08 21:26:36 +00:00
Pedro Alves
af99052775 * inf-ptrace.c: Include "gdbthread.h".
(inf_ptrace_attach): Add the main thread here.
	* linux-nat.c (linux_nat_attach): Don't add the main thread here.
	Decorate the main thread id with the lwp id.
2008-09-08 21:25:05 +00:00
Pedro Alves
27c9d2043e * linux-nat.c (linux_nat_wait): Update inferior_ptid's ptid with
thread_change_ptid.  Don't add or mark the main thread as running
	and executing here.
	* fork-child.c (fork_inferior): Add the main thread here.
2008-09-08 21:22:49 +00:00
Jerome Guitton
de9f48f0c4 * rs6000-tdep.c (rs6000_fetch_instruction)
(rs6000_skip_stack_check): New functions.
	(skip_prologue): Skip stack check sequence.
2008-09-08 16:18:24 +00:00
David Daney
52163a60e6 * dummy-frame.h (frame.h): Include it.
(struct frame_id): Remove declaration.
2008-09-08 15:23:12 +00:00
Ulrich Weigand
87805e6373 * spu-tdep.c (spu_push_dummy_code): New function.
(spu_gdbarch_init): Install it.
2008-09-05 15:19:59 +00:00
Ulrich Weigand
0b1553bcdd * gdbarch.sh (gdbarch_dump): Use core_addr_to_string_nz
instead of paddr_nz.
	* gdbarch.c: Regenerate.

	* target.c (target_xfer_partial, debug_print_register): Use
	core_addr_to_string_nz instead of paddr_nz.
2008-09-05 12:57:16 +00:00
Ulrich Weigand
2454a0247b * rs6000-tdep.c (rs6000_gdbarch_init): Setup displaced stepping
*before* calling gdbarch_init_osabi.
	(rs6000_aix_init_osabi): Disable displaced stepping.
2008-09-05 11:58:30 +00:00
Ulrich Weigand
b52323fa6f * target.c (update_current_target): Do not inherit to_open
or to_close.
	(pop_target): Call target_close on target_stack instead
	of current_target.
	(pop_all_targets_above): Likewise.
2008-09-05 11:50:57 +00:00