ChangeLog-Apple   [plain text]

2009-07-01  Caroline Tice  <>

        * linespec.c (symbols_found):  Test to make sure canonical is 
	non-null before dereferencing it.

2009-06-29  Caroline Tice  <>

        * breakpoint.c (objc-lang.h):  New include statement.
	(describe_other_breakpoints):  Add test for bp_hand_call_disable to
	condition test.
	(check_duplicates): Ditto.
	(disable_user_breakpoints_before_updating_data_formatters):  New 
	(enable_user_breakpoints_after_updating_data_formatters):  New
	(make_cleanup_enable_disable_bpts_during_varobj_operation):  New
	(delete_breakpoint):  Add test for bp_hand_call_disable to
	condition test.
	(breakpoint_re_set_one):  Ditto.
	* breakpoint.h (enum enable_state):  Add bp_hand_call_disable enum.
	(make_cleanup_enable_disable_bpts_during_varobj_operation):  New
	extern decl.
	* objc-lang.c (is_objc_exception_throw_breakpoint):  New function.
	* objc-lang.h (is_objc_exception_throw_breakpoint):  New extern decl.
	* mi/mi-cmd-var.c (breakpoint.h):  New include statement.
	(mi_cmd_var_create):  Call 
	make_cleanup_enable_disable_bpts_during_varobj_operation; call
	do_cleanups on the new cleanup.
	(mi_cmd_var_evaluate_expression):  Ditto.
	(mi_cmd_var_update):  Ditto.
	* mi/mi-main.c (mi_cmd_data_evalute_expression): Ditto.
	(breakpoint.h): New include statement.

2009-06-22  Jim Ingham  <>

	* breakpoint.c (remove_duplicate_sals): Take in the canonical
	array and remove the duplicate elements from it as well.
	(create_breakpoints): Pass NULL for canonical to 
	* breakpoint.h: Change declaration of remove_duplicate_sals.
	* linespec.c (decode_all_variables): Use the original canonical
	arrays for the syms & minsyms.
2009-06-16  Caroline Tice  <>

        * config/arm/ (MH_CFLAGS):  Add -D_DARWIN_UNLIMITED_STREAMS
        to MH_CFLAGS, to allow more than 256 streams to be open at a time.
        * config/i386/ (MH_CFLAGS):  Ditto.
        * config/powerpc/ (MH_CFLAGS):  Ditto.

2009-05-15  Jim Ingham  <>

	* objc-lang.c (debug_mode_set_p): Make this variable an
	enum so its meaning is explicit.
	(print_object_command): If you are going to run all threads
	explicitly turn off the scheduler.
	(reinitialize_objc): Use enum values for debug_mode_set_p.
	(do_end_debugger_mode): Ditto
	(make_cleanup_set_restore_debugger_mode): Ditto, plus:
	Check for overridden first and just return success and a null
	If level is -1 set debug_mode_set_p to overridden.
	* infrun.c (set_scheduler_locking_mode): Fix typo in the
	debugging output.
2009-05-12  Jim Ingham  <>

	* inferior.h: Declare debug_handcall_setup
	* infrun.c (set_scheduler_locking_mode): Print some diagnostic
	info if debug_handcall_setup is set.
	(_initialize_infrun): Add "set debug hand-call-setup" command.
	* objc-lang.c (do_end_debugger_mode): Print some diagnostic
	info if debug_handcall_setup is set.
	(make_cleanup_set_restore_debugger_mode): More diagnostics.  But
	more importantly, set scheduler-locking to on if we're shortcutting
	the main function because the debugger mode is already on.
	Also, if level is -1, turn the debugger mode off if it is on already.
	* utils.c (do_hand_call_cleanups): More diagnostics.
	(discard_hand_call_cleanups): Ditto.

	* target.h: Move target_kill from a define to a function.
	* target.c (target_detach): Run the hand_call cleanups before
	(target_kill): Ditto.

	* objc-lang.c (value_objc_target_type): If we see an object with
	more than 1 base classes, reject it out of hand rather than continuing
	to attempt to traverse the hierarchy.  ObjC is single inheritance.
2009-05-10  Caroline Tice  <>

       * breakpoint.c (bpstat_stop_status): If we hit an inlined
       breakpoint while single stepping, DON'T call
       * inlining.c (inlined_subroutine_adjust_position_for_breakpoint): 
       Make sure the ".s" field (symtab field) of a record is non-null
       before trying to dereference it.

2009-05-07  Jim Ingham  <>

	* breakpoint.c (breakpoint_update): Only complain about resetting
	user-settable breakpoints.
	(breakpoint_re_set_all): Ditto.
2009-05-06  Jim Ingham  <>

	* objc-lang.c (make_cleanup_set_restore_debugger_mode): If we can't
	find objc, then return success.  It is safe by default.
	* infrun.c (print_stop_reason): If we aren't going to stop when
	we catch a signal, then print the stop message as an async notification.

	* target.c (update_current_target): Make the to_async for the None
	target be target_ignore, not tcomplain.  Throwing an error here is not
2009-05-05  Caroline Tice  <>

	* inferior.h (address_contained_breakpoint_trap): New extern function
	* mem-break.c (BKPS_ARRAY_SIZE):  New constant.
	(recent_breakpoints): New global variable.
	(last_bkpt_index):  New global variable.
	(default_memory_remove_breakpoint):  When removing breakpoint trap,
	add the address to recent_breakpoints and update last_bkpt_index.
	(address_contained_breakpoint_trap):  New function.
	* macosx/macosx-nat-inferior.c (macosx_baclup_this_event): For
	breakpoint events, if address_contained_breakpoint_trap returns true
	back up the PC, even if there isn't currently a breakpoint there.
	(macosx_process_events):  If we get a breakpoint event with no
	breakpoint set at the address, but address_contained_breakpoint_trap
	returns true, back up the PC on that thread and throw away the event.

2009-04-30  Jason Molenda  (

	* inlining.c (inlined_function_address_ranges_properly_contained): Fix
	to logic which compares the two inlined functions if both have ranges.

2009-04-24  Jim Ingham  <>

	* objc-lang.c (print_object_command): If it isn't safe to run
	the description method with the other threads locked, do it
	with all threads free to run.
	(_initialize_objc_lang): Add let-po-run-all-threads set variable.

2009-04-23  Jason Molenda  (

	* objc-lang.c (debug_mode_set_reason): Track the failure/success
	that corresponds to debug_mode_set_p.
	(lookup_objc_class): Update call to 
	make_cleanup_set_restore_debugger_mode to handle new return codes.
	(print_object_command): Ditto.
	(new_objc_runtime_find_impl): If we failed to enter objc debug mode
	because there is a malloc lock being held, use the _cache_getImp
	backup method to see if we can divine where this dispatch is headed.
	(reinitialize_objc): Set debug_mode_set_reason.
	(find_implementation): Test if there is a malloc lock being held
	currently.  If so, don't try to resolve the "true" class of the object,
	just use the isa pointer.
	(new_objc_runtime_get_classname): Update call to 
        make_cleanup_set_restore_debugger_mode to handle new return codes.
	(LOCKS_DEBUGGING, spinlock_lock_is_present, malloc_lock_is_present): 
	Debugging aids.
	(do_end_debugger_mode): Reset debug_mode_set_reason.
	(do_reset_debug_mode_flag): Reset debug_mode_set_reason.
	(make_cleanup_set_restore_debugger_mode): Updated to return an enum
	which describes why this function failed; move the cleanup return to
	a pass-by-ref parameter.  
	(get_class_address_from_object): Update call to
        make_cleanup_set_restore_debugger_mode to handle new return codes.
	* objc-lang.h (enum objc_debugger_mode_result): New.
	(make_cleanup_set_restore_debugger_mode): Prototype updated.

	* infcall.c (hand_function_call): Update call to 
	make_cleanup_set_restore_debugger_mode to handle new return codes.

2009-04-21  Jim Ingham  <>

	* symfile.c (add_symbol_file_command): Use 
	re_enable_breakpoints_in_shlibs in place of breakpoint_update.

2009-04-17  Jim Ingham  <>

	* breakpoint.c (resolve_pending_breakpoint): Emasculate.
2009-04-17  Jason Molenda  (

	* objfiles.c (free_objfile): Call tell_breakpoints_objfile_removed 
	before we free anything from the objfile.
	* symfile.c (syms_from_objfile): Don't call 
	tell_breakpoints_objfile_removed; it is handled by free_objfile() and
	calling it twice results in freed/reused memory being used.
	(symbol_file_clear): Ditto.

2009-04-14  Jim Ingham  <>

	* breakpoint.{c,h}: Rename create_objc_debugger_mode_fail_breakpoint to 
	* infcall.c (hand_function_call): Insert a catcher for ObjC Exception
	throwing while in a hand called function.
	(_initialize_infcall): Add a knob to turn the catcher off.
	* objc-lang.c (do_cleanup_objc_exception_breakpoint): New function.
	(make_cleanup_init_objc_exception_catcher): New function.
	(init_debugger_mode_fail_notification): Change to 
	(objc_pc_at_debugger_mode_fail): Rename to objc_pc_at_fail_point, and 
        handle both the debugger fail & the objc_exception_throw hit.
	* objc-lang.h: Declare make_cleanup_init_objc_exception_catcher.
2009-04-14  Jason Molenda  (

	* dbxread.c (open_bfd_from_oso): Set retval to NULL before jumping to
	the cleanups section.

2009-04-14  Caroline Tice  <>

	* inlining.c (inlined_subroutine_adjust_position_for_breakpoint):
	Initialize cur_pos variable.

2009-04-13  Jason Molenda  (

	* gdbtypes.c (make_cvr_type): Don't use "restrict" as an arg name.

2009-04-10  Jim Ingham  <>

	* frame.c (frame_pop): If we can't unwind to the previous frame,
	raise an error.
2009-04-08  Jason Molenda  (

	* dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols): Stop reading
	debug_inlined again; the inlined symbols are taking over too large 
	of address ranges during symbolication.
	(scan_partial_inlined_function_symbols): Ditto.

2009-04-06  Jason Molenda  (

	* symfile.c (add_symbol_file_command): Only forward the fileame on
	to add_dsym_command if the number of arguments to add-symbol-file was
	one.  Pass the arg string directly to preserve quoting.

2009-04-03  Caroline Tice  <>

       * breakpoint.c (bpstat_stop_status):  If breakpoint was set
       by location and happens to fall on an inlined subroutine call site
       address, do some extra work to decide whether the users's context
       is at the call site or inside the subroutine.

2009-03-31  Jim Ingham  <>

	* linespec.c (decode_line_1): Handle correctly 
	"foo.cp:'Foo::doSomething (char *)'".
	(build_canonical_line_spec): Put '' around second half of 
	canonicalized form of breakpoint.
	(decode_all_variables): Ditto.
	(symbols_found): Ditto.
	* inlining.c (inlined_subroutine_adjust_position_for_breakpoint): 
	Canonicalize as above.
2009-03-31  Caroline Tice  <>

       * dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols):  Remove the 
       temporary FIXME return statement at the beginning of the function.
       (scan_partial_inlined_function_symbols):  Ditto; also add static
       variable current_psym_objfile; use it to keep track of the last objfile 
       for which we read the debug_inlined section so we don't read the
       section more than once per objfile.

2009-03-30  Jim Ingham  <>

	* linespec.c (decode_all_variables): Treat symbols as identical
	if their block ranges are the same, and their linkage names are 
	the same.
2009-03-26  Jim Ingham  <>

	* objc-lang.c (make_cleanup_set_restore_debugger_mode): If the
	mode is already on, don't turn on scheduler-locking every time
	we get called.
2009-03-26  Caroline Tice  <>

       * breakpoint.c (create_breakpoints): Do not assign
       bp_inlined_breakpoint type to non-inlined breakpoint locations.

2009-03-24  Jason Molenda  (

	* dwarf2read.c (new_symbol): Put base types and typedefs in the
	global scope of symtabs instead of file-static scope so we can find
	them more easily.

2009-03-24  Jason Molenda  (

	* gdbtypes.c (make_cv_type): Rename this function to make_cvr_type to
	also handle restrict qualifiers.
	(check_typedef): Handle TYPE_RESTRICT.
	* hpread.c (hpread_type_lookup): Update to use make_cvr_type.
	* stabsread.c (read_type): Pass the restrict qualifiers along.
	* parse.c (follow_types): Pass the restrict qualifiers along.
	* dwarf2read.c (read_tag_const_type): Call make_cvr_type.
	(read_tag_volatile_type): Same.
	(read_tag_restrict_type): New function.
	(read_type_die): Handle DW_TAG_restrict_type.

2009-03-24  Jim Ingham  <>

	* printcmd.c (build_address_symbolic): Check for NULL msymbol before
	checking for the right section.
2009-03-19  Jason Molenda  (

	* dwarf2read.c (dwarf2_scan_pubtype_for_psymbols): Put type symbols in
	the "global" block of the psymtab.
	(add_partial_symbol): Put type symbols in the global block of the 
	(load_partial_dies): Ditto.
	(new_symbol): Put type symbols in the global block of the symtab.

2009-03-18  Jim Ingham  <>

	* valops.c (do_check_is_thread_unsafe): "reason" -> "problem".
	* objc-exp.y (variable:	name_not_typename): If the language
	is objcplus, then check the method name for obvious ObjC
	patterns before deciding it's a C++ method.
	* dwarf2read.c (read_structure_type):  Create the cplus_stuff
	before setting the runtime type to ObjC.
2009-03-18  Caroline Tice  <>

      * gdbthread.h (struct thread_info):  Add new field, 
      * infcmd.c (step_1_inlining): Clarify comment for inlined_step_range_end.
      (step_once):  Ditto.
      * inlining.c (inlined_step_range_end):  Add comments for global variable.
      (inlined_function_update_call_stack): Mark current frame as "stepped 
      into" if either stepping_into_inlined_subroutine is true, or if the 
      start pc for the current frame matches inlined_step_range_end.
      (save_thread_inlined_call_stack):  Save the value of 
      (restore_thread_inlined_call_stack):  Restore the value of 
      * inlining.h (inlined_step_range_end):  Add better comments for extern 
      * top.c (execute_command):  Remove condition  for clearing

2009-03-16  Jason Molenda  (

	* breakpoint.c (resolve_pending_breakpoint): Don't try to insert
	a breakpoint in the requested_shlib if that objfile is mid-setup.
	* objfiles.c (find_objfile_by_name): Use objfile_matches_name() to
	decide if the filenames match or not.

2009-03-16  Jason Molenda  (

	* symtab.c (lookup_symtab_all): When verbose, say what symbol
	we're looking for when expanding a psymtab.
	(lookup_symbol_aux_psymtabs): Ditto.
	(basic_lookup_transparent_type): Ditto.

2009-03-16  Jim Ingham  <>

	* objc-lang.c (objc_target_type_from_object): In the 1.0 runtime,
	check that the class name is at least a valid C identifier.
	* infrun.c (allocate_signal_set): New function.
	(set_minimal_signal_handling): New function.
	(_initialize_infrun): Add normal_signal_* and minimal_signal_*
	arrays, and setup the signal_* array to point to normal.  Add
	the minimal-signal-handling set command.
2009-03-16  Caroline Tice  <>

	* infcmd.c (step_1_inlining): Set inlined_step_range_end if 
	appropriate to start address of inlined subroutine on current line.
	(step_once):  Ditto.
	* inlining.c (inlined_step_range_end):  New global variable.
	(inlined_function_update_call_stack):  Clear inlined_step_range_end
	after stepping into an inlined subroutine.
	* inlining.h (inlined_step_range_end):  Extern decl for new global 
	* top.c (execute_command):  Use inlined_step_range_end to decide
	whether or not to clear stepping_into_inlined_subroutine.

2009-03-16  Jason Molenda  (

	* objc-lang.c (get_class_address_from_object): Don't pass uninitialized
	memory to do_cleanups.

2009-03-16  Jim Ingham  <>

	* linespec.c (intersect_sals): Consider breakpoints equivalent
	if they come from the same objfile, and the PC, line and file
	are identical.

2009-03-12  Jim Ingham  <>

	* objc-lang.c (objc_read_trampoline_region): Accomodate the
	intptr_t version as well as the uint32_t version of the trampoline
2009-03-11  Caroline Tice  <>

        * objc-lang.c (get_class_address_from_object):  New function.
        (find_implementation): Use results of get_class_address_from_object
        rather than the isa pointer, if new_obj c_runtime_internals is true.
        (objc_target_type_from_oject):  Ditto.
        (objc_fixup_ivar_offset):  Fix print format string, to eliminate
        compiler warning.

2009-03-10  Jason Molenda  (

	* thread.c (do_captured_thread_select): Print the thread name of
	the newly selected thread, if there is any.

2009-03-04  Jim Ingham  <>

	* varobj.c (value_of_root): If the frame has changed in an
	use_selected_frame variable, you have to chuck the old copy.
2009-03-04  Jason Molenda  (

	* x86-shared-tdep.c (x86_initialize_frame_cache): Set saved_sp
	initial value to INVALID_ADDRESS instead of 0.
	(x86_frame_this_id): Include pc value in debug log printf.
	(x86_frame_prev_register): Don't run the full prologue analyzer if
	we don't have a function start address for this frame.  Don't run
	the full prologue analyzer if we're just fetching the stack pointer.
	Additional debug logging printfs added to help trace where we're
	retrieving register values from.

2009-03-04  Jim Ingham  <>

	* symfile.c (reread_symbols): Remove bfd sections from the
	target->to_sections before closing the bfd.
	* objfile.c (free_objfile): Ditto.
2009-03-04  Jason Molenda  (

	* infcall.c (hand_function_call): Spelling fixo.

2009-03-03  Jim Ingham  <>

	* varobj.c (value_of_root): Make sure use_selected_frame variables
	properly update themselves when the frame changes.
2009-03-02  Jim Ingham  <>

	* objc-lang.c (print_object_command): Make call-po-at-unsafe-times
	really do that.
	(resolve_msgsendsuper2, resolve_msgsendsuper2_stret): New functions.
	(resolve_newruntime_objc_msgsendsuper): Handle the straight 
	objc_msgSendSuper2 & _stret versions as well.

2009-03-02  Greg Clayton  (

	* symtab.c (fixup_section): If we don't find the minimal symbol from
	the name and the objfile has a prefix, try and prepend the prefix
	and looking up the minimal symbol again and check the objfile for 

2009-02-27  Jim Ingham <>

        * breakpoint.c (break_command_2): Report the actual binary, not the
        dSYM, in the "matches" output.
	* symtab.c (fixup_section): Back out Greg's change 1.139.
2009-02-27  Jason Molenda  (

	* x86-shared-tdep.c (show_debug_x86bt): Show current setting of
	debug_x86bt flag.
	(x86_analyze_prologue): Print additional diagnostic info if debug_x86bt
	is set.
	(x86_frame_this_id): Ditto.
	(_initialize_x86_shared_tdep): Register the set debug x86bt cmd.

2009-02-27  Caroline Tice  <>

	* linespec.c (decode_line_2):  Initialize entry_type and next
	fields of symtab_and_line struct.

2009-02-25  Greg Clayton  (

	* symfile.c (add_objfile_prefix): Correctly prefix dyld minimal
	symbols that get added to executable from the dSYM psymbols.
	* symtab.c (fixup_section): If we don't find the minimal symbol from
	the name and the objfile has a prefix, try and prepend the prefix
	and looking up the minimal symbol again.

2009-02-26  Jim Ingham <>

	* breakpoint.c (break_command_2): Add "func" to the "matches" output.

2009-02-25  Jason Molenda  (

	* thread.c: Only pull in macosx-nat-infthread.h when doing a native

2009-02-25  Jason Molenda  (

	* dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols): Disable 
	reading of the debug_inlined section until we get the performance 
	issued worked out.
	(scan_partial_inlined_function_symbols): Ditto.

2009-02-25  Greg Clayton  <>

	* dbxread.c (dbx_symfile_read): Don't read any minsyms for dSYM files.
	Do read minsyms for executables (with or without dSYM files).
	* symfile.c (append_psymbols_as_msymbols): Always append psymbols from 
	dSYM files to the main executable since we aren't reading minsyms from
	dSYM files anymore.

2009-02-24  Jason Molenda  (

	* target.h: Add to_get_thread_name, to_get_thread_id_str.
	* target.c (update_current_target): Inherit them.
	(update_current_target): Set defaults of NULL for 
	to_get_thread_name, to_get_thread_id_str.
	* thread.c (info_threads_command): Use target_get_thread_name and
	target_get_thread_id_str to retrieve these two pieces independently;
	format them so the fields line up.

2009-02-20  Jason Molenda  (

	* thread.c (do_captured_list_thread_ids): Call over into
	macosx-nat-infthread.c to print details about the threads via mi.

2009-02-20  Jim Ingham  <>

	* objc-lang.c: Added a few comments and justified a few lines.

2009-02-20  Jason Molenda  (

	* thread.c (info_threads_command): Increase the limit on the length
	of the port#/thread name to 48 chars.

2009-02-19  Greg Clayton  <>

	* dbxread.c (dbx_symfile_read): If we have a dSYM file and that dSYM
	file has a __LINKEDIT segment, then don't read any minimal symbols
	from the main executable as it may have been stripped and the dSYM
	should always have as much, if not more, than the executable.
	* symfile.c (append_psymbols_as_msymbols): Don't append partial 
	symbols as minimal symbols to the executable's objfile when the dSYM
	has a __LINKEDIT segment (see comment above for dbx_symfile_read).

2009-02-19  Jason Molenda  (

	* Check for thread_identifier_info_data_t, 
	* configure, Updated.
	* main.c (captured_main): Set the main gdb thread's name.
	* thread.c (info_threads_command): target_tid_to_str now returns the
	thread's name; pad/truncate it to 32 characters long.

2009-02-19  Jim Ingham  <>

	* Info.plist: Change SecTaskAccess values.
2009-02-19  Caroline Tice  <

	* dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols): Check for
	name & don't try to make symbol if name is missing.
	(scan_partial_inlined_function_symbols):  Ditto.

2009-02-19  Caroline Tice  <

	* linespec.c (decode_all_digits_exhaustive):  Rename cur_inlined to
	cur_inliend_call_site; add new variable inlined_entry to keep track
	of whether there is an inlined subroutine starting at the current
	position; if so & if we generate a sal for it, mark the sal entry

2009-02-18  Caroline Tice  <

	* breakpoint.h (breakpoints_relocate):  Add extern function decl.
	* mi/mi-interp.c (gdbthread.h): New include statement.

2009-02-18  Caroline Tice  <

	* objc-lang.c (first_bitfield_index, first_bitfield_offset): New
	static global variables.
	(objc_fixup_ivar_offset):  Check if the current field is a bitfield;
	calculate bitfield offsets relative to the first bitfield in a 
	sequence of bitfields; update the bitfield offset appropriately.
	(objc_fixup_class_length): Re-initialize first_bitfield_index and
	first_bitfield_offset before calling objc_fixup_ivar_offset on the
	fields of an objc class.

2009-02-17  Jim Ingham  <>

	* breakpoint.c (breakpoints_relocate): New function.
	* objfiles.c (objfile_relocate): Call breakpoints_relocate.
2009-02-16  Jim Ingham  <>

	* minsyms.c (msymbols_sort): When you resort the minsyms,
	you have to rebuild the equivalence table too.
2009-02-16  Caroline Tice  <>

	* inlining.c (inlined_function_update_call_stack):  Don't
	compare against last_inlined_pc if it hasn't been set yet.

2009-02-12  Caroline Tice  <>

	* mi/mi-interp.c (mi_cmd_interpreter_exec):  Print thread id
	after printing stop reason, when stepping into inlined
	* mi/mi-main.c (mi_execute_async_cli_command):  Ditto.

2009-02-11  Caroline Tice  <>

	* dwarf2read.c (TARGET_ADDRESS_BYTES):  New macro definition.
	(dwarf2_scan_inlined_section_for_psymbols):  Remove the temporary
	return statement Jason added on 2009-02-09.  Also, use
	TARGET_ADDRESS_BYTES for comparison against address size in
	debug_inlined section header.
	(scan_partial_inlined_function_symbols): Remove the temporary
	return statement Jason added on 2009-02-09.   

2009-02-10  Caroline Tice  <>

	* dwarf2read.c (scan_partial_inlined_function_symbols):  Verify
	the address size in the debug_inlined section header; if the size
	is wrong, issue a warning & don't try to read the section.
	(dwarf2_scan_inlined_section_for_psymbols):  Ditto.

2009-02-10  Jason Molenda  (

	* main.c (captured_main): Set the $_Xcode convenience variable to 0
	before sourcing the .gdbinit file.

2009-02-10  Caroline Tice  <>

	* findvar.c (read_var_value):  For variables with computed
	locations, and a frame to use for looking up the variable,
	make sure the frame actually contains a block before
	attempting to look up the variable (ie. that we have symbol
	info for the frame).
	* varobj.c (varobj_create):  When doing USE_BLOCK_IN_FRAME,
	make sure the block and frame being used actually correspond to
	each other.

2009-02-09  Jason Molenda  (

	* dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols):  Don't look
	at the debug_inlined section temporarily until we can get the parsing
	to handle what dsymutil is outputting.
	(scan_partial_inlined_function_symbols): Ditto.

2009-02-06  Jim Ingham <>

	* infrun.c (prepare_to_proceed): Don't switch back to the
	last waitpid if you're running a hand_called function.
	* main.c (captured_main): Add a comment to warn folks if the
	add initializations to captured_main, they have to fix 

2009-02-04  Jim Ingham <>

	* varobj.c (varobj_fixup_value): NULL out var->dynamic_type_name
	after freeing it.

	* value.h: Declare a real value_free rather than a #define.
	* value.c (value_free): New function.
	* objc-lang.c (new_objc_runtime_find_impl): Release classval and selval,
	and then remember to free them when you are done.
	(new_objc_runtime_get_classname): Ditto for classval.
	(make_cleanup_set_restore_debugger_mode): Ditto for tmpval.
2009-02-04  Caroline Tice  <>

	* blockframe.c (get_frame_function_inlined):  New function.
	* dwarf2read.c (dwarf2_add_to_list_of_inlined_calls):  New
	parameter, func_sym;  assign func_sym to field in 'new' (to
	get inserted into rb tree).
	(read_inlined_subroutine_scope):  Move code that creates function
	symbol name; pass function symbol name to 
	(check_inlined_function_calls):  Pass func_sym field to call to
	* frame.h (get_frame_function_inlined): New extern function decl.
	* inlining.c (copy_temp_frame_stack_record):  Copy new func_sym
	(find_function_names_and_addresses): Pass along new func_sym field.
	(copy_inlined_call_stack_record):  Copy new func_sym field.
	(inlined_function_add_function_names): New parameter, func_sym;
	copy func_sym to tmp_record, to insert into rb tree.
	(inlined_subroutine_restore_after_dummy_call): Copy new func_sym field.
	(inlined_subroutine_save_before_dummy_call): Ditto.
	(block_inlined_function):  Completely rewrote function; use new
	func_sym field, rather than trying to look up function symbol.
	* inlining.h (struct inlined_call_stack_record): New field, func_sym.
	(struct dwarf_inlined_call_record): New field, func_sym.
	(inlined_function_add_function_names): New parameter.
	* mi/mi-cmd-var.c (mi_cmd_var_create):  Call get_frame_function_inlined
	if the selected_frame is of type INLINED_FRAME.

2009-02-04  Caroline Tice  <>

	* inlining.c (last_inlined_call_site_filename):  Change '<'
	to "<=" when comparing frame level against number of call 
	stack elements.

2009-02-03  Jason Molenda  (

	* valprint.c (val_print_string): Revert change of 2008-10-27 and don't
	error() out of this call if we are unable to print the memory region.

2009-02-02  Jason Molenda  (

        * frame.c (get_prev_frame): Skip the sanity check that says 
        a pc==0x0 means we stop backtracing if the next frame down the
        stack is trap_from_kernel(); it should be handled properly.
        * x86-shared-tdep.h (struct x86_frame_cache): Remove trap_from_kernel
        state var.
        * x86-shared-tdep.c (x86_initialize_frame_cache): Don't initialize.
        (x86_frame_this_id): Don't set.

2009-02-02  Jim Ingham  <>

	* objc-lang.c (make_cleanup_set_restore_debugger_mode): Handle the
	case where we can't set debugger mode because of a malloc function
	on the stack correctly.
2009-02-02  Jason Molenda  (

	* x86-shared-tdep.c (x86_initialize_frame_cache): Initialize new
	trap_from_kernel_p var to 0.
	(x86_frame_this_id): If we find a saved pc of 0, check to see if this
	is trap_from_kernel() where a saved pc of 0 is expected.
	* x86-shared-tdep.h (struct x86_frame_cache): New field to record
	if this is a trap_from_kernel frame.

2009-02-02  Jason Molenda  (

	* objfiles.c (free_objfile): When removing an objfile, ensure that we
	don't leave any breakpoints pointing into that now-gone objfile.

2009-01-30  Jim Ingham  <>

	* breakpoint.c (user_settable_breakpoint): Don't consider negative
	numbered breakpoints "user settable".
	(create_objc_debugger_mode_fail_breakpoint): New function.
	* breakpoint.h: Declare create_objc_debugger_mode_fail_breakpoint.

	* defs.h: Declare the hand_call cleanup chain functions.
	* utils.c: (make_cleanup_hand_call, do_hand_call_cleanups, 
	discard_hand_call_cleanups): New functions.
	* valops.c (allocate_space_in_inferior_malloc): Switch to 
	* value.h: Declare make_cleanup_set_restore_unwind_on_signal.
	* infcall.c: (do_unset_proceed_from_hand_call): New function.
	(set_unwind_on_signal_cleanup): Make static.
	(make_cleanup_set_restore_unwind_on_signal): New function.
	(hand_function_call): If runtime check is on, turn on debugger mode
	before hand-call of functions.  Also set proceed_from_hand_call.
	Also check to see if we've hit the debugger mode fail breakpoint.
	* infcmd.c (run_command_1): Do the hand_call cleanups, and reset
	* inferior.h: Declare proceed_from_hand_call.
	* infrun.c: Define proceed_from_hand_call.  Also in proceed, if
	we're not proceeding from hand call, do proceed_from_hand_call
	* objc-lang.c (lookup_objc_class): Switch to 
	(print_object_command): Ditto.
	(new_objc_runtime_class_getClass): Ditto.
        (new_objc_runtime_get_classname): Ditto.	
	(do_end_debugger_mode): New function.
	(do_reset_debug_mode_flag): New function.
	(init_debugger_mode_fail_notification): New function.
	(objc_pc_at_debugger_mode_fail): New function.
	(make_cleanup_set_restore_debugger_mode): New function.
	(get_objc_runtime_check_level): New function.
	(set_non_blocking_mode_func): New function.
	(_initialize_objc_lang): Add objc-non-blocking-mode set variable.
	(find_libobjc_objfile): Use cached_objc_objfile if set.
	(reinitialize_objc): New function.
	* objc-lang.h: Remove objc_clear_trampoline_data and add new
	public functions from objc-lang.c.
	(objc_init_trampoline_observer): Remove warnings.
	* thread.c (switch_to_thread): When you switch threads, you
	need to do hand_call cleanups.
	* target.c (update_current_target): Add to_load_solib.
	(debug_load_solib): New function.
	(setup_target_debug): Add debug_load_solib to debug target.
	(generic_mourn_inferior): Consolidate ObjC resetting into one function.
	* target.h: Add to_load_solib.
	* maint.c (maintenance_interval_display): Change to take "all",
	"off", or a list of timers to enable.
	(make_cleanup_start_report_timer): Only start enabled timers.
	(start_timer): Ditto.
2009-01-30  Caroline Tice  <>

	* inlining.c (func_sym_has_inlining):  New function.
	* inlining.h (func_sym_has_inlining):  New extern function decl.
	* mi/mi-cmd-var.c (mi_cmd_var_create):  If the selected frame is
	for an inlined subroutine, do a little extra checking to make
	sure the correct block is selected for looking up the variable.

2009-01-27  Caroline Tice  <>

	* stack.c (print_frame):  If the current frame has the same
	address as the previously printed frame, and the previously printed
	frame was for an inlined subroutine, print the addresss for the
	current frame anyway.

2009-01-23  Jason Molenda  (

	* symfile.c (syms_from_objfile): Ensure we don't have any breakpoints
	still referring to the old symfile_objfile after we've removed it.
	(symbol_file_clear): Ditto.

2009-01-23  Jim Ingham  <>

	* symfile.c (syms_from_objfile): Be careful looking for the section
        containing the start address, since this objfile isn't all the way
        relocated yet.  
	(find_pc_mapped_section): Don't cache an address if you couldn't
        find the section.
        * objfiles.c (find_pc_sect_section): Ditto.
2009-01-23  Jason Molenda  (

	* symfile.c (add_kext_command): Look for the .sym file in the current
	directory first, then look for it next to the .kext bundle.

2009-01-20  Jason Molenda  (

	* osabi.c (gdbarch_init_osabi): Clarify warning text when we can't
	find a compatible osabi in the binary.

2009-01-16  Jason Molenda  (

	* dwarf2read.c (dwarf2_locate_debug_str_section): Removed.
	(dwarf2_init_string_section): Removed.
	(find_debug_str_section): New func.
	(dwarf2_scan_inlined_section_for_psymbols): Open the dwarf_str segment
	with mmap and implement the read_indirect_string manually so we don't
	need to override the global dwarf_str table.

2009-01-16  Caroline Tice  <>

        *  inlining.c (print_inlined_frame):  Added more conditions to
	help determine which inlined call stack to use for printing frame.

2009-01-14  Caroline Tice  <>

	* inlining.c (print_inlined_frame):  If the frame is marked as
	printed, make sure it is also marked as created.
	(flush_inlined_subroutine_frames):  Make sure to blank out the
	temp_frame_stack info for the last record in the array.

2009-01-14  Caroline Tice  <>

	Back out patch from 2008-12-15, for performance reasons.
	* inlining.c (linespec.h):  Remove include statement.
	(update_tmp_frame_stack):  Remove code that attempted to fill
	in missing symbol table data by calling decode_all_variables.
	(inlined_function_update_call_stack):  Ditto.
	* linespec.c (decode_all_variables):  Make function 'static'
	again; add static forward function decl.
	* linespec.h (decode_all_variables):  Remove extern funcion decl.

2009-01-13  Jason Molenda  (

	* Remove the UNIX03_UGH_CFLAGS substitution to set
	* configure: Regenerated.
	* Makefile (UNIX03_UGH_CFLAGS): Remove.
	(LINTFLAGS): Ditto.

2009-01-09  Jason Molenda  (

	* objc-exp.y (yylex): Recognize floating point numbers in 0x1.0p10 
	* c-exp.y (yylex): Same.

2009-01-09  Jason Molenda  (

	* symfile.c: Change references to "kextload" to kextutil - this is the
	new command for loading kexts.

2009-01-09  Jason Molenda  (

	* breakpoint.c (remove_duplicates): Use xmalloc/xfree.
	* inlining.c (block_inlined_function): Don't leak the symbol list once
	we're finished with it.
	* symtab.c (lookup_symbol_all): Call out the fact that the caller
	needs to free the SYM_LIST returned by this func.
	* dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols): Use 
	xmalloc/xfree.  After freeing the string section we just loaded, clear
	out the pointers to the region so no one tries to reference it thinking
	it is some other file's string section.
	(dwarf2_scan_pubtype_for_psymbols): Use xmalloc/xfree.
	(rb_print_tree): Ditto.

2009-01-07  Jim Ingham  <>

	* symfile.c (syms_from_objfile): Slide the entry_point info
	if the section containing it has slid.
	(reread_symbols): Call init_entry_point_info here rather than
	doing it in the sym_init reader method.
2008-12-19  Caroline Tice  <>

	* inlining.c (ctype.h):  New include statement.
	(inlined_subroutine_adjust_position_for_breakpoint):  If
	couldn't find right inlining record based on function name,
	try looking by pc & filename.  Make sure assert doesn't fail.

2008-12-15  Caroline Tice  <>

	* inlining.c (linespec.h):  New include statement.
	(update_tmp_frame_stack):  Fill in any missing symbol tables 
	using sals from decode_all_variables.
	(inlined_function_update_call_stack):  Ditto.
	* linespec.c (decode_all_variables):  Remove 'static' function
	qualifier and function decl.
	* linespec.h (decode_all_variables):  Add extern function decl.
2008-12-12  Jim Ingham  <>

	* main.c (captured_main): Fix miscount in the buffer length for waitfor.
2008-12-10  Jason Molenda  (

	* valprint.c (print_floating_in_hex): Reduce the number of digits 
	printed to more accurately reflect the precision of these numbers.

2008-12-08  Jason Molenda  (

	* target.c (target_xfer_partial): Don't output a line break before the
	bytes transferred unless we're dealing with a block of data greater
	than eight bytes.
	(deprecated_debug_xfer_memory): Ditto.

2008-12-08  Jason Molenda  (

	* objc-lang.h (objc_invalidate_objc_class): Prototype.
	* dwarf2read.c: Include objc-lang.h.

2008-12-04  Jim Ingham  <>

	* objc-lang.c (objc_invalidate_class): New function.
	(objc_fixup_ivar_offset): New function.
	(objc_fixup_class_length): New function.
	* gdbtypes.h: Change TYPE_LENGTH & TYPE_FIELD_BITPOS macros to check
	for "unknown" values, and call out to objc_fixup_* functions to get
	the correct value.
	lvalue accessors for these fields.
	* ada-lang.c (check_size, packed_array_type, empty_record,
	ada_template_to_fixed_record_type_1, template_to_static_fixed_type,
	to_record_with_fixed_variant_part): Switch to ASSIGN variants where
	* coffread.c (patch_type, decode_base_type, coff_read_struct_type, 
	coff_read_enum_type): Ditto.
	* dwarfread.c (struct_type, read_tag_pointer_type, 
	read_subroutine_type, enum_type): Ditto.
	* f-valprint.c (f77_get_dynamic_length_of_aggregate): Ditto
	* gdbtypes.c (make_pointer_type, make_reference_type, make_function_type,
	make_qualified_type, replace_type, create_range_type, 
	cleanup_undefined_arrays, create_array_type, create_set_type,
	smash_to_member_type, check_typedef, init_type, 
	append_composite_type_field, build_builtin_enum, build_builtin_bitfield):
	* jv-lang.c (java_link_class_type): Ditto.
	* mdebugread.c (parse_symbol, parse_type): Ditto.
	* stabsread.c (dbx_fixup_variants, read_struct_type, read_enum_type):
	* dwarf2read.c (read_structure_type): Ditto, plus invalidate ObjC
	classes as we read them in, and use DW_AT_APPLE_runtime_class to
	determine runtime type if available.
	(read_tag_pointer_type, read_tag_reference_type, read_subrange_type):
	* doublest.c (floatformat_from_type, extract_typed_floating, 
	store_typed_floating, convert_typed_floating): Remove const from
	the passed in structs.  Anything that gets a type's length can now
	modify the type.
	* doublest.h: Change declarations also.
2008-12-04  Caroline Tice  <>

	* linespec.c (decode_all_digits_exhaustive):  On exact line matches,
	peek ahead in the line table to see if there is an inlined function
	call on that line.

2008-12-03  Jason Molenda  (

	* x86-shared-tdep.c (x86_quickie_analyze_prologue): If we don't have
	a function-start addr for a function that can't be frameless, assume
	the standard calling conventions are being used and mark the scan as

2008-11-26  Caroline Tice  <>

	* blockframe.c (find_pc_sect_function): Pass section to 
	* inlining.c (block_inlined_function):  Add new parameter, section;
	use section when looking up symtab; also use section to find objfile.
	* inlining.h (block_inlined_function):  Add new parameter type to
	function decl.

2008-11-24  Caroline Tice  <>

	* breakpoint.c (remove_duplicate_sals):  Remove static qualifier on
	(remove_non_msymbol_sals): New function.
	(break_command_1):  Add new parameter, use_msymbol_p; pass it to
	(break_command_2):  Add new parameter, use_msymbol_p; if new parameter
	is set, call remove_non_msymbol_sals, to only set breakpoints on
	msymbol sals.
	(resolve_pending_breakpoint):  Pass new argument to break_command_2.
	(gdb_breakpoint):  Likewise.
	(break_command): Pass new argument to break_command_1.
	(tbreak_command): Likewise.
	(hbreak_command): Likewise.
	(thbreak_command): Likewise.
	(rbr_break_command): Add new parameter, use_msymbol_p; call 
	break_command_1 directly (bypassing break_command); pass 
	use_msymbol_p to break_command_1.
	(stopin_command): Pass new argument to break_command_1. 
	(stopat_command): Likewise.
	(until_break_command):  Initialize old_chain; allow multiple
	breakpoints to be set (add loop).
	(future_break_command):  Pass new argument to break_command_1.
	* breakpoint.h (rbr_break_command):  Add new parameter.
	(remove_duplicate_sals):  Add extern function decl.
	* inlining.c (inlined_subroutine_adjust_position_for_breakpoint):
	Check addr_string against the plain function name, and against
	* linespec.c (breakpoint.h):  New include statement.
	(decode_all_variables):  Always look for both symbols and 
	minimal symbols; attempt to identify and remove duplicates before
	returning results; get results for symbols_found and minsyms_found
	separately, then combine the results; fix up canonical_arr properly.
	* symtab.c (lookup_symbol_all):  Modify to always check symtabs and
	psymtabs, and both global and static blocks.
	(rbreak_command):  Pass new argument to rbr_break_command, indicating
	whether to use only msymbols results or not.

2008-11-20  Jim Ingham  <>

	* objc-lang.c (objc_read_trampoline_region): Add a cleanup for the
	region we've malloc'ed.
	(objc_init_trampoline_observer): Catch errors around 
	objc_read_trampoline_region and if we fail set the state to 
2008-11-19  Jason Molenda  (

	* printcmd.c (print_scalar_formatted): Don't override the type of
	the data when printing with the 'p/f' and 'p/A' formatters if the
	data is already a floating point type.  It may be a special type and
	we'll lose that specialness if we just drop in a builtin_type_float
	(e.g. a big-endian floating point value in an otherwise little endian

2008-11-19  Jason Molenda  (

	* c-valprint.c (c_val_print): Default formatter for vector float
	elements is the usual '%g' formatter.  When user does "p/x" printing
	of vector floats, use the '%a' formatter.

2008-11-19  Jason Molenda  (

	* fork-child.c (fork_inferior): Use full path to arch command.

2008-11-18  Caroline Tice  <>

	* dwarf2read.c (dwarf2_add_to_list_of_inlined_calls):  Use
	xstrdup rather than assigning strings directly.

2008-11-18  Jim Ingham  <>

	* objc-lang.c (value_objc_target_type): Handle references.
	* varobj.c (get_join_type): Ditto
	(get_type_deref): Change was_ptr to distinguish between
	pointers & references.
	(c_number_of_children): Handle references.
	(c_type_of_child): Ditto.
	(cplus_value_of_child): Ditto.
	(cplus_type_of_child): Ditto.
2008-11-17  Jim Ingham  <>

	* dbxread.c (close_bfd_or_archive): New function.
	* (open_bfd_from_oso): Don't error out if we can't open the bfd,
	just warn & return NULL.  Also use close_bfd_or_archive.
	* symfile.h: Declare close_bfd_or_archive.
	* dwarf2read.c (dwarf2_scan_inlined_section_for_psymbols): Use
	close_bfd_or_archive in place of just close_bfd.
	(dwarf2_scan_pubtype_for_psymbols): Ditto.
	(dwarf2_debug_map_psymtab_to_symtab): Ditto.
2008-11-14  Jason Molenda  (

	* dwarf2read.c (check_inlined_function_calls): Rename variables used
	to compare basenames to more explicit names.  Don't leak file paths.
	Don't reimplement lbasename, just call it.

2008-11-14  Caroline Tice  <>

	* infcmd.c (step_once): Print frame information when stepping into
	an inlined subroutine.
	* infrun.c (normal_stop): Print frame information when stopping at 
	first line of an inlined subroutine, but not at every line of inlined 

2008-11-13  Jason Molenda  (

	* printcmd.c (printf_command): Don't fall through to the '%*' formatter
	when handling the '%p' formatter.

2008-11-11  Jason Molenda  (

	* utils.c (strrstr): New helper function.
	(strrchr_bounded): New helper function.
	(bundle_basename): Find the smallest bundle in the file path, if any.
	Like basename(3) but for bundle directories.
	* defs.h (bundle_basename): Prototype.
	* breakpoint.c (tell_breakpoints_objfile_changed_internal): When saving
	the removed-objfile's name in the breakpoint struct, try to winnow it
	down to the bundle name or base name if necessary so we'll re-insert
	the breakpoint in the dylib/etc if it is re-loaded from a new file 
	* objfiles.c (objfile_matches_name): Do bundle_basename comparison
	as well.

2008-11-11  Jim Ingham  <>

	* Move the break info_command to the
	* gdbtypes.c (remove_all_typedefs): New function.
	* gdbtypes.h: Declare remove_all_typedefs.
	* varobj.c (varobj_get_type_internal): New function, factor
	the common parts of varobj_get_type so we can have:
	(varobj_get_resolved_type): New function.
	(varobj_get_type): Use varobj_get_type_internal.
	* varobj.h: Declare varobj_get_resolved_type.

2008-11-07  Jason Molenda  (

	* (gdb$(EXEEXT)): Don't make gdb setgid procmod any longer.

2008-11-06  Jim Ingham <>

	* Add test for task_set_state.
	* config.h: Add define for HAVE_TASK_SET_STATE.
2008-11-06  Caroline Tice  <>

	* amd64-tdep.c (amd64_skip_prologue):  Call 
	find_pc_partial_function_no_inlined instead of 
	* arm-tdep.c (arm_skip_prologue):  Likewise.
	(arm_macosx_skip_prologue_addr_ctx):  Likewise.
	(thumb_scan_prologue):  Likewise.
	(thumb_macosx_scan_prologue):  Likewise.
	(arm_scan_prologue):  Likewise.
	(arm_macosx_scan_prologue):  Likewise.
	(arm_macosx_sigtramp_unwind_sniffer):  Likewise.
	* blockframe.c (find_pc_partial_function_impl): New name for
	old find_pc_partial_function; added inlining_flag parameter; call
	find_pc_sect_function or find_pc_sect_function_no_inlined based on
	new parameter; new paramter must match cache_pc_function_inlining
	in order to return cached values.
	(cache_pc_function_inlining): New static global variable.
	(clear_pc_function_cache): Also clear cache_pc_function_inlining.
	(find_pc_partial_function):  New function; calls 
	find_pc_partial_function_impl with inlining on.
	(find_pc_partial_function_no_inlined):  New function; calls
	find_pc_partial_function_impl with inlining off.
	* disasm.c (find_pc_offset):  Call find_pc_partial_function_no_inlined
	instead of find_pc_partial_function.
	* i386-tdep.c (i386_skip_prologue):  Likewise.
	(i386_sigtramp_p):  Likewise.
	* infcmd.c (step_1_no_inlining):  Likewise.
	* objc-lang.c (find_objc_msgsend):  Likewise.
	(new_objc_runtime_find_impl):  Likewise.
	* remote-mips.c (mips_wait): Likewise.
	* symtab.c (in_prologue):  Likewise.
	(skip_prologue_using_sal): Likewise.
	* symtab.h (find_pc_partial_function_no_inlined):  New extern
	function decl.
	* cli/cli-cmds.c (disassemble_command): Likewise.

2008-11-05  Jim Ingham <>

	* varobj.c (path_expr_of_root): Check for NULL type name.  Still
	not sure how this could be NULL, but I got one reported case where
	it clearly was...

2008-11-05  Jason Molenda  (

        * objc-lang.c (objc_read_trampoline_region): Fix computation of
        size of objc trampoline region header.

2008-11-05  Caroline Tice  <>

        * gdbtypes.c (get_closure_implementation_fn): Update to work with
	latest compiler changes to Blocks ABI (and previous ones).

2008-11-04  Jason Molenda  (

	* x86-shared-tdep.c (x86_quickie_analyze_prologue): Check for the
	basic i386/x86_64 function prologue signature instructions, enough
	for us to determine the saved eip & esp locations and whether ebp is
	the frame pointer or not.
	(x86_frame_cache): When short-cutting the frame analysis, mark the
	frame cache as complete.  If the quickie scan fails, do a full scan.
	(x86_frame_prev_register): Set the function start address and pc 
	addresses after clearing our frame cache and doing the full scan.

2008-11-04  Jason Molenda  (

	* main.c (captured_main): Quote the process name we want to wait-attach
	for so process names with spaces work properly.

2008-11-03  Jason Molenda  (

	* amd64-tdep.c (amd64_sigtramp_frame_cache): Mark the constructed
	sigtramp frame cache as complete.
	* i386-tdep.c (i386_sigtramp_frame_cache): Ditto.

2008-10-31  Jason Molenda  (

	* source.c (symtab_to_fullname): Don't re-open the same file over and
	over; if we found it once, remember its filename.
	(psymtab_to_fullname): Same.

2008-10-31  Caroline Tice  <>

	* inlining.c (block_inlined_function): Check for missing data; if
	missing, return NULL.
	(add_symbol_to_inlined_subroutine_list):  Check to see if sym is

2008-10-31  Jason Molenda  (

	* x86-shared-tdep.h (enum prologue_scan_state): A set of states
	to track how much prologue scanning we've done so far.
	(struct x86_frame_cache): New field prologue_scan_status.
	* x86-shared-tdep.c (x86_initialize_frame_cache): Initialize the
	new field.
	(x86_analyze_prologue): Record that we've done the full scan.
	(x86_frame_prev_register): If the full scan hasn't yet been done,
	and we're retrieving something other than the rip or rbp,
	call x86_analyze_prologue to find the reg value.

2008-10-31  Jason Molenda  (

	* x86-shared-tdep.c (x86_frame_prev_register): Unify the i386 & amd64
	frame_prev_register functions.
	* x86-shared-tdep.h: Prototype.
	* i386-tdep.c (i386_frame_prev_register): Removed.  Register
	(i386_sigtramp_frame_prev_register): Call it.
	* amd64-tdep.c (amd64_frame_prev_register): Removed.  Register
	(amd64_sigtramp_frame_prev_register): Call it.

2008-10-31  Jason Molenda  (

	* symtab.c (lookup_symbol_aux_symtabs): LINKAGE_NAME may not be
	set in C programs; that is correct.
	(lookup_symbol_aux_psymtabs): Ditto.

2008-10-29  Jason Molenda  (

	* symtab.c (lookup_symtab_all): Reduce the # of comparisons by one
	if fullpath and realpath are the same.
	(lookup_partial_symtab_all): Ditto.
	(lookup_symbol_aux_symtabs): Bail if the symbol name we get is empty.
	(lookup_symbol_aux_psymtabs): Ditto.

2008-10-29  Jason Molenda  (

	* symtab.c (lookup_symbol_all): Remove the code to eliminate
	dupliate symbols.
	(lookup_symbol_aux_symtabs): Don't search for symbols in symtabs
	who are pointing to another symtab's blockvector.  Don't try to
	remote obsoleted symbols for now.
	(lookup_symbol_aux_psymtabs): Ditto.
	(rbreak_command): Call rbr_break_command instead of break_command so
	can avoid asking the user to confirm breakpoints that don't end up
	resolving to a breakpointable address.

2008-10-29  Jason Molenda  (

	* symtab.c (lookup_symbol_all): Whitespace fixes, don't use extra
	variable to decide whether the mangled name needs to be xfreed.
	When removing duplicated symbols, xfree the dups.
	(lookup_symbol_aux_symtabs): When removing obsolete symbols from the
	symbol list, xfree the obsolete ones.  Always set the *SYMTAB ref
	pointer if non-null.
	(lookup_symbol_aux_psymtabs): Same.

2008-10-29  Caroline Tice  <>

        * blockframe.c (find_pc_sect_function_no_inlined):  New function.
	(find_pc_function_no_inlined): New function.
	(find_pc_sect_function):  If the current block does not have a block 
	function symbol call block_inlined_function, to see if perhaps it is a 
	block for an inlined function, before resorting to calling 
	* breakpoint.c (remove_duplicate_sals):  New function.
	(remove_duplicates):  New function.
 	(update_breakpoints_after_exec):  Change NULL to 0 when
	assigning to b->loc->address, to get rid of warnings.
	(create_breakpoints): Make sure breakpoints for inlined subroutine 
	entries are marked as inlined breakpoints; call remove_duplicate_sals 
	before recursive call on inlined breakpoint locations.
	(breakpoint_parse_sals):  Add missing format string to call to
	(break_command_2): If the interpreter is mi, and more than one
	sal is returned, check to see if the multiple sals are for
	inlined subroutines; if so, go ahead and set breakpoints rather 
	than just listing matches; call remove_duplicates before calling 
	(do_captured_breakpoint):  Call remove_duplicates before calling
	* dbxread.c (read_dbx_symtab):  Add call to 
	* dwarf2read.c (struct dwarf2_per_objfile): Add 2 new fields,
	inlined_size and inlined_buffer.
	(inlined_subroutine_symbols): New global variable.
	(dwarf_inlined_section): New global variable.
	(INLINED_SECTION): New global variable.
	(dwarf2_locate_debug_str_section):  New function.
	(dwarf2_init_string_section):  New function.
	(find_debug_inlined_section):  New function.
	(scan_partial_inlined_function_symboils):  New function:
	(fix_inlined_subroutine_symbols):  New function.
	(dwarf2_had_info_1):  Initialize dwarf_inlined_section.
	(dwarf2_locate_sections):  Look for and initialize 
	(dwarf2_copy_dwarf_from_file):  Add code to read dwarf_inlined_section.
	(dwarf2_scan_inlined_section_for_psymbols):  New function.
	(dwarf2_build_psymtabs_hard):  Add call to 
	(process_full_comp_unit):  Initialize inlined_subroutine_symbols and
	add call to fix_inlined_subroutine_symbols.
	(process_die):  Add call to read_subroutine_type for inlined 
	(read_inlined_subroutine_scope):  Create new symbols for inlined
	function name; pass new symbol to finish_block, to create a real
	block for the inlined subroutine; update param_symbols correctly.
	(new_symbol):  If the symbol is the name of an inlined subroutine,
	make sure it goes into the global_symbols list.
	* infcmd.c (step_once):  Add call to print_inlined_frame, when
        stepping into an inlined subroutine from its call site.
	* inlining.c (buildsym.h):  New include statement.
	(rb_tree_find_all_nodes_in_between): Add forward declaration.
	(rb_tree_find_all_exact_matches):  New function.
	(last_inlined_call_site_filename):  New function.
	(block_inlined_function):  New function.
	(add_symbol_to_inlined_subroutine_list):  New function.
	* inlining.h (struct pending): Add opaque declaration.
	(last_inlined_call_site_filename):  Add extern declaration.
	(add_symbol_to_inlined_subroutine_list):  Ditto.
	(block_inlined_function):  Ditto.
	* linespec.c (one_block_contains_other):  New function.
	(decode_all_digits_exhaustive):  Note if an exact match is
	an inlined call site; if so, and the blocks for two different
	exact matches differ, only generate multiple sals if neither
	block contains the other one.
	* stack.c (print_frame): When printing a non-inlined function
	clear the cached lookup values and  all find_pc_function_no_inlined,
	instead of find_pc_function; fix bug where results of find_pc_symtab
	were being used to update tmp_symtab when they shouldn't.
	* symfile.h (dwarf2_scan_inlined_section_for_psymbols): Add extern
	* symtab.c (find_function_start_sal):  If the block is for
	an inlined subroutine (block function symbol is NULL),  then
	find the right sal for it and update pc.sal appropriately.
	* symtab.h (find_pc_function_no_inlined):  New extern decl.
	(find_pc_sect_function_no_inlined):  New extern decl.

2008-10-27  Jason Molenda  (

	* valprint.c (val_print_string): error() out if we're asked to
	print an invalid address as a string to be consistent with the
	behavior of when we examine memory as hex.

2008-10-27  Jason Molenda  (

	* objc-exp.y: When trying to determine if this is a C++/ObjC++ function,
	walk up the chain of blocks until we find one with a function pointer.
	Our starting block may be a nested lexical block which doesn't have
	the function pointer set.

2008-10-23  Caroline Tice  <

        * gdbtypes.c (get_closure_implementation_fn):  Modify to
	work with either the old-style or the new-style blocks pointers.

2008-10-17  Jason Molenda  (

	* symtab.c (rbreak_command): Don't present the user with
	dyld_stub symbol matches.

2008-10-16  Jim Ingham  <>

	* objc-lang.c (objc_target_type_from_target): Remove unhelpful
	warning message.
	(objc_init_trampoline_observer): Remove check for "objc is loaded"
	in getting the trampoline info.
	* varobj.c (value_of_root): Set type_changed if we were in scope
	and failed the varobj_pc_in_valid_block_p test.
2008-10-15  Jason Molenda  (

	* linespec.c (decode_line_1): Handle the error conditions separately.
	If we were unable to parse the line number part of the spec, or if
	the symtab we got back has no linetable, then throw an error.
	If we just have an invalid line number (0 or higher than the # of
	lines in the file), return a faked-up sal with the line number we
	were given and the appropriate symtab.

2008-10-15  Jason Molenda  (

	* linespec.c (decode_line_1): A line number of 0 or a line number
	higher than the actual number of lines is used in MI to indicate a
	file static or global variable not bound to any specific function 
	scope.  Handle those correctly.

2008-10-14  Jason Molenda  (

	* dwarf2read.c (convert_oso_map_to_final_map): The variable J points
	to the last entry in the tuple array; it is not the number of elements
	in the array.
	(create_kext_addr_map): Ditto.

2008-10-13  Greg Clayton  <>

	* dwarf2read.c (convert_oso_map_to_final_map): Tuples now correct for
	maps with only one entry.
	(create_kext_addr_map): Ditto.

2008-10-09  Jim Ingham  <>

	* varobj.c (cplus_path_expr_of_child): Remember to single-quote
	the casting to base class for structures.
	* config/arm/ Add -framework Security.
	* config/powerpc/ Ditto.
	* config/i386/ Ditto.
2008-10-08  Jason Molenda  (

	* linespec.c (decode_line_1): Set parsed_lineno to a default value
	of 0 instead of letting an uninitialized value leak through.  If we
	find a matching symtab but no matching line number because there is
	no line table for that symtab, throw an error so it's clear that
	something bad has happened.  Fix some >80 col comments.
	* symfile.c (replace_psymbols_with_correct_psymbols): Don't try to copy
	both the SYMBOL_VALUE and the SYMBOL_VALUE_ADDRESS; the only the 32-bit
	former will be copied over.

2008-10-07  Jason Molenda  (

	* symfile.c (symbol_file_add_with_addrs_or_offsets_using_objfile):
	Don't calculate the slide difference between the executable binary
	and the dSYM when we're debugging a kext - we'll adjust each symbol

2008-10-07  Jim Ingham  <>

	* fork-child.c (fork_inferior): Set debug_fork back to 0.  Also
	never use vfork, it doesn't help, and keeps the semaphore in
	macosx-nat-inferior.c from working.
2008-10-06  Jason Molenda  (

	* c-valprint.c (c_val_print): When printing the floating point
	types in a vector, if no print formatter has been specified, default
	to 'A' aka printf(3)'s "%a" floating point hex formatter.

2008-10-03  Jason Molenda  (

	* printcmd.c (decode_format): Recognize the 'A' print formatting
	character to print floating point values in hex (akin to printf %a).
	(print_scalar_formatted): Same.
	(_initialize_printcmd): Add "A" to the "help x" documentation.
	* valprint.c (print_floating_in_hex): Copy the body of print_floating,
	have it print with %a instead of the usual %g formatters.
	* value.h: Prototype for print_floating_in_hex.
	* varobj.c (varobj_format_string): Add entry for "floating point hex".
	(varobj_set_display_format): Recognize FORMAT_HEXFLOAT.
	* varobj.h (varobj_display_formats): Add FORMAT_HEXFLOAT.

2008-10-03  Greg Clayton  <>

	* dwarf2read.c (compare_map_entries_oso_addr): When two entries have
	the same OSO_LOW_ADDR, then compare against the PRESENT_IN_FINAL.
	(convert_oso_map_to_final_map): Removed consecutive tuples with same
	OSO_LOW_ADDR that aren't in the final image.
	(create_kext_addr_map): Ditto.
	(compare_translation_tuples_highpc): Simplify the compare logic.
	(compare_translation_tuples_nothighpc): Ditto.
	(compare_translation_tuples_inclusive): Ditto.
	(dwarf2_record_line): Ditto.

2008-10-02  Jason Molenda  (

	* c-valprint.c (c_val_print): Print the int8_t elements of a vector
	register specially, i.e. don't print them as characters by default.

2008-09-30  Jason Molenda  (

	* dwarf2read.c (find_partial_die_in_comp_unit): Revert workaround
	that was added on 2008-09-05.
	(internal_erroring): Ditto.

2008-09-25  Jim Ingham  <>

	* breakpoint.c (enable_command): Use ALL_BREAKPOINTS_SAFE.
2008-09-25  Jim Ingham  <>

	* target.c (length_of_this_instruction): Moved here from 
	(dis_asm_read_memory_noprint): Ditto.
	(dis_asm_print_address_noprint): Ditto.
	(gdb_disassemble_info_noprint): Ditto.
	* target.h: Declare length_of_this_instruction.
	* x86-shared-tdep.c (x86_length_of_this_instruction): Moved to target.c.
	(dis_asm_read_memory_noprint): Ditto.
	(dis_asm_print_address_noprint): Ditto.
	(gdb_disassemble_info_noprint): Ditto.
	(x86_picbase_setup_pattern_p): x86_length_of_this_instruction changed to
	(x86_unopt_arg_copy_to_local_stack_p): Ditto.
	(x86_blocks_context_var_copy_pattern_p): Ditto.
	(x86_blocks_context_var_copy_pattern_p): Ditto.
	(x86_analyze_prologue): Ditto.
	(x86_analyze_prologue): Ditto.
	* i386-tdep.c (i386_find_picbase_setup): Ditto.

	* infrun.c (handle_inferior_event): If we were trying to single step 
	over a breakpoint and got a signal instead and then didn't hit our 
	step-resume breakpoint, delete the step_resume_breakpoint.
2008-09-23  Jason Molenda  (

	* objc-lang.c (find_libobjc_objfile): Return the executable objfile,
	not the dSYM objfile if we happen to find it first.

2008-09-23  Jason Molenda  (

	* objc-lang.c (get_addrsize): Remove this, add TARGET_ADDRESS_BYTES
	defined in terms of TARGET_LONG_BIT.
	(objc_read_trampoline_region): Use TARGET_ADDRESS_BYTES.
	(objc_init_trampoline_observer): Ditto.
	(new_objc_runtime_internals): Ditto.
	(read_objc_method): Ditto.
	(read_objc_method_list_nmethods): Ditto.
	(read_objc_method_list_method): Ditto.
	(read_objc_object): Ditto.
	(read_objc_super): Ditto.
	(read_objc_class): Ditto.
	(find_implementation_from_class): Ditto.
	(resolve_newruntime_objc_msgsend): Ditto.
	(resolve_newruntime_objc_msgsendsuper): Ditto.
	(value_objc_target_type): Ditto.

2008-09-23  Jason Molenda  (

	* printcmd.c (build_address_symbolic): When looking for a symbolic name
	for a given address, only use the minsym we find if it's in the same
	bfd section as the address we're looking for -- don't just blindly
	use the last minsym in the address space for unsymboled memory regions.

2008-09-18  Jim Ingham  <>

	* objc-lang.c (find_libobjc_objfile): New function.
	(objc_init_trampoline_observer): Use find_libobjc_objfile.
	Also don't even try to set the observer up if the libobjc
	objfile isn't loaded yet.  Finally, remember to set initialized.
	* objfiles.h: Declare find_libobjc_objfile.
	* symfile.c (reread_symbols): Don't try to reset the observer
	unless it's libobjc that's changing.

	* parse.c: (ftype_has_debug_info_p): New function.
	* gdbtypes.h: Declare ftype_has_debug_info_p.
	* infcall.c: Revert setting coerce_float_to_double default.
	(hand_function_call): If the ftype has no debug info assume it was

2008-09-17  Jason Molenda  (

	* fix-and-continue.c (fix_and_continue_supported): Mark x86_64
	F&C as unsupported until the compiler/build system can be updated as

2008-09-16  Jason Molenda  (

	* dwarf2read.c (process_full_comp_unit): The psymtab texthigh already
	has the baseaddr applied; don't re-apply it when computing the
	global/static block address ranges.

2008-09-16  Jason Molenda  (

	* fix-and-continue.c (redirect_old_function): Make trampoline
	construction 64-bit correct.
	(decode_fix_and_continue_trampoline): Make trampoline target address
	calculation 64-bit correct.

2008-09-16  Jim Ingham  <>

	* infcall.c: Set the default value of coerce_float_to_double to
	0, not 1.
	* breakpoint.c (enable_breakpoint): If the uiout is MI, then
	add a "pending" output result.
	* dbxread.c (open_bfd_from_oso): Close the bfd & return NULL if
	the .o file is out of date.
	(oso_scan_partial_symtab): Don't throw an error here, just warn
	and return.
	* dwarf2read.c (dwarf2_scan_pubtype_for_psymbols): Fix warning.
	(dwarf2_debug_map_psymtab_to_symtab): If you couldn't find the 
	OSO bfd, then warn & mark as readin.
	* symtab.c (lookup_symbol_aux_psymtabs): If there's a problem
	making the symtab, then warn & return, don't error.
	* printcmd.c (printf_command): Handle "%p" to print pointer
	sized objects.
	* breakpoint.c (breakpoint_re_set_1): Remove some warnings about
	restrict to shared library failing.  This can happen in the normal
	course of restricting breakpoint resetting to the newly loaded
	shared libraries.

	* gdbthread.h: move gdb_suspend_count to the private info.
2008-09-16  Jason Molenda  (

	* fix-and-continue.c (sym_is_argument): Recognize LOC_COMPUTED_ARG
	as an argument symbol.
	(sym_is_local): Recognize LOC_COMPUTED as a local symbol.

2008-09-15  Jason Molenda  (

	Remove ppc support from fix-and-continue.c, enable x86_64 support.
	* fix-and-continue.c (encode_lo16, encode_hi16, decode_hi16_lo16,
	updatedatum): ppc specific functions removed.
	(redirect_old_function, decode_fix_and_continue_trampoline): ppc 
	specific code removed.
	(update_picbase_register): ppc specific code removed.  Don't look for
	i386 picbase sequence when fixing x86_64 inferior.
	(fix_and_continue_supported): Mark ppc as unsupported.  Mark x86_64
	as supported.

2008-09-12  Jim Ingham  <>

	* breakpoint.c (breakpoint_re_set_one): If a bp_shlib_event breakpoint
	has an addr_string, then reset it here.
	* infrun.c (save_inferior_status): Use get_selected_frame, not the
	* objc-lang.c (objc_read_trampoline_region): New function.
	(objc_init_trampoline_observer): New function.
	(objc_handle_update): New function.
	(objc_clear_trampoline_data): New function.
	(pc_in_objc_trampoline_p): New function.
	(tell_objc_msgsend_cacher_objfile_changed): Re-use this notification
	function for updating the trampoline data if libobjc changes.  It would
	be easier if we had observers for all this stuff.
	(find_objc_msgcall): Detect the vtable trampolines, and follow them
	if appropriate.
	* objc-lang.h: Declare new functions.
	* symfile.c (reread_symbols): See if the objc trampoline data needs
	* target.c (generic_mourn_inferior): Clear out objc trampoline data.
	* x86-shared-tdep.c (x86_frame_cache): Detect the objc trampolines,
	and mark as frameless.

2008-09-11  Jim Ingham  <>

	* source.c (print_source_lines_base): We overuse "desc" in the
	mi-out case to mean "don't print source lines" and that sets the
	last_source_error incorrectly.  Don't do that.
2008-09-11  Jason Molenda  (

	* symmisc.c (print_symbol): Fix some printf spec mistakes.
	* tracepoint.c (validate_actionline): Fix a copy of the same code.

2008-09-08  Jason Molenda  (

	* i386-tdep.c (maintenance_i386_prologue_parser): Update to work
	for i386 or x86_64 code.
	* x86-shared-tdep.c (i386_argument_regnum_p, 
	x86_64_argument_regnum_p): New functions to identify registers used
	to pass arguments.
	(x86_mov_reg_to_stack_p): Renamed to x86_mov_reg_to_local_stack_frame_p.
	(x86_mov_func_arg_to_reg_p): New function.
	(x86_blocks_context_var_copy_pattern_p): New function.
	(x86_initialize_frame_cache): Initialize argument_reg_p.
	(x86_analyze_prologue): Use argument_reg_p.  Add test for
	detecting blocks context copying code in a prologue.
	* x86-shared-tdep.h (struct x86_frame_cache): Add argument_reg_p.

2008-09-08  Jim Ingham  <>

	* gnu-v3-abi.c (gnuv3_rtti_type): Check the TYPE_VPTR_BASETYPE is
	not NULL.
	(gnuv3_virtual_fn_field): Ditto.
	(gnuv3_baseclass_offset): Ditto.
2008-09-05  Jason Molenda  (

	* dwarf2read.c (find_partial_die_in_comp_unit): Return NULL if we
	can't find the DIE that is being referred to instead of 
	(fixup_partial_die): If we can't find the specification die for this
	DW_TAG_subprogram die, use a fake name so we'll continue parsing.

2008-09-03  Jason Molenda  (

	* utils.c (internal_vproblem): Use libsystem's backtrace() etc 
	functions instead of our hand-rolled ones.
	* remote.c (remote_backtrace_self): Ditto.
	* config/arm/ Don't build macosx-self-backtrace.c.
	* config/i386/ Ditto.
	* config/powerpc/ Ditto.

2008-09-03  Jim Ingham  <>

	* defs.h: Add "SUBSYSTEM" defines.
	* target.h: Include "value.h" for def'n of check_which_threads.
	Also change type of target_check_safe_call.
	* objc-lang.c (objc_lookup_class): Mutatis mutandi for change to
	(print_object_command): Ditto
	(new_objc_runtime_find_impl): Ditto
	(new_objc_runtime_get_classname): Ditto
	(objc_runtime_lock_taken_p): New function.
	* valops.c (allocate_space_in_inferior_malloc): Ditto.
2008-09-02  Jason Molenda  (

	* inlining.c (inlined_function_add_function_names): Fix minor memory
	leak; mark function name pointers as const.
	* inlining.h (inlined_function_add_function_names): Prototype updated.

2008-08-29  Caroline Tice  <>

	* symtab.c (lookup_symbol_all):  Add global static block to
	list of places to search for symbols.

2008-08-27  Jim Ingham  <>

	* x86-shared-tdep.c (x86_frame_this_id): Check the initial
	frame's stack pointer and if it is not readable, shortcut
	backtracing attempts.
2008-08-25  Jason Molenda  (

	* i386-nat.c (wordsize): Function to replace the use of 
	TARGET_HAS_DR_LEN_8 to determine the current gdbarch's word size.

2008-08-20  Jason Molenda  (

	* x86-shared-tdep.c (x86_analyze_prologue): Simplify the marking of
	the last prologue instruction; correct the handling of two-instruction
	sequences.  Bug spotted by Caroline Tice.

2008-08-20  Jason Molenda  (

	* amd64-tdep.c (amd64_frame_this_id): Removed.
	(amd64_frame_unwind): Use x86_frame_this_id.
	* i386-tdep.c (i386_frame_this_id): Removed.
	(i386_frame_unwind): Use x86_frame_this_id.
	* x86-shared-tdep.c (x86_frame_this_id): New function.  Use a
	TRY_CATCH block around the attempt to read the previous frame's
	pc in case we have an improperly teminated stack.
	* x86-shared-tdep.h: Add prototype.

2008-08-19  Jason Molenda  (

	* source.c (openp): Report correct error message when gdb is
	run on a filename w/o path that we don't have permission to read.

2008-08-19  Jason Molenda  (

	* dwarf2read.c (dwarf2_const_value_data): Resolve the symbol type
	to its actual type before deciding whether it's unsigned or not.

2008-08-15  Jason Molenda  (

	* x86-shared-tdep.c (x86_analyze_prologue): Remove conditional that
	was assuming a stack frame was set up if no prologue insns had been

2008-08-15  Jim Ingham <>

	* varobj.c (c_value_of_variable): Print reference values as just
	their pointer value.
	(cplus_value_of_variable): And not like structures.

	* valarith.c (value_binop): Add missing handler for BINOP_NOTEQUAL
	in the case of signed arguments.
2008-08-14  Jason Molenda  (

	* Mark amd64-tdep.c as depending on x86-shared-tdep.h.
	* i386-tdep.c (i386_frame_this_id): Report a function start address
	of INVALID_ADDRESS as 0 for frame id creation; that's what the rest
	of gdb expects.
	* amd64-tdep.c (amd64_frame_this_id): Switch to using the same
	algorithm as in i386-tdep.c.
	* x86-shared-tdep.h (struct x86_frame_cache): Add pc and limit fields
	to aid in debugging of gdb problems.
	* x86-shared-tdep.c (x86_initialize_frame_cache): Initialize pc 
	and limit.
	(x86_analyze_prologue): Set the new limit field.  When we don't have
	any function start address, or a bogus function start address, assume 
	that a frame was set up as per the usual convention.
	(x86_frame_cache): Indicate an unknown function start address by
	INVALID_ADDRESS, not 0.  Set the pc field of the frame cache.

2008-08-14  Jim Ingham  <>

	* eval.c (do_restore_print_closure): New function.
	(make_cleanup_set_restore_print_closure): New Function.
	* value.h: Declare make_cleanup_set_restore_print_closure.
	* gdbtypes.c (get_closure_implementation_fn): New function.
	(get_closure_dynamic_type): Use get_closure_implementation_fn.
	* gdbtypes.h: Declare get_closure_implementation_fn.
	* printcmd.c (invoke_block_command): New function.
	(_initialize_printcmd): Add command for "invoke-block".
	* varobj.c (varobj_parse_exp_1): Use 
	make_cleanup_set_restore_print_closure rather than directly 
	setting print_closure.
	(varobj_evaluate_expression): Ditto.
	(varobj_evaluate_type): Ditto.
2008-08-13  Jason Molenda  (

	* amd64-tdep.c (amd64_sigtramp_frame_cache): Mark the register
	saved addresses as absolute so we don't try to adjust them further.

2008-08-13  Jason Molenda  (

	* i386-amd64-shared-tdep.c: Renamed to x86-shared-tdep.c.
	* i386-amd64-shared-tdep.h: Renamed to x86-shared-tdep.h.
	* Updated.
	* i386-tdep.c: Updated.
	* amd64-tdep.c: Updated.

2008-08-13  Jason Molenda  (

	* amd64-tdep.c (struct amd64_frame_cache): Removed.
	(amd64_alloc_frame_cache): Removed.
	(amd64_analyze_prologue): Removed.
	(amd64_skip_prologue): Call i386_amd64_analyze_prologue.
	(amd64_frame_cache): Removed.
	(amd64_frame_this_id): Update to use shared i386-amd64 prologue
	(amd64_frame_prev_register): Same.
	(amd64_sigtramp_frame_cache): Same.
	(amd64_sigtramp_frame_this_id): Same.
	(amd64_frame_base_address): Same.
	* i386-amd64-shared-tdep.c (enum i386_regs, enum amd64_regs): Removed,
	get from i386-tdep.h and amd64-tdep.h.
	(REX_W_PREFIX_P, REX_W_R, REX_W_B): New macros to decode REX.W
	prefix opcodes.
	(x86_64_nonvolatile_regnum_p): New function.
	(x86_64_machine_regno_to_gdb_regno): New function.
	(i386_machine_regno_to_gdb_regno): New function.
	(i386_push_reg_p): Handle x86_64 registers.
	(i386_pop_p): Handle x86_64 registers.
	(i386_mov_reg_to_stack_p): Handle x86_64 instructions.
	(i386_sub_esp_pattern_p): Correct logic for x86_64 instructions.
	(i386_amd64_initialize_frame_cache): Register two helper functions.
	(i386_amd64_analyze_prologue): Update function work with x86_64
	instructions, registers.
	* i386-amd64-shared-tdep.c (struct i386_amd64_frame_cache): Add
	two function pointers.

2008-08-12  Jason Molenda  (

	* (adjust_ehframe_regnum): Added.
	* gdbarch.c, gdbarch.h: Regenerated.
	* arch-utils.c (default_adjust_ehframe_regnum): New func.
	* arch-utils.h: Prototype.
	* dwarf2-frame.c (dwarf2_frame_set_adjust_regnum): Removed.
	(dwarf2_frame_adjust_regnum): Call gdbarch_adjust_ehframe_regnum.
	* dwarf2-frame.h: Prototype removed.
	* i386-tdep.c (i386_adjust_frame_regnum): Func renamed to 
	i386_adjust_ehframe_regnum, extra dwarf regno > gdb regno translation
	(i386_gdbarch_init): Register i386_adjust_ehframe_regnum() in the
	i386 gdbarch.

2008-08-11  Jason Molenda  (

	Move prologue analysis / frame cache code from i386-tdep.c
	to i386-amd64-shared-tdep.c.  Minor changes to record a wordsize
	and common register numbers in the frame cache.

	* i386-tdep.c (struct i386_frame_cache): Moved from here to
	(i386_initialize_frame_cache): Moved from here to 
	(i386_alloc_frame_cache): Same.
	(i386_analyze_prologue): Same.
	(i386_finalize_saved_reg_locations): Same.
	(i386_frame_cache): Same.
	(i386_skip_prologue): Call the i386_amd64_ frame cache functions,
	the i386_amd64_analyze_prologue function.
	(i386_frame_this_id): Same.
	(i386_sigtramp_frame_cache): Same.
	(i386_sigtramp_frame_this_id): Same.
	(i386_frame_base_address): Same.
	(maintenance_i386_prologue_parser): Same.

	* i386-amd64-shared-tdep.h: Update all prototypes to not use 
	enum i386_regnum for register numbers.
	(struct i386_amd64_frame_cache): Moved from i386-tdep.c to here.
	(i386_amd64_initialize_frame_cache): New prototype.
	(i386_amd64_analyze_prologue): New prototype.
	(i386_amd64_finalize_saved_reg_locations): New prototype.
	(i386_amd64_frame_cache): New prototype.

	* i386-amd64-shared-tdep.c: Add i386_regs and amd64_regs enum
	definitions if i386-tdep.h and amd64-tdep.h aren't available.
	(i386_picbase_setup_pattern_p): Don't use i386_regnum for register
	(i386_nonvolatile_regnum_p): Same.
	(i386_push_nonvolatile_reg_p): Same.
	(i386_push_reg_p): Same.
	(i386_mov_nonvolatile_reg_to_stack_p): Same.
	(i386_sub_esp_pattern_p): Same.
	(i386_unopt_arg_copy_to_local_stack_p): Same.
	(i386_amd64_initialize_frame_cache): Function moved from
	i386-tdep.c to here.
	(i386_amd64_alloc_frame_cache): Same.
	(i386_amd64_analyze_prologue): Same.
	(i386_amd64_finalize_saved_reg_locations): Same.
	(i386_amd64_frame_cache): Same.

2008-08-11  Jason Molenda  (

	* amd64-tdep.c (amd64_classify): Recognize TYPE_CODE_BOOL return type,
	used for C++ bool.

2008-08-01  Jason Molenda  (

	* linespec.c (decode_indirect): Initialize APPLE LOCAL fields of
	symtab_and_line struct.
	(decode_objc): Initialize APPLE LOCAL fields of symtab_and_line struct.

2008-08-01  Jason Molenda  (

	* symtab.c (find_pc_sect_line): Use SYMBOL_VALUE_ADDRESS when getting
	a symbol's addr, not SYMBOL_VALUE.  The latter is only 32 bits long.

2008-07-31  Jason Molenda  (

	* symtab.h (struct general_symbol_info): ivalue should be an int,
	not a long.  stabs stores 32-bit signed values in this member of
	the union and users of SYMBOL_VALUE expect it to behave as a signed

2008-07-30  Jason Molenda  (

	* block.c (blockvector_for_pc_sect): Ensure that the pindex var
	is always set to 0 or a valid index value.
	* linespec.c (decode_all_digits_exhaustive): If we're looking for
	a line number 0, this has a special meaning in the line table; omit
	the linetable search or we'll match something we don't meant to.  
	Don't do any processing on this linetable entry if no matching 
	blockvector is found for it.

2008-07-29  Jason Molenda  (

	* use the i386 floating point reg settings
	for an x86_64 host spec.
	* doublest.c (floatformat_to_doublest): Assert that we have a
	host floating point format specified.

2008-07-29  Jason Molenda  (

	* defs.h: Include <string.h> for memcpy et al prototypes.

2008-07-28  Jason Molenda  (

	* inlining.h: Add prototypes for inlined_update_frame_sal,
	set_current_sal_from_inlined_frame.  Needed by stack.c, possibly others.

2008-07-21  Jason Molenda  (

	* cli/cli-setshow.c (do_setshow_command): Make sure to initialize
	NMATCHES - there is a code path that could pass the initalization by

2008-07-21  Jason Molenda  (

	* dummy-frame.c (dummy_frame_prev_register): Fix arg type.
	* dwarf2-frame.c (dwarf2_frame_prev_register): Fix arg type.
	* frame-unwind.h (frame_prev_register_ftype): Fix arg type.
	* frame.c (put_frame_register, frame_register_read, 
	inlined_frame_prev_register): Fix arg type.
	* i386-nat.c (i386_insert_hw_breakpoint, i386_remove_hw_breakpoint):
	Fix arg type.
	* inlining.h (inlined_frame_prev_register): Fix arg type.
	* sentinel-frame.c (sentinel_frame_prev_register): Fix arg type.
	* symfile.c (symbol_file_add_bfd_helper, symfile_bfd_open_helper):
	Fix arg type.
	* target.c (debug_to_find_exception_catchpoints): Fix return type.
	* ui-out.c (ui_out_notify_end): Fix arg type.
	* config/xm-macosx.h (macosx_resize_window_handler): Fix arg type.
	* config/i386/nm-i386.h (i386_insert_hw_breakpoint,
	i386_remove_hw_breakpoint): Fix arg type.

2008-07-21  Jason Molenda  (

	* i386-tdep.c (i386_frame_cache): If a function's frame is followed by
	a dummy frame, then the function may be frameless.

2008-07-18  Jason Molenda  (

	* i386-tdep.c (i386_analyze_prologue): Add an additional case to
	detect the 'push $0x0' done in start.
	(i386_frame_cache): Assume that the ebp is the frame pointer if
	we don't have a function prologue to analyze.

2008-07-18  Jason Molenda  (

	* i386-tdep.c (struct i386_frame_cache): Renamed the struct members
	to make their purpose more clear.
	(i386_initialize_frame_cache): Updated.
	(i386_analyze_frame_setup): Renamed to i386_analyze_prologue.
	Completely rewritten.
	(i386_finalize_saved_reg_locations): New function.
	(i386_skip_prologue): Use refine_prologue_limit to keep from
	scanning too far into the function.
	(i386_frame_cache): Updated.  New logic for detecting frameless funcs.
	(i386_frame_this_id): Updated.
	(i386_frame_prev_register): Updated.
	(i386_sigtramp_frame_cache): Updated.
	(i386_frame_base_address): Updated.
	(maintenance_i386_prologue_parser): Updated.
	(_initialize_i386_tdep): Don't register obsolete ABIs.

	(i386_follow_jump, i386_analyze_struct_return, i386_skip_probe,
	i386_analyze_prologue, i386_analyze_register_saves, i386_frame_num_args,
	i386_build_sse_type, sunpro_static_transform_name, 
	i386_pe_skip_trampoline_code, i386_svr4_sigtramp_p, 
	i386_svr4_sigcontext_addr, i386_elf_init_abi, i386_svr4_init_abi,
	i386_go32_init_abi, i386_nw_init_abi, i386_coff_osabi_sniffer):
	Remove obsolete functions.

	* i386-amd64-shared-tdep.c (i386_ret_pattern_p): Handle some
	additional cases.
	(i386_nonvolatile_regnum_p): New func.
	(i386_push_reg_p): New func.
	(i386_pop_p): New func.
	(i386_mov_nonvolatile_reg_to_stack_p): New func.
	(i386_unopt_arg_copy_to_local_stack_p): New func.
	(i386_jump_insn_p): New func.
	* i386-amd64-shared-tdep.h: Add prototypes for the new functions.

2008-07-18  Jason Molenda  (

	* fix-and-continue.c (decode_fix_and_continue_trampoline): Read the
	correct number of bytes to detect an i386 F&C trampoline sequence.

2008-07-18  Jason Molenda  (

	* cli/cli-dump.c (restore_binary_file): Rewrite to correctly read
	and write chunks of the binary file less than g_max_binary_file_chunk;
	don't scribble on memory; correctly retry a failing memory write.

2008-07-02  Jason Molenda  (

	* i386-amd64-shared-tdep.c (i386_push_nonvolatile_reg_p): New function
	to detect the saving-via-push-insn of nonvolatile instructions.
	* i386-amd64-shared-tdep.h: Prototype.
	* i386-tdep.c (i386_analyze_register_saves): If we detect a CALL insn
	other than a picbase setup CALL insn, then we've finished prologue

2008-07-01  Jim Ingham  <>

	* dwarf2read.c (dwarf2_scan_pubtype_for_psymbols): Put the
	type definition in the global psymbol list.
	* symtab.c (lookup_symbol_aux_psymtabs): Continue rather than
	returning if the psymtab is not in the symtab.
2008-06-30  Caroline Tice  <>

	* dwarf2read.c (read_inlined_subroutine_scope):  Make sure decl_line
	and decl_file are not null before recording inlining data.
	(check_inlined_function_calls):  Fix a typo, strchr -> strrchr.

2008-06-26  Greg Clayton  <>

	* valops.c (value_full_object): Add try/catch around 
	value_rtti_type function call.

2008-06-26  Jason Molenda  (

	* i386-tdep.c (i386_analyze_register_saves): Don't record apparent
	register saves of volatile registers; don't re-record a reg save
	after it has already been recorded for this func.
	(i386_initialize_frame_cache): New function to initialize a frame
	cache struct to a known good state, taking the body of code from
	(i386_alloc_frame_cache): Call i386_initialize_frame_cache.
	(i386_skip_prologue): Call i386_initialize_frame_cache.

2008-06-24  Jason Molenda  (

	* parser-defs.h (struct objc_class_str): Make 'class' a CORE_ADDR.

2008-06-20  Jim Ingham  <>

	* defs.h: Add declaration of make_cleanup_ui_out_suppress_output.
	* infcall.h: Add declaration of hand function call timeout fns.
	* infcall.c (set_hand_function_call_timeout, 
	hand_function_call_timeout_p, handle_alarm_while_calling): New 
	(hand_function_call): If the timeout is not 0, set up a timer around
	the call to proceed.  If it fires, report that error.
	(_initialize_infcall): Add the timeout set variable.
	* objc-lang.c (new_objc_runtime_class_getClass): Add a timeout
	to the gdb_class_getClass call.
	(new_objc_runtime_find_impl): Suppress errors from the various
	calls we make here.  Also move the "add to cache" inside the
	target_check_safe_call branch.
	(new_objc_runtime_get_classname): Convert to use
	* utils.c (make_cleanup_ui_out_suppress_output): New function.

	* event-loop.c (mark_async_signal_handler): Internal error if
	the signal handler is null.

2008-06-18  Jim Ingham  <>

	* config/arm/ Remove -Wno-long-double.

2008-06-17  Jason Molenda  (

	* ada-lang.c (decode_packed_array_type, add_defn_to_vec, 
	ada_evaluate_subexp): Remove unused vars.
	* ada-lex.l (find_dot_all, name_lookup): Same.
	* amd64-tdep.c (amd64_analyze_prologue): Same.
	* auxv.c (target_auxv_search): Same.
	* blockframe.c (addr_inside_main_func): Same.
	* c-typeprint.c (c_type_print_args): Same.
	* charset.c (_initialize_charset): Same.
	* coff-pe-read.c (add_pe_exported_sym, read_pe_exported_syms): Same.
	* coffread.c (coff_symfile_read): Same.
	* cp-parser.y: Same.
	* cp-namespace.c (cp_scan_for_anonymous_namespaces, 
	cp_add_using_directive): Same.
	* cp-support.c (mangled_name_to_comp, method_name_from_physname,
	cp_func_name): Same.
	* cp-valprint.c (cp_print_value_fields): Same.
	* demangle.c (_initialize_demangler): Same.
	* dictionary.c (iterator_next_hashed): Same.
	* disasm.c (do_mixed_source_and_assembly): Same.
	* dwarf2-frame.c (decode_frame_entry): Same.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc, 
	print_single_dwarf_location): Same.
	* dwarf2read.c (dwarf_decode_macros): Same.
	* elfread.c (elf_symfile_read): Same.
	* eval.c (evaluate_subexp_standard): Same.
	* exec.c (print_section_info): Same.
	* findvar.c (value_from_register): Same.
	* frame-unwind.c (frame_unwind_find_by_frame): Same.
	* frame.c (frame_register_unwind, inside_entry_func): Same.
	* gdb-events.c (_initialize_gdb_events): Same.
	* gdbarch.c (gdbarch_printable_names, _initialize_gdbarch): Same.
	* gdbtypes.c (make_type_with_address_space, make_cv_type, 
	check_typedef, _initialize_gdbtypes): Same.
	* gnu-v2-abi.c (gnuv2_value_rtti_type): Same.
	* hpacc-abi.c (hpacc_virtual_fn_field): Same.
	* i387-tdep.c (i387_print_float_info): Same.
	* infcmd.c (step_1_inlining): Same.
	* jv-exp.y (CastExpression, push_expression_name): Same.
	* jv-lang.c (type_from_class, java_class_name_from_physname): Same.
	* kod.c (_initialize_kod): Same.
	* language.c (_initialize_language): Same.
	* linespec.c (decode_compound): Same.
	* macrocmd.c (_initialize_macrocmd): Same.
	* macroexp.c (gather_arguments): Same.
	* macroscope.c (default_macro_scope): Same.
	* maint.c (_initialize_maint_cmds): Same.
	* mdebugread.c (psymtab_to_symtab_1): Same.
	* minsyms.c (lookup_minimal_symbol_all): Same.
	* osabi.c (_initialize_gdb_osabi): Same.
	* p-exp.y: Same.
	* p-typeprint.c (pascal_type_print_base): Same.
	* parse.c (length_of_subexp, prefixify_subexp, build_parse): Same.
	* printcmd.c (print_command_1): Same.
	* regcache.c (regcache_cpy, regcache_cpy_no_passthrough, 
	deprecated_write_register_bytes, read_register_pid): Same.
	* solib.c (_initialize_solib): Same.
	* source.c (set_default_source_symtab_and_line, 
	find_source_lines): Same.
	* stack.c (parse_frame_specification_1, frame_info): Same.
	* symfile.c (simple_overlay_update_1, simple_overlay_update): Same.
	* symmisc.c (dump_symtab_1): Same.
	* target.c (memory_xfer_partial): Same.
	* top.c (init_main): Same.
	* trad-frame.c (trad_frame_alloc_saved_regs): Same.
	* tramp-frame.c (tramp_frame_cache): Same.
	* ui-out.c (ui_out_field_int, ui_out_field_fmt_int): Same.
	* utils.c (xvasprintf, initialize_utils): Same.
	* valarith.c (value_subscript): Same.
	* valops.c (value_fetch_lazy, find_overload_match): Same.
	* valprint.c (_initialize_valprint): Same.
	* value.c (value_from_double): Same.
	* varobj.c (cplus_type_of_child): Same.
	* cli/cli-cmds.c (edit_command, disassemble_command): Same.
	* cli/cli-decode.c (deprecated_cmd_warning): Same.
	* cli/cli-dump.c (scan_expression_with_cleanup, 
	dump_memory_to_file): Same.
	* cli/cli-script.c (define_command, script_from_file): Same.
	* cli/cli-setshow.c (do_setshow_command): Same.

	* complaints.c (_initialize_complaints): Fix stop_whining add_setshow
	* disasm.c (gdbarch_instruction_length): Make const correct.
	* macroscope.c (sal_macro_scope): Don't call a variable 'main'.
	* symtab.c (psym_name_match): Don't modify arguments, make them const.
	* symtab.h: Update prototype.
	* value.c (create_cached_function): Mark 1st arg as const.
	* value.h (create_cached_function): Prototype updated.

2008-06-17  Jim Ingham  <>

	* varobj.c (varobj_fixup_value): Fix error from mutating code
	to handle closure dynamic types.
2008-06-16  Jason Molenda  (

	* amd64-tdep.c (amd64_frame_unwind, amd64_sigtramp_frame_unwind):
	Fill out the structures.
	* checkpoint.c (print_checkpoint_info): print addrs correctly.
	* dummy-frame.c: Include inlining.h.
	* dwarf2read.c (db_error): Don't run message through localization.
	(rb_print_node): Print addrs correctly.
	* findvar.c (value_from_register): Correct type of optim.
	* i386-tdep.c (i386_frame_unwind, i386_sigtramp_frame_unwind): 
	Fill out the structures.
	* i387-tdep.c (i387_swap_fxsave): Change the pointer to the fxsave
	struct as a uint8_t * instead of void* so pointer arith works.
	* i387-tdep.h: Update prototype.
	* inf-child.c (inf_child_enable_exception_callback): Correct
	return type.
	* infcall.c (set_unwind_on_signal_cleanup): New version of
	set_unwind_on_signal for adding to a cleanup chain.
	* infcmd.h: Include macosx-nat-dyld.h for prototype.
	* infrun.c: Include macosx-nat-dyld.h for prototype.
	(set_scheduler_locking_mode): scheduler_mode is a string.
	Make suppress_hook_stop_p a void* for ease in passing through
	cleanup chains.
	(do_cleanup_suppress_hook_stop): Updated.
	(make_cleanup_suppress_hook_stop): Updated.
	* inftarg.c (child_enable_exception_callback): Updated to return int.
	* inlining.c (inlined_function_add_function_names): Print addrs
	* inlining.h: add prototypes for restore_thread_inlined_call_stack,
	* main.c: Include osabi.h arch-utils.h for prototypes.
	* maint.c: Include objc-lang.h for prototype.  Fix call to
	* mem-break.c (default_memory_insert_breakpoint): Use new 
	(default_memory_remove_breakpoint): Ditto.
	* objc-lang.c (print_object_command): Use new 
	(new_objc_runtime_find_impl, new_objc_runtime_get_classname): Ditto.
	* objfiles.c: Include mach-o.h for prototype.
	(objfile_section_offset): Don't pass err_str directly as a format
	string to internal_error.
	* ser-unix.c (wait_for): Add brackets to disambiguate if chain.
	* stabsread.h: Prototype for cleanup_undefined_fields.
	* symfile.c: Include libbfd.h, mach-o.h for prototypes.
	Add a prototype for the func add_dysm_command, make static.
	* symmisc.c (dump_objfile): Print addrs correctly.
	* target.c (set_trust_readonly_cleanup): New variant for adding to
	a cleanup chain.
	(gdb_set_async_override): Make this appropriate for cleanup chains.
	(debug_to_find_exception_catchpoints): This returns symtab_and_lines
	not symtab_and_line.
	(debug_to_enable_exception_callback): This returns int.
	* target.h (gdb_set_async_override): Update prototype.
	(set_trust_readonly_cleanup): Add prototype.
	* top.c (read_command_file): Update use of gdb_set_async_override.
	* utils.c (perror_with_name): Don't pass error string to error as
	the format string.
	* valarith.c (value_subscript): stride is a long, not long long.
	* valops.c: Include dictionary.h for prototype.
	(allocate_space_in_inferior_malloc): Use set_unwind_on_signal_cleanup.
	* valprint.c (val_elt_addr): stride is a long, not long long.
	* value.h: prototype for set_unwind_on_signal_cleanup.
	* cli/cli-dump.c (restore_binary_file): Print addresses correctly.
	(_initialize_cli_dump): Fix restore description message.
	* cli/cli-script.c (execute_user_command): Update use of 

2008-06-16  Jason Molenda  (

	* main.c (captured_main): Only read .gdbinit in the cwd if it is
	owned by the current user.
	* utils.c (perror_with_name): Don't look up a localization for '%s'.
	* dwarf2read.c (dwarf_decode_lines): Don't print the line program
	debugmap every time we start/stop reading a line table; it's an
	extraordinary amount of information and not very helpful.

2008-06-05  Jason Molenda  (

	* dwarf2read.c (convert_oso_map_to_final_map): Don't try to 
	sort/fixup the map entries array if there are no entries.

2008-06-05  Caroline Tice  <>

        * dwarf2read.c (check_inlined_function_calls):  Major rewrite of this
	function to make absolutely sure that the correct subfile
	entries are being used, both for the file where an inlined subroutine
	is declared/defined and for the file where it is called.
	* infcmd.c (step_1_no_inlining): New function; this is an exact
	copy of the original step_1 function.  step_1 has now been modified
	as described below.
	(step_1_inlining):  A modified version of the original step_1 function,
	this function contains a lot of code copied from step_once, to allow
	for correct maneuvering through inlined subroutines if the target does
	synchronous execution (step_once is only called in the asynchronous 
	(step_1):  New version of this function; calls either step_1_inlining
	or step_1_no_inlining depending on value of 
	(step_once):  Remove unused local var, tmp_symtab; add third argument
	to call to find_next_inlined_subroutine.
	* infrun.c (save_inferior_status):  Add call to 
	(restore_inferior_status):  Add call to 
	* inlining.c (rb_tree_find_all_nodes_in_between): New function.
	(add_item_to_inlined_subroutine_stack):  Fix some code format; don't
	overwrite the symtab field, "s", of an inlined record if it has 
	already been filled in.
	(at_inlined_call_site_p):  Add clause 'else i = low;'
	(print_inlined_frame):  write full file & path name for 'file' ui 
	field, rather than just file name.
	(step_into_current_inlined_subroutine):  Remove gdb_assert that
	is not always true on some architectures.
	(rest_of_line_contains_inlined_subroutine): If no inlining found
	beyond the end of the current ending address, check inlining records
	tree for any inlining that occurs between stop_pc and current ending
	(find_next_inlined_subroutine): Likewise; also, add third paramenter to
	indicate the current ending address.
	* inlining.h (find_next_inlined_subroutine):  Add third parameter.

2008-06-03  Jason Molenda  (

	* i386-tdep.c (i386_analyze_register_saves): Look for an additional
	instruction pattern used to save registers.

2008-05-29  Jason Molenda  (

	* dwarf2-frame.c (read_reg): Don't use unpack_long here or we'll get
	sign extension issues with 4-byte addresses + 8-byte CORE_ADDRs.
	(execute_stack_op): Accept & pass along eh_frame_p param.
	(dwarf2_frame_adjust_regnum): Make this function non-static so it can
	be called from dwarf2expr.c.
	(struct dwarf2_frame_cache): Field for recording whether this frame's 
        CFI is from an eh_frame or not.
	(dwarf2_frame_cache): Initialize eh_frame_p field.
	(dwarf2_frame_prev_register): Pass eh_frame_p to execute_stack_op.
	* dwarf2-frame.h: Prototype for dwarf2_frame_adjust_regnum.
	* dwarf2expr.c (dwarf_expr_eval): Accept & pass along eh_frame_p param.
	(execute_stack_op): Accept eh_frame_p param; translate register numbers
	in expressions if this is an expression from an eh_frame.
	* dwarf2expr.h (dwarf_expr_eval): Prototype updated.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc, dwarf2_loc_desc_needs_frame,
	print_single_dwarf_location): Calls to dwarf_expr_eval updated.

2008-05-29  Jason Molenda  (

	* corefile.c (memory_error): Print the full 64 bits of the address
	we couldn't read, even on 32-bit programs.

2008-05-27  Jason Molenda  (

	* amd64-tdep.c (amd64_dwarf_reg_to_regnum): We may be asked to
	translate DWARF2 register numbers that don't have assigned registers;
	make this a complaint instead of a warning.
	* dwarf2-frame.c (dwarf2_frame_cache): Add comment about why gdb's
	idea of the number of registers isn't really correct for determining
	the number of DWARF register columns we should support here.

2008-05-27  Jason Molenda  (

	* dwarf2expr.c (execute_stack_op): Add support for DW_OP_swap.

2008-05-21  Jason Molenda  (

	* i386-amd64-shared-tdep.c (i386_sub_esp_pattern_p): Recognize 
	instructions that subtract from esp.
	* i386-amd64-shared-tdep.h: Prototype.
	* i386-tdep.c (i386_analyze_frame_setup): Handle the case where 
	-fomit-frame-pointer code never touches ebp; just look for an esp
	change to indicate the end of the prologue.

2008-05-21  Jason Molenda  (

	* dwarf2-frame.c (execute_cfa_program): One additional EH register num
	translation was needed.
	(dwarf2_frame_cache): Don't issue complaints about unspecified 

2008-05-20  Jason Molenda  (

	* i386-tdep.c (i386_adjust_frame_regnum): Add register number
	translator for handling eh_frame regnums from gcc.
	(i386_gdbarch_init): Register it.

2008-05-20  Jason Molenda  (

	* dwarf2-frame.c: Update to the FSF version from 2007-07-02,
	bring forward Greg, Caroline and my changes that were made previously.
	* dwarf2-frame.h: Update to the FSF version from 2007-07-02.
	* dwarf2read.h: Add prototype for dwarf2_read_section.
	* dwarf2read.c: Remove prototype for dwarf2_read_section.  Set the 
	symtab producer to the contents of DW_AT_producer.
	TYPE_CODE_MEMBERPTR type definitions; not used in our current code base.
	* value.c (pack_long): New function.
	* value.h: Prototype.
	* buildsym.h (struct subfile): Add producer field.
	Add record_producer prototype.
	* buildsym.c (record_producer): Record the producer.
	(start_subfile): Initialize/set the producer.
	(end_symtab): Save the producer on the obstack, xfree the 
	heap one.
	* symtab.h (struct symtab): Add the producer field.

2008-05-20  Jason Molenda  (

	* dwarf2read.h:  Add declarations for dwarf_frame_section and

2008-05-15  Jim Ingham  <>

	* c-valprint.c (c_value_print): Check if there is a closure
	dynamic type.
	* dwarf2read.c: Check for the DW_AT_APPLE_closure attribute.
	* eval.c (evaluate_subexp): Cast the value to the closure 
	dynamic type if available.
	(evaluate_subexp_standard): Ditto.
	* gdbtypes.c (get_closure_dynamic_type): New function. 
	* gdbtypes.h: (TYPE_FLAG_APPLE_CLOSURE): New flag.
	Declare get_closure_dynamic_type.
	* typeprint.c (whatis): Check for closure dynamic type.
	* varobj.c (varobj_{parse_exp_1,evaluate_expression, 
	evaluate_type}): Turn off print_closure before evaluating.
	Replace uses of gdb_ with varobj_.
	(varobj_fixup_value): Handle closure dynamic type.
2008-05-14  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Save a copy of the directory name
	SO stab.  When creating a psymtab, add the saved dirname to the

2008-05-11  Jim Ingham  <>

	* arm-tdep.c (arm_macosx_skip_prologue_addr_ctx): Don't look up
	the block value of a symbol without making sure it is LOC_BLOCK.
2008-05-09  Jim Ingham  <>

	* varobj.c (path_expr_of_root, cplus_path_expr_of_child): Put
	a single quote around the type name when casting to the dynamic
	type.  Otherwise namespaces choke in the class name choke the
	expression parser.
2008-05-09  Greg Clayton  <>

	* remote.c (remote_create_inferior): Increase timeout for the launch
	success packet to 30 seconds so it doesn't timeout and quit too soon.

2008-05-08  Jim Ingham  <>

	* gdbtypes.c (is_ancestor_by_name): New function.
	* gdbtypes.h (is_ancestor_by_name): Declare it.
	* symtab.c (lookup_type_aux): If we are in a class method,
	short-circuit the lookup of the class name.
2008-05-02  Caroline Tice  <>

	* inlining.c (print_inlined_frame):  Make sure the temp_frame_stack
	gets updated if appropriate.

2008-04-30  Jason Molenda  (

	* remote.c (struct protocol_log): Make the protocol_log array 
	dynamically allocated.
	(initialize_protocol_log): Allocate space for the protocol_log array
	on the heap.
	(init_remote_state): Mov call to initialize_protocol_log so it is only
	initialized when a remote target has been specified. 
	(_initialize_remote): Remove call to initialize_protocol_log.
	(dump_protocol_log, add_pkt_to_protocol_log): Update to work with 
	new protocol_log array bounds.

2008-04-29  Jason Molenda  (

	* symfile.c (add_symbol_file_command): Don't print "_addr" after the
	segment name.

2008-04-28  Jason Molenda  (

	* dwarf2expr.c (execute_stack_op): Don't mark variables as
	unavailable when we see DW_OP_APPLE_uinit for now.

2008-04-24  Caroline Tice  <>

	* dwarf2loc.c (print_single_dwarf_location): Apply 

2008-04-24  Caroline Tice  <>

	* dwarf2loc.c (print_single_dwarf_location): Print out register
	names instead of register numbers.
	(loclist_describe_location):  Avoid extra newline at the end of
	a location list.

2008-04-23  Jason Molenda  (

	* config/arm/, config/i386/, config/ppc/
	Add macosx-nat-cmds-load.o so the load-plugin command can be used for
	cross debuggers.

2008-04-21  Jim Ingham  <>

	* arm-tdep.c (arm_gdbarch_init): Don't add the "stub" sniffers on 
	Mac OS X, they're for something we don't have, and sometimes they
	fire errantly and mess up the backtrace.
2008-04-10  Jason Molenda  (

	* breakpoint.c (breakpoint_re_set_one): Handle catch/throw breakpoints
	like normal breakpoints.
	(tell_breakpoints_objfile_changed_internal): Handle catch/throw
	breakpoints like normal breakpoints.

2008-04-08  Jason Molenda  (

	* linespec.c (decode_line_1): Correctly advance the character
	pointer in the case where we have multiple source files that
	matched but only one actually turned out to have lines.

2008-04-08  Jim Ingham  <>

	* objc-lang.c (value_nsstring): Make the function type
	that creates the nsstring actually be "returns NSString *"
	rather than "returns void *".  Our attempts to fix the
	value up after the fact didn't work.

	* breakpoint.c (breakpoint_re_set_one): Thread creation
	breakpoints need to be relocated.
2008-04-04  Greg Clayton  <>

	* remote.c (remote_attach): Clear up error display.
	* config/tm-macosx.h (ATTACH_DETACH): Define this for any Mac OSX
	target (including cross builds).
	* config/tm-macosx.h (ATTACH_NO_WAIT): Ditto.
	* config/nm-macosx.h (ATTACH_DETACH): Moved to tm-macosx.h.
	* config/nm-macosx.h (ATTACH_NO_WAIT): Ditto.

2008-04-04  Jim Ingham  <>

	* remote.c (complete_create_or_attach): New function.
	(remote_create_inferior): Factored out common bits into
	(remote_attach): New implementation.
2008-04-03  Jason Molenda  (

	* fix-and-continue.c (fix_and_continue_supported): Not supported on

2008-04-03  Jim Ingham  <>

	* remote.c (remote_create_inferior): Query the success of the launch
	attempt before proceeding.
2008-04-01  Jason Molenda  (

	* remote.c (getpkt_sane): If the watchdog timer times out, there's a
	good chance someone unplugged the remote device we were talking to.
	Change the error message to mention this possibility explicitly.

2008-04-01  Jim Ingham  <>

	* objc-lang.c (new_objc_runtime_find_impl): If the implementation
	is _objc_msgForward then the object doesn't respond to the 
	selector.  Return 0 in this case.
2008-03-27  Jim Ingham  <>

	* objfiles.c (free_objfile_internal): Free the cached sections
	data structures.
	* symtab.c: Use INVALID_ADDRESS to indicate uninitialized values
	instead of 0.
	(symtab_clear_cached_lookup_values): Ditto.

2003-03-27  Caroline Tice  <>

	* c-exp.y (square_bracket_seen): New global variable.
	(yylex):  Make special cases for '[' and ']', to update 
	square_bracket_seen; only call lookup_objc_class if square_bracket_seen
	is true; then set it to false.
	* objc-exp.y (square_bracket_seen): New global variable.
	(yylex):  Make special cases for '[' and ']', to update 
	square_bracket_seen; only call lookup_objc_class if square_bracket_seen
	is true; then set it to false.
	* varobj.c (path_expr_of_root):  New function.
	(name_of_variable):  Call path_expr_of_root to get the path expression
	for root variables, instead of just returning its name.

2003-03-26  Jim Ingham  <>

	* symfile.c (add_kext_command): Use printable_name not
	arch_name for the warning.
2008-03-24  Jason Molenda  (

	Original patch by Gaius Mulley <>, edited down
	to just the DW_TAG_set_type support by Jonas Maebe.

	* dwarf2read.c (read_set_type): Record a DW_TAG_set_type die.
	(process_die): Call it.
	(new_symbol): Recognize the tag.
	(read_type_die): Call it.

2003-03-21  Jim Ingham  <>

	* fork-child.c (fork_inferior): Switch to using posix_spawn/
	execve for both the shell & non-shell case.  That way we can
	ensure that even if the shell is Universal we'll run the same
	fork of the shell as of the executable.
2008-03-18  Jim Ingham  <>

	* breakpoint.c (watch_command_1): If the value for the watch
	expression's type is TYPE_CODE_ERROR, discard the watchpoint.
2008-03-17  Jim Ingham  <>

	* remote.c (remote_create_inferior): Use the QEnvironment packet
	to send down the environment to the target.  Also, changed the remote
	args code to share a buffer & cleanup with the environment code.
2008-03-12  Jason Molenda  (

	* objc-lang.c (find_implementation_from_class): Compare the cstring 
	names of the classes instead of the class pointers themselves.
	(new_objc_runtime_find_impl): Remove accidental duplicated code.

2008-03-12  Caroline Tice  <>

	* symfile.c (append_psymbols_as_msymbols):  Check the return value from
	lookup_minimal_symbol_by_pc_section_from_objfile to make sure it's
	really the same symbol before skipping over it.

2008-03-10  Caroline Tice  <>

	* block.c (inferior.h): New include file.
	(blockvector_for_pc_sect):  Check to see if parameters are the same
	as the last time this function was called; if so return 
	cached values; otherwise find the
	appropriate values, and re-set the cached parameters and return values.
	(block_for_pc_sect): Likewise.
	* blockframe.c (find_pc_sect_function): Likewise.
	* corefile.c (reopen_exec_file): Add call to 
	* objfiles.c (find_pc_sect_section): Check to see if parameters are the
	same as the last time this function was calle; if so return cached
	value; otherwise find the appropriate value, and re-set the cached
	parameters and return value.
	* symfile.s (replace_psymbols with correct_psymbols):  Add call to
	(symbol_file_clear): Likewise.
	(reread_symbols): Likewise.
	(remove_symbol_file_command): Likewise.
	(find_pc_overlay): Check to see if parameters are the
	same as the last time this function was calle; if so return cached
	value; otherwise find the appropriate value, and re-set the cached
	parameters and return value.
	(find_pc_mapped_section):  Likewise.
	* symtab.c (cached_mapped_section, cached_overlay_section,
	cached_sect_section, cached_symtab, cached_psymtab, cached_pc_line,
	cached_pc_function, cached_blockvector, cached_blockvector_index,
	cached_block, last_block_lookup_pc, last_blockvector_lookup_pc,
	last_function_lookup_pc, last_pc_line_lookup_pc, 
	last_psymtab_lookup_pc, last_symtab_lookup_pc, 
	last_sect_section_lookup_pc, last_mapped_section_lookup_pc, 
	last_overlay_section_lookup_pc):  New global variables.
	(find_pc_sect_psymtab): Check to see if parameters are the
	same as the last time this function was calle; if so return cached
	value; otherwise find the appropriate value, and re-set the cached
	parameters and return value.
	(find_pc_sect_symtab): Likewise.
	(find_pc_sect_line): Likewise.
	(copy_sal):  New function.
	(symtab_clear_cached_lookup_values): New function.
	* symtab.h (cached_mapped_section, cached_overlay_section,
	cached_sect_section, cached_symtab, cached_psymtab, cached_pc_line,
	cached_pc_function, cached_blockvector, cached_blockvector_index,
	cached_block, last_block_lookup_pc, last_blockvector_lookup_pc,
	last_function_lookup_pc, last_pc_line_lookup_pc, 
	last_psymtab_lookup_pc, last_symtab_lookup_pc, 
	last_sect_section_lookup_pc, last_mapped_section_lookup_pc, 
	last_overlay_section_lookup_pc):  New extern global variable 
	(symtab_clear_cached_lookup_values): New extern function declaration.

2008-03-06  Jim Ingham  <>

	*infrun.c (handle_inferior_event): Catch possible errors
	unwinding to the caller frame.
	* printcmd.c (address_info): Don't crash if there's no
	currently selected block.
2008-03-05  Jason Molenda  (

	Patch from George Helffrich.
	* dwarf2read.c (read_common_block): Record the current die's linkage name
	while children die processing.
	(decode_locdesc): If parent die's linkage name was set, use it.

2008-03-05  Jason Molenda  (

	* remote.c (PROTOCOL_LOG_COUNT): Double to 400 packets.
	(add_pkt_to_protocol_log): Record empty replies from the remote stub.

2008-03-05  Jason Molenda  (

	* Look for DebugSymbols framework in $SDKROOT.
	* configure: Regenerated.

2008-03-04  Greg Clayton  <>

	* thread.c (info_threads_command): Use ui_out functions
	when outputting text so things stay in sync when using MI.

2008-02-26  Jim Ingham  <>

	* ui-out.c (ui_out_print_annotation_int): Remove errant
	conditionalization of the char* formatting of the int.

2008-02-25  Jim Ingham  <>

	* arm-tdep.c (arm_macosx_in_switch_glue): New function to 
	detect if we're in a gcc-generated function to handle a
	switch statement's jump table.  
	* infrun.c (struct execution_control_state): State whether
	we're in a thumb switch statement gcc-generated function.
	(init_execution_control_state): Init it.
	(handle_inferior_event): If we're in a gcc-generated function
	to handle a switch table, stepi over the instructions until 
	we're back in the body of the real function we were stepping
	* config/arm/tm-arm-macosx.h (IN_SWITCH_GLUE): Define to

2008-02-21  Jim Ingham  <>

	* ui-out.c (ui_out_set_annotation_printer): New function.
	(ui_out_print_annotation_string): New function.
	(ui_out_print_annotation_int): New function.
	* ui-out.h: Declare the above.
	* breakpoint.c (print_it_typical): Route some useful bits of
	stop information through the annotation printer.
	(watchpoint_check): Ditto.
	(print_exception_catchpoint): Ditto.
	* infrun.c (print_stop_reason): Ditto.
	(handle_inferior_event): Ditto.
	* infcmd.c (step_1): Call the stepping_command_hook in the
	synchronous target case.
2008-02-20  Jason Molenda  (

	* arm-tdep.c (arm_dwarf2_reg_to_regnum): New function to map
	DWARF register numbers to gdb internal register numbers.
	(arm_gdbarch_init): Add it to the gdbarch.
	* arm-tdep.h (enum gdb_regnum): Clarify what the different register
	names indicate.

2008-02-20  Jim Ingham  <>

	* objc-lang.c (new_objc_runtime_get_classname): Don't goto out
	of a TRY_CATCH block...
	* cli/cli-interp.c (cli_quoted_interpreter_resume): Route the
	stdtarg through an mi-like output as well.
2008-02-19  Jim Ingham  <>

	* objc-lang.c (new_objc_runtime_class_getClass): New function.
	(new_objc_runtime_find_impl): Use the above.
	(free_rb_tree): Make more generic by taking a "free_data" function.
	(objc_clear_caches): New function, clear both rb_tree caches.
	(new_objc_runtime_get_classname): New function.
	(lookup_classname_in_cache, add_classname_to_cache): Ditto.
	(objc_target_type_from_object): Change to look in cache, and
	to call new_objc_runtime_get_classname for Objc 2.0.

	(new_objc_runtime_find_impl): Run gdbarch_addr_bits_remove on
	the address we get back from the runtime.
	* objc-lang.h: Declare objc_clear_caches
	* target.c (generic_mourn_inferior): Call objc_clear_caches.

	* breakpoint.c (bpstat_stop_status): Don't call remove_breakpoints
	if we aren't going to stop.  That's an anachronism.
	* config/arm/tm-arm-macosx.h: Declare arm_throw_catch_find_typeinfo
2008-02-15  Jim Ingham  <>

	* breakpoint.c (breakpoint_re_set_one): Don't raise the load level
	if we are evaluating catch or throw breakpoints, since raising the
	load level will delete the breakpoint we're evaluating.
	* remote.c (init_remote_ops): add the MacOSX exception handling if 
	we're on MacOS X.

	* memattr.c (mem_{enable,disable}_caching): New functions.  Also
	use -1 for cache to mean "temporarily disabled".
	(mem_info_command): Change for new meaning of chache.
	* memattr.h: Declare the above.
	* dcache.c (dcache_write_line, dcache_read_line): Test for == 1, 
	not non-zero to mean cache on.
	* target.c (mem_xfer_partial): Ditto.
	(target_read): Don't return 0 if you've been able to
	read some, but not all, the requested bytes.  Return the number
	you've read.
	* dbxread.c (fill_symbuf): Temporarily disable caching while filling
	the symbuf.
	(stabsect_build_psymtabs): Ditto.
2008-02-14  Jim Ingham  <>

	* objc-lang.c (lookup_implementation_in_cache,
	add_implementation_to_cache, objc_clear_selector_to_implementation_cache,
	free_rb_tree_data): New functions.
	(new_objc_runtime_find_impl): Add then new implementation to cache.
	(find_implementation_from_class): Look in cache first.  And add a
	new one if found.
	(find_implementation): Ditto.
	(resolve_newruntime_objc_msgsendsuper): Ditto.
	* objc-lang.h: Declare objc_clear_selector_to_implementation_cache.
	* target.c (generic_mourn_inferior): Clear the cache.
	* symfile.c (append_psymbols_as_msymbols): Don't add a minsym if
	it already exists in the original objfile.
2008-02-09  Jim Ingham  <>

	* objc-lang.c (new_objc_runtime_find_impl): Check for
	and call the new gdb_class_getClass.
2008-02-08  Jim Ingham  <>

	* objc-lang.c (new_objc_runtime_find_impl): Set unwind_on_signal
	off while calling the function in the runtime.
	(find_implementation_from_class): Do more work to validate
	the input class before looking for the method.

2008-02-06  Jim Ingham  <>

	* valops.c (check_safe_call): Set stack_depth in the args.
2008-02-05  Jim Ingham  <>

	* objfiles.h: Add OBJF_SYM_DONT_CHANGE and the masks
	* dbxread.c (dbx_symfile_read): mutatis mutandi for above.
	* fix-and-continue.c (raise_objfile_load_level): Ditto.
	* infrun.c (handle_inferior_event): Ditto.
	* symfile.c (syms_from_objfile, reread_symbols): Ditto.
	* objfiles.c (objfile_set_load_state): Enforce 
2008-02-01  Jim Ingham  <>

	* target.h: Declare set_trust_readonly.
	* mem-break.c: Remove extern of set_trust_readonly.
2008-01-24  Jim Ingham  <>

	* memattr.h: MEM_NONE - new def'n.
	* memattr.c (mem_command): Translate "none" to "MEM_NONE".
	(mem_info): Print MEM_NONE as "none".
	(_initialize_mem): Fix doc string to add "none" mode.
	* target.c (memory_xfer_partial): Return an error if we are
	in a MEM_NONE memory region.
2008-01-23  Greg Clayton  <>

	* arm-tdep.c (get_non_inlined_frame): New function.
	(arm_macosx_scan_prologue): Make the FP the default framereg when
	the current frame index isn't frame zero, or when our previous frame
	is not a sigtramp.

2008-01-21  Jim Ingham  <>

	Pulling remote mobile onto the deep branch.
	* serial.c (serial_open): Recognize the filedesc serial
	* config/powerpc/ Add remote-mobile.o.
	* config/i386/ Add remote-mobile.o.
	* config/arm/ Ditto.

2008-01-18  Greg Clayton  <>

	* arm-tdep.c (arm_macosx_sigtramp_frame_cache): Pulled some enum
	definitions out for use elsewhere in this source file.
	(arm_macosx_fast_show_stack): Added fast stack support.
	* remote.c (DEFAULT_MAX_REMOTE_PACKET_SIZE): Default to max remote
	packet size to 2000.
	(set_max_remote_packet_size): Allow max remote packet size to be
	reduced below the initial max value.
	* config/arm/tm-arm-macosx.h (arm_macosx_fast_show_stack): New
	prototype for fast stack support.
	(FAST_COUNT_STACK_DEPTH): New macro for fast stack support.

2008-01-16  Jim Ingham  <>

        * fork-child.c: Move breakup_args from here to:
        * utils.c: here.
        * defs.h: declare breakup_args.
        * remote.c: Remove extern declaration for breakup_args.
2008-01-14  Jim Ingham  <>

        * fork-child.c (breakup_args): Make non-static.  Also return number
        of args.
        * remote.c (remote_start_remote): Handle case where the remote doesn't
        have a target when we connect.
        (remote_open_1) Ditto.
        (remote_create_inferior): New function.
        (remote_attach): New function.
        (remote_xfer_partial): If the remote side doesn't have a target
        yet, don't try to read its memory.
        (_initialize_remote): Add remote executable-directory set command.

2008-01-10  Jason Molenda  (

	* Use Bourne shell syntax for expanding SDKROOT.
	* configure: Regenerated.

2008-01-09  Greg Clayton  <>

	* cli/cli-dump.c (g_max_binary_file_chunk): New global variable.
	(restore_binary_file): Segment binary downloads into chunks of
	(set_binary_buffer_size): New function.
	(show_binary_buffer_size): New function.
	(set_restore_cmd): New function.
	(show_restore_cmd): New function.
	(_initialize_cli_dump): Add "restore" as a new prefix for 
	set and show lists that call set_restore_cmd () and 
	show_restore_cmd (). Added "binary-buffer-size" as a child
	of the new "set/show restore" command.
	* remote.c (MIN_MAX_REMOTE_PACKET_SIZE): New define.
	(g_max_remote_packet_size): New global variable.
	(init_remote_state): Init remote_packet_size with current value
	of new G_MAX_REMOTE_PACKET_SIZE variable.
	(set_max_remote_packet_size): New function.
	(show_max_remote_packet_size): New function.
	(show_remote_cmd): Added a call to show_max_remote_packet_size ()
	(_initialize_remote): Added a new "set/show remote max-packet-size"

2007-11-27  Greg Clayton  <>

	* (skip_prologue_addr_ctx): New gdb arch callback 
	function with predicate.
	* gdbarch.c: Regerated.
	* gdbarch.h: Regerated.
	* linespec.c (decode_line_2): Use new SKIP_PROLOGUE_ADDR_CTX when
	supported by the current arch.
	(decode_objc): Ditto.
	(minsyms_found): Ditto.
	(minsym_found): Ditto.
	* fork-child.c (fork_inferior): Added ARM arch support and init 
	CPU to zero.
	* main.c (captured_main): Added ARM support arch support for the
	--arch option.
	* symtab.h (struct address_context): New address baton structure
	for more accurately looking up address related items.
	(init_address_context): New function prototype.
	* symtab.c (init_address_context): New function.
	(find_function_start_sal): Use address context when looking
	up symtab_and_line entries if gdbarch supports it. 
	* arm-tdep.c (arm_macosx_skip_prologue_addr_ctx): New function.
	(arm_macosx_skip_prologue): Calls new function named
	(arm_gdbarch_init): Register new arch function 
2007-11-06  Greg Clayton  <>

	* dummy-frame.c (dummy_frame_push): Fixed a memory leak left
	over from an old merge.
	* arm-tdep.c (get_arm_prologue_cache): New function.
	(arm_macosx_scan_prologue): Use get_arm_prologue_cache to
	safely get an OSX prologue cache, or NULL for other frames.
	(arm_unwind_pc): Ditto.

2007-10-25  Greg Clayton  <>

	* arm-tdep.h (__ARM_FP_REG): Use r7 as frame pointer when
	TM_NEXTSTEP is defined, not TM_NEXT_STEP.

2007-10-10  Greg Clayton  <>

	* aclocal.m4: Set hardcode_direct=yes for all darwin host
	os targets to avoid libtool from expanding SDK -l options
	* configure: Regenerated.

2007-07-10  Greg Clayton  <>

	*, configure: Regenerated.
2007-07-05  Greg Clayton  <>

	* (COREFOUNDATION_LDFLAGS): New flags to allow 
	linking to CoreFoundation in when we don't link to Carbon.
	(CLIBS): Add new COREFOUNDATION_LDFLAGS to the option mix.
	* arch-utils.c (default_dbx_make_msymbol_special): New function.
	* arch-utils.h (default_dbx_make_msymbol_special): Added prototype.
	* arm-tdep.c (fp_model_strings): Add "none" as a valid FP model
	(arm_register_name_strings): Added support for VFP registers.
	(arm_register_offsets): New static array.
	(builtin_type_arm_psr): New global variable.
	(builtin_type_arm_fpscr): New global variable.
	(show_opcode_bytes): New static variable.
	(arm_set_show_opcode_bytes): New function.
	(arm_prologue_cache): Added prologue_start and prev_pc_is_thumb for
	stack crawling through code with no symbols.
	(arm_prologue_state): New structure type.
	(arm_scan_prolog_ftype): New function callback type.
	(arm_opcode_info_tag): New structure type.
	(data_proc_immediate): New function.
	(arm_scan_prolog_insn_stmfd_sp): New callback function for macosx
	prologue scan and skip code.
	(arm_scan_prolog_insn_data_proc_imm): Ditto.
	(arm_scan_prolog_insn_mov_ip_sp): Ditto.
	(arm_scan_prolog_insn_str_rd_sp): Ditto.
	(arm_scan_prolog_insn_stmfd_sp): Ditto.
	(arm_scan_prolog_insn_stfe_fn_sp_minus_12): Ditto.
	(arm_scan_prolog_insn_sfmfd_fn_4_sp): Ditto.
	(arm_scan_prolog_insn_fstmdb): Ditto.
	(thumb_scan_prolog_insn_push): Ditto.
	(thumb_scan_prolog_insn_sub4_sp_imm): Ditto.
	(thumb_scan_prolog_insn_add6_r7_sp): Ditto.
	(thumb_scan_prolog_insn_add_sp_rm): Ditto.
	(thumb_scan_prolog_insn_ldr_rd_pc_rel): Ditto.
	(thumb_scan_prolog_insn_mov_r7_sp): Ditto.
	(thumb_scan_prolog_insn_mov_rlo_rhi): Ditto.
	(arm_opcode_info): New array for macosx prologue scan and skip code.
	(thumb_opcode_info): Ditto.
	(IS_THUMB_ADDR): Look at bit 1 along with bit 0 to see if an address
	is thumb.
	(read_thumb_instruction): New function.
	(thumb_macosx_skip_prologue): New function.
	(thumb_macosx_scan_prologue): New function.
	(arm_macosx_skip_prologue): New function.
	(arm_macosx_scan_prologue): New function.	
	(arm_skip_prologue): Take care of more variety of register stores to 
	the stack.
	(thumb_scan_prologue): Use new arm_prologue_cache_t typedef and add
	logging code.
	(arm_prologue_prev_register): Use new arm_prologue_cache_t typedef.
	(arm_prologue_unwind_sniffer): Ditto.
	(arm_stub_this_id): Ditto.
	(arm_prologue_prev_register): Ditto.
	(arm_normal_frame_base): Ditto.
	(arm_make_sigtramp_cache): Ditto.
	(arm_sigtramp_this_id): Ditto.
	(arm_sigtramp_prev_register): Ditto.
	(arm_scan_prologue): Add logging code and use unsigned int variable
	when parsing opcodes, init the prologue_start, prologue_end and 
	current_pc to zero.
	(arm_make_prologue_cache): Use arm_macosx_scan_prologue for darwin
	ARM builds.
	(arm_prologue_this_id): Improved stack backtracing through code 
	without symbols.
	(arm_macosx_sigtramp_frame_cache): New function.
	(arm_macosx_sigtramp_frame_this_id): Ditto.
	(arm_macosx_sigtramp_frame_prev_register): Ditto.
	(arm_macosx_sigtramp_unwind_sniffer): New darwin sigtramp frame
	sniffer	definition.
	(arm_unwind_pc_using_fp): New function to improve stack backtraces 
	through code with no symbols.
	(arm_unwind_pc): Use the frame pointer to find previous PC and note
	if the previous function is Thumb in the prologue cache by
	inspecting the return address.
	(arm_push_dummy_call): Add log levels.
	(arm_print_float_info): Add more verbose information for VFP.
	(build_builtin_type_arm_psr_mode_enum): New function.
	(build_builtin_type_arm_psr): New function.
	(build_builtin_type_arm_fpscr): New function.
	(arm_register_type): Use new register formatters for CPSR and FPSCR
	(arm_register_byte): Use new arm_register_offsets array.
	(convert_to_extended): Change args to uint32_t types.
	(bitcount): Change args to uint32_t types.
	(data_proc_immediate): New function.
	(shifted_reg_val): New function.
	(thumb_get_next_pc): Add logging and take care of "mov pc, <Rm>"
	(arm_get_next_pc): Use uint32_t types where applicable instead of 
	unsigned longs and added logging and use new data_proc_immediate
	function when needed to avoid duplicated code.
	(arm_software_single_step): Lock the scheduler when software single
	(THUMB_LE_BREAKPOINT): Use 0xDEFE as our breakpoint instruction for
	(arm_extract_return_value): Add support for return values being VFP
	floats on the stack.
	(arm_store_return_value): Add support for changing return values 
	being VFP floats on the stack.
	(arm_return_value): New function.
	(arm_set_show_opcode_bytes): Add the ability to show opcode bytes 
	in disassembly.
	(set_disassembly_style): Add fpscr support.
	(arm_write_pc): Removed unused eflags local variable.
	(arm_register_reggroup_p): Add VFP support.
	(arm_gdbarch_init): Default float support to none when auto
	detecting float support, set wordsize to 4 early, and use 
	arm_macosx_skip_prologue and arm_macosx_sigtramp_unwind_sniffer 
	on darwin.
	(arm_dump_tdep): Use %s and paddr to dump tdep->lowest_pc.
	(_initialize_arm_tdep): Build builtin types for PSR and FPSCR and
	default default disassembly type to "gcc", add "set arm
	show-opcode-bytes <BOOL>" command, and add VFP float support, change
	set arm debug logging to be an integer instead of a bool for varying
	levels of logging.
	* arm-tdep.h (gdb_regnum): Add the ability to use a different
	register for the ARM frame pointer and added VFP support.
	(enum arm_float_model): Added a floating point support value for 
	(gdbarch_tdep): Added wordsize for DYLD support.
	*, configure: Regenerated.
	* Don't try and link against the Carbon.framework or 
	DebugSymbols.framework for ARM builds. Check for CoreFoundation and 
	use it if it is present.
	* Add ARM Darwin support.
	* dbxread.c (record_minimal_symbol): Add the description field so we 
	can make the msymbol special if needed.
	(read_dbx_dynamic_symtab): Pass zero to record_minimal_symbol for 
	new description arg since we don't have one.
	(read_dbx_symtab): Pass the n_desc field to record_minimal_symbol in 
	case it helps us mark the symbol as special.
	* defs.h (enum gdb_osabi): Add new GDB_OSABI_DARWINV6.
	* fix-and-continue.c (fix_command): No support for ARM.
	* gdbarch.c (struct gdbarch): Added make symbol special callback.
	(gdbarch_alloc): Use default make symbol special callback.
	(verify_gdbarch): Don't verify dbx_make_msymbol_special.
	(gdbarch_dump): Dump dbx_make_msymbol_special.
	(gdbarch_dbx_make_msymbol_special): New function.
	(set_gdbarch_dbx_make_msymbol_special): New function.
	* gdbarch.h (gdbarch_dbx_make_msymbol_special_ftype): New type.
	(gdbarch_dbx_make_msymbol_special): Added prototype.
	(set_gdbarch_dbx_make_msymbol_special): Added prototype.
	* (dbx_make_msymbol_special): Added new arch callback.
	* gdbtypes.c (build_builtin_enum): New fucnction.
	(build_builtin_bitfield): New function.
	* gdbtypes.h (struct gdbtypes_enum_info): New type for 
	(gdbtypes_bitfield_info): New type for build_builtin_bitfield
	(build_builtin_enum): Added prototype.
	(build_builtin_bitfield): Added prototype.
	* main.c (captured_main): Added the ability to set the OSABI 
	from the command line.
	* osabi.c (gdb_osabi_name): Added "DarwinV6" as a valid darwin
	(gdbarch_init_osabi): For ARM targets, check it ARMV6 is supported.
	(set_osabi): New function.
	(set_osabi_option): New function.
	* remote.c (init_remote_state): Increase the max packet size for ARM 
	VFP support.
	* symfile.c (open_bfd_matching_arch): For ARM, if we support ARMV6, 
	use and ARMV6 slices that are available, else fall back to ARMV4.
	* config/powerpc/ Re-format whitespace.

2007-11-08  Greg Clayton  <>

	* dwarf2read.h (struct oso_final_addr_tuple): Changed 
	PST_FILENAME to a partial_symtab struct pointer named PST.
	* dwarf2read.c (compare_map_entries_final_addr_index): Added 
	secondary sort based on oso_low_addr for final addrs that aren't
	in the final image.
	(convert_oso_map_to_final_map): Initialize final_addr in all 
	tuples,	and store partial_symtab with translation map.
	(create_kext_addr_map): Ditto.
	(translate_debug_map_address): Make sure next FINAL_ADDR 
	is valid when we use it, and make sure *ADDR doesn't exceed
	the high text address of the corrseponding partial_symtab.
	(translate_common_symbol_debug_map_address): Access partial
	symtab filename using new PST member.
	(dwarf_decode_lines): Don't translate line table addresses 
	until they are about to be added so we can properly 
	determine if we are translating addresses as HIGHPC addresses.

2008-02-26  Caroline Tice  <>

        * breakpoint.c (breakpoint_re_set_one): Add two local variables, found
	and j; if more than one sal is returned for the breakpoint, loop 
	through them trying to figure out which one is correct for the pc in 
	the current breakpoint.  Use the last sal if we can't figure it out 
	(fall back on original behavior).

2008-02-26  Caroline Tice  <>

        * dwarf2read.c (read_inlined_subroutine_scope):  Make sure the
	caller and callee functions both have names before calling
	* inlining.c (complaints.h): New include statement.
	(inlined_function_add_function_names):  If caller or callee have
	NULL function names, complain and assign "unknown function" to 

2008-02-20  Jason Molenda  (

        * remote.c (send_remote_max_packet_size): Rename to
        send_remote_max_payload_size.  Send the QSetMaxPayloadSize
        packet instead of the QSetMaxPacketSize to avoid any ambiguity 
        in its meaning.

2008-02-18  Jason Molenda  (

        * remote.c (send_remote_max_packet_size): Tell the remote stub the
        maximum packet size gdb is prepared to handle.
        (remote_start_remote): Call it.

2008-02-12  Jason Molenda  (

        * remote.c (init_all_packet_configs): Re-enable the
        software-breakpoint packet (Z0/z0) by default again.

2008-02-12  Jim Ingham  <>

        * remote.c (remote_create_inferior): Make sure the
        sprintf doesn't overflow the buffer.

2008-02-09  Jason Molenda  (

        * remote.c (init_all_packet_configs): Disable the
        software-breakpoint packet (Z0/z0) by default for now.

2008-02-08  Jim Ingham  <>

	* objc-lang.c (new_objc_runtime_find_impl): Set unwind_on_signal
	off while calling the function in the runtime.
	(find_implementation_from_class): Do more work to validate
	the input class before looking for the method.
2008-02-08  Jason Molenda  (

        * remote.c (dump_protocol_log): Quote nonprintable characters,
        omit the mi command sequence seperator char if there is no
        mi command sequence number.

2008-02-06  Jim Ingham  <>

	* valops.c (check_safe_call): Set stack_depth in the args.
2008-02-05  Jason Molenda  (

        * remote.c (send_remote_debug_filename): Removed.
        (set_remote_debug_filename_command): Same.
        (show_remote_debug_filename_command): Same.
        (_initialize_remote): Remove set remote logging-filename command.

2008-02-01  Jason Molenda  (

        * remote.c (add_packet_config_cmd): Shorten set/show description to
        fit within 80 chars better.
        (send_remote_debug_filename): New function to send a logging filename
        to debugserver to save its logging messages.
        (set_remote_debug_filename_command): Verify that the user-specified
        filename doesn't contain characters that cause the remote protocol
        to have problems; send it to the remote stub.   
        (show_remote_debug_filename_command): Show the current setting. 
        (remote_start_remote): Send the logging filename to the remote stub
        if it was specified pre-connection.
        (_initialize_remote): Add the 'set remote logging-filename' command.

2008-01-30  Jason Molenda  (

        * remote.c (remote_backtrace_self): Print a backtrace of gdb so we
        can understand what gdb was doing when it hit an error where printing
        contextual information is hard.
        (initalize_protocol_log, add_incoming_pkt_to_protocol_log,
        add_outgoing_pkt_to_protocol_log, dump_protocol_log,
        dump_packets_command): Maintain a ring buffer of all remote protocol
        packets so they can be displayed by hand or when an unrecoverable error
        (fromhex): On error, show gdb backtrace and remote packet logs.
        (remote_stop, putpkt_binary, getpkt_sane, remote_start_remote): Add
        packets to packet log ring buffer.
        (putpkt_binary): Remove extraneous 'break' which would prevent
        acks from being sent to remote stub.
        (_initialize_remote): Register "maintenance dump-packets" command.
        * remote.h (struct remote_stats): Add mi_token field to record the
        current mi token, if there is one.

2008-01-29  Jason Molenda  (

        * remote.c (send_remote_debugflags_pkt): New function to send
        debug flags to the remote stub via the QSetLogging packet.
        (set_remote_debugflags_command): Check that the debug flags look
        reasonable; send it to the remote stub if connected.
        (_initialize_remote): Add the set/show debug remoteflags cmds.
        Fixed lots of minor signed vs unsigned warnings to make the file
        mostly warning free.

2008-01-25  Caroline Tice  <>

	* varobj.c (varobj_update): Don't set varp->root->in_scope to 0
	if the type comes back unchanged; use new retval, -4, to indicate
	when a varobj has come back into scope.
	(value_of_root): If tmp_var indicates the varobj has come back
	into scope (from being out of scope), set type_changed to be
	* varobj.h (enum varobj_type_change):  Add new enum value, 

2008-01-24  Jim Ingham  <>

	* memattr.h: MEM_NONE - new def'n.
	* memattr.c (mem_command): Translate "none" to "MEM_NONE".
	(mem_info): Print MEM_NONE as "none".
	(_initialize_mem): Fix doc string to add "none" mode.
	* target.c (memory_xfer_partial): Return an error if we are
	in a MEM_NONE memory region.

2008-01-23  Jason Molenda  (

        * remote.c (set_max_remote_packet_size): Don't show the newly
        set max packet size; set commands shouldn't print anything
        unless there's an error.

2008-01-23  Jason Molenda  (

        * remote.c: Add no-ack mode to the remote protocol -- optionally
        stop ACKing packets and responses when we have a reliable  
        communication medium.
        (no_ack_mode): New global.
        (start_no_ack_mode): Ask the remote stub to start no-ack mode.
        (set_no_ack_mode_cmd, show_no_ack_mode_cmd): User interface.
        (remote_start_remote): Try starting no-ack mode if requested.
        (putpkt_binary): Change ifdef NO_ACKS to use global var instead.
        (getpkt_sane): Same.
        (_initialize_remote): Add set remote noack-mode set/show.
        * dcache.c (LINE_SIZE_POWER): Default to 6 for 64-byte bufferings.

2008-01-23  Jim Ingham  <>

	* remote.c (remote_create_inferior): Missing "*" operator.
2008-01-18  Greg Clayton  <>

        * remote.c (DEFAULT_MAX_REMOTE_PACKET_SIZE): Default to max remote
        packet size to 2000.
        (set_max_remote_packet_size): Allow max remote packet size to be
        reduced below the initial max value.

2008-01-18  Jason Molenda  (

        * remote.c (putpkt_binary): Account for packets in noack mode.

2008-01-18  Jim Ingham  <>

	Import Daniel's fix for PR remote/1966 (trust-readonly-sections
	doesn't work.)
        2006-08-15  Daniel Jacobowitz  <>

	    PR remote/1966
	        * dcache.c (dcache_write_line): Use target_write.
	        (dcache_read_line): Use target_read.
	        * mi/mi-main.c (mi_cmd_data_read_memory): Use target_read.
	        * symfile.c (struct load_section_data): Add new per-section
	        (load_progress): New function.
	        (load_section_callback): Pass load_progress to the new
	        * target.c (current_xfer_partial, memory_xfer_partial): New.
	        (target_xfer_partial): New prototype.
	        (target_xfer_memory, target_xfer_partial_p, xfer_using_stratum)
	        (do_xfer_memory, target_xfer_memory_partial)
	        (target_read_memory_partial, target_write_memory_partial): Delete.
	        (trust_readonly): Move higher in the file.
	        (update_current_target): Use current_xer_partial.
	        (target_xfer_partial): Use memory_xfer_partial.  Handle
	        TARGET_OBJECT_RAW_MEMORY specially.
	        (target_read_memory): Use target_read.
	        (target_write_memory): Use target_write.
	        (default_xfer_partial): Call to_xfer_partial directly.
	        (target_write_with_progress): New function, based on target_write.
	        (target_write): Call it.
	        * target.h (enum target_object): Add TARGET_OBJECT_RAW_MEMORY.
	        (target_write_with_progress): New prototype.
	        (do_xfer_memory, target_read_memory_partial)
	        (target_write_memory_partial): Delete prototypes.

	2006-08-15  Daniel Jacobowitz  <>

	        * remote.c (remote_write_bytes): Take a const buffer argument.
	        Do the checks from remote_xfer_memory.
	        (remote_read_bytes): Do the checks from remote_xfer_memory.
	        (remote_xfer_memory): Remove checks pushed into lower level
	        (remote_xfer_partial): Call remote_write_bytes and remote_read_bytes
	        * remote.h (remote_write_bytes): Update prototype.
	* mem-break.c (default_{insert,remove}_memory_breakpoint): Override
	trust-readonly-sections for these calls.
	* target.c (memory_xfer_partial): Use find_pc_in_ordered_sections to get the
	bfd_section containing the pc.  It is much faster than the unordered search
	through the target.to_sections.
2008-01-17  Jason Molenda  (

        * remote.c (putpkt_binary): Don't send ack/nack packets if 
        NO_ACKS is defined.
        (getpkt_sane): Same.
        (read_frame): Same.  Don't verify the checksum value.

2008-01-17  Jason Molenda  (

	* remote.c (remote_create_inferior): Fix printf specs for
	printing hex chars.

2008-01-16  Greg Clayton  <>

        * cli/cli-dump.c (g_max_binary_file_chunk): New global variable.
        (restore_binary_file): Segment binary downloads into chunks of
        (set_binary_buffer_size): New function.
        (show_binary_buffer_size): New function.
        (set_restore_cmd): New function.
        (show_restore_cmd): New function.
        (_initialize_cli_dump): Add "restore" as a new prefix for 
        set and show lists that call set_restore_cmd () and 
        show_restore_cmd (). Added "binary-buffer-size" as a child
        of the new "set/show restore" command.
        * remote.c (MIN_MAX_REMOTE_PACKET_SIZE): New define.
        (g_max_remote_packet_size): New global variable.
        (init_remote_state): Init remote_packet_size with current value
        of new G_MAX_REMOTE_PACKET_SIZE variable.
        (set_max_remote_packet_size): New function.
        (show_max_remote_packet_size): New function.
        (show_remote_cmd): Added a call to show_max_remote_packet_size ()
        (_initialize_remote): Added a new "set/show remote max-packet-size"

2008-01-16  Jason Molenda  (

	* objfiles.c (sanity_check_symtab_obsoleted_flag, 
	sanity_check_psymtab_obsoleted_flag): Remove.
	(symtab_get_first, symtab_get_next): Don't call them.
	(psymtab_get_first, psymtab_get_next): Don't call them.
	* objfiles.h (ALL_PSYMTABS_INCL_OBSOLETED): Remove.

2008-01-16  Jim Ingham  <>

	* fork-child.c: Move breakup_args from here to:
	* utils.c: here.
	* defs.h: declare breakup_args.
	* remote.c: Remove extern declaration for breakup_args.
2008-01-14  Jim Ingham  <>

	* fork-child.c (breakup_args): Make non-static.  Also return number
	of args.
	* remote.c (remote_start_remote): Handle case where the remote doesn't
	have a target when we connect.
	(remote_open_1) Ditto.
	(remote_create_inferior): New function.
	(remote_attach): New function.
	(remote_xfer_partial): If the remote side doesn't have a target
	yet, don't try to read its memory.
	(_initialize_remote): Add remote executable-directory set command.
2008-01-14  Jason Molenda  (

	* remote.c (total_packets_sent, total_packets_received): Track the
	total number of packets sent/received.
	(putpkt_binary, getpkt_sane): Update them.
	* remote.h: externs.

2008-01-11  Jason Molenda  (

	* remote.c (start_remote_timer, end_remote_timer): Functions to track
	how much time is spent waiting for the remote target to reply to pkts.
        (remote_start_remote): Track bytes sent/received.
	(remote_stop): Ditto.
	(readchar): Ditto.
	(putpkt_binary): Ditto.
	(getpkt_sane): Ditto.
	* remote.h: Definition of struct remote_stats.

2008-01-09  Jason Molenda  (

	* objfiles.c (find_objfile_by_name): Take a flag to indicate whether
	this is an exact-filename match or just matching the end of the 
	(make_cleanup_restrict_to_objfile_by_name): Call updated.
	* objfiles.h: Add prototype for find_objfile_by_name.
	* fix-and-continue.c (find_objfile_by_name): Remove in favor of the
	objfiles.c one.
	(fix_command_1): If the shlib filename looks doesn't look like an
	absolute file path, try doing a partial name match against the objfiles
	we have loaded.
	(fix_command_1, mark_previous_fixes_obsolete, get_fixed_file,
	do_final_fix_fixups, find_new_static_symbols, find_orig_static_symbols,
	find_and_parse_nonlazy_ptr_sect, build_list_of_objfiles_to_update,
	find_original_object_file, raise_objfile_load_level): Update call
	to find_objfile_by_name.

2008-01-08  Jim Ingham  <>

	* valops.c (value_cast_1): Handle the case where you are casting
	up or down the class hierarchy with a reference type.
2007-12-14  Jim Ingham  <>

	* serial.c (serial_open): Recognize the filedesc serial
	* config/powerpc/ Add remote-mobile.o.
	* config/i386/ Add remote-mobile.o.
2007-12-12  Caroline Tice  <>

	* dwarf2expr.c (exceptions.h): New include statement.
	(execute_stack_op):  Throw an error if the variable is
	uninitialized in the current location.
	* dwarf2loc.c (locexpr_describe_location): Add some local
	variables and initialize them, to enable a call to
	print_single_dwarf_location, to print location better; remove
	message that variable is too complex or has multiple locations.
	(print_single_dwarf_location): Annotate location with "[uninitialized]"
	if var is uninitialized in that location.

2007-12-10  Caroline Tice  <>

	* fork-child.c (startup_inferior): Don't attempt to resume the inferior
	if it has exited, say with an error.

2007-12-05  Jim Ingham  <>

	* config/{i386,powerpc}/ Remove -Wno-long-double from CFLAGS,
	it is no longer supported by gcc-4.2.

2007-12-05  Caroline Tice  <>

	* dwarf2read.c (struct inlined_call_record): Remove definition; move
	it to inlining.h and rename it dwarf_inlined_call_record; remove
	'next' field.
	(inlined_call_sites): Remove global variable.
	(dwarf2_add_to_list_of_inlined_calls):  Add objfile parameter; change
	inlined_call_record to dwarf_inlined_call_record; remove inltialization
	of 'next' field; insert new record into objfile list rather than global
	(read_inlined_subroutine_scope): Pass objfile to 
	(check_cu_functions): Change inlined_call_record to
	dwarf_inlined_call_record; search for call site info only in current 
	* inlining.c (inlined_subroutine_free_objfile_call_sites): New 
	* inlining.h (struct dwarf_inlined_call_record): New definition,
	moved and renamed from dwarf2read.c.
	(inlined_subroutine_free_objfile_call_sites): New extern declaration.
	* objfiles.c (free_objfile_internal): Call 
	inlined_subroutine_free_objfile_call_sites, if appropriate.
	* objfiles.h (struct objfile): Add new field, inlined_call_sites.

2007-12-04  Greg Clayton  <>

	* dwarf2read.c (translate_debug_map_address_with_tuple): New 
	(compare_translation_tuples_inclusive): New function.
	(translate_debug_map_address): Call new function
	(dwarf2_record_line): New function that correctly links DWARF 
	line tables when using debug maps.
	(dwarf_decode_lines): Call new dwarf2_record_line function to 
	recording line table entries.

2007-11-30  Caroline Tice  <>

	* parse.c (parse_exp_in_context):  Initialize innermost_block
	before call to parser.

2007-11-29  Jim Ingham  <>

	* varobj.c (free_variable): Free the varobj's value.

	* i386-tdep.c (i386_frame_cache): Raise the load level of the
	frame's pc before finding the current frame's function start.
2007-11-28  Caroline Tice  <>

	* dwarf2read.c (dwarf_decode_lines):  Don't add in baseaddr until
	after calls to translate_debug_map_address.

2007-11-15  Jason Molenda  (

	* linespec.c (symbols_found): Add a sanity check to get an error
	instead of a crash with a F&C symbol problem.

2007-11-15  Jason Molenda  (

	* i386-tdep.c (i386_analyze_frame_setup): Reduce instruction
	limit to 50 insns.  Enforce it for the register saves as well
	as the initial frame pointer setup.
	(i386_analyze_prologue): Omit calls to prologue-checker functions
	that never match anything on our platform.

2007-11-15  Caroline Tice  <>

        * infrun.c (step_info_function):  Check to see if inside
	a trampoline before updating ecs->stop_func_start.

2007-11-15  Jason Molenda  (

	* dwarf2read.c (translate_debug_map_address): Add comment about
	this issue.

2007-11-15  Caroline Tice  <>

        * dwarf2read.c (translate_debug_map_address) Comment out the
	code that caps the translation with pst->texthigh; it's not 
	quite right, and it causes lots of regression tests to fail.

2007-11-08  Greg Clayton  <>

	* dwarf2read.h (struct oso_final_addr_tuple): Changed 
	PST_FILENAME to a partial_symtab struct pointer named PST.
	* dwarf2read.c (compare_map_entries_final_addr_index): Added 
	secondary sort based on oso_low_addr for final addrs that aren't
	in the final image.
	(convert_oso_map_to_final_map): Initialize final_addr in all 
	tuples,	and store partial_symtab with translation map.
	(create_kext_addr_map): Ditto.
	(translate_debug_map_address): Make sure next FINAL_ADDR 
	is valid when we use it, and make sure *ADDR doesn't exceed
	the high text address of the corrseponding partial_symtab.
	(translate_common_symbol_debug_map_address): Access partial
	symtab filename using new PST member.
	(dwarf_decode_lines): Don't translate line table addresses 
	until they are about to be added so we can properly 
	determine if we are translating addresses as HIGHPC addresses.

2007-11-07  Jason Molenda  (

	* i386-tdep.c (i386_analyze_frame_setup): Uninit var usage fix.

2007-11-07  Jason Molenda  (

	* symtab.c (search_symbols): Don't match dyld_stub names for

2007-11-06  Greg Clayton  <>

       * dummy-frame.c (dummy_frame_push): Fixed a memory leak left
       over from an old merge.

2007-10-19  Jim Ingham  <>

	* objfiles.c (objfile_relocate): Don't use the bfd section index
	to index into the offsets.
2007-10-19  Caroline Tice  <>

	* linespec.c (remove_duplicate_symbols): New function.
	(add_matching_methods): Change type of sym_arr to symbol***,
	so results of re-alloc'ing get passed back to caller; call
	remove_duplicate_symbols; blank out new array entries after
	calling xrealloc.
	(add_constructors): Likewise.
	(find_method): Pass address of sym_arr to collect_methods.
	(collect_methods):  Change type of sym_arr to symbol***, so
	results of re-alloc'ing get passed back to caller; call
	remove_duplicate_symbols; blank out new array entries after
	calling xrealloc; pass address of sym_arr_size to find_methods.

2007-10-18  Caroline Tice  <>

	* linespec.c (find_methods):  Add two new parameters, 
	sym_arr_size and sym_arr_pos; pass them to calls to 
	add_matching_methods and add_constructors;  also pass entire
	sym_arr to those two function.  Pass the new parameters and the
	entire sym_arr to recursive call.
	(add_matching_methods): Add two new parameters, sym_arr_size and
	sym_arr_pos; replace calls to lookup_symbol with calls to 
	lookup_symbol_all; add all the found symbols to sym_arr, resizing it
	if necessary.
	(add_constructors): Likewise.
	(decode_compound):  Replace calls to lookup_symbol and symbol_found
	with lookup_symbol_all and symbols_found.
	(find_method): Add local var sym_arr_size to track size of sym_arr;
	use xcalloc instead of alloca, so that sym_arr can be resized if
	necessary.  Pass sym_arr_size to collect_methods.  Assign result of
	decode_line_2 to values rather than returning it directly; xfree 
	(collect_methods): Add new parameter sym_arr_size; replace calls to
	lookup_symbol with lookup_symbol_all; add all the found symbols to
	sym_arr, resizing it if necessary.  Pass sym_arr_size and sym_pos
	to call to find_methods.
	* symtab.c (lookup_symbol_all):  Remove duplicate symbols from
	sym_list before returning it.

2007-10-09  Caroline Tice  <>

	* inlining.c (temp_frame_stack): New data structure.
	(copy_temp_frame_stack_record): New function.
	(add_item_to_temp_frame_stack): New function.
	(update_tmp_frame_stack): New function.
	(tmp_frame_record_ranges_contains_pc): New function.
	(current_tmp_frame_stack_position): New function.
	(tmp_frame_in_inlined_function_call_p): New function.
	(inlined_function_initialize_call_stack):  Add code to initialize
	the temp_frame_stack.
	(reset_temp_frame_stack): New function.
	(get_inlined_call_stack_record_pc): Remove function.
	(current_inlined_subroutine_stack_symtab):  Modify to check the
	temp_frame_stack if the global_inlined_call_stack is blank.
	(current_inlined_subroutine_call_stack_start_pc): Likewise.
	(current_inlined_subroutine_call_stack_eof_pc): Likewise.
	(current_inlined_subroutine_call_stack_end_pc): Likewise.
	(current_inlined_subroutine_function_name): Likewise.
	(current_inlined_subroutine_calling_function_name): Likewise.
	(current_inlined_subroutine_call_site_line): Likewise.
	(inlined_frame_sniffer_helper): New function.
	(inlined_frame_sniffer):  Add code to get the PC from the
	next frame and to call inlined_frame_sniffer_helper if appropriate.
	(inlined_frame_this_id): Fix it up to get info from the 
	temp_frame_stack is the global_inlined_call_stack is blank.
	(print_inlined_frame):  Modify to get info from the temp_frame_stack
	if the global_inlined_call_stack is blank.
	(flush_inlined_subroutine_frames):  Blank out both the 
	stack_frame_created and the stack_frame_printed fields in both
	the global_inlined_call_stack and the temp_frame_stack.
	(current_inlined_bottom_call_site_line):  Get data from the
	temp_frame_stack if the global_inlined_call_stack is blank.
	(inlined_function_reset_frame_stack): New function.
	* inlining.h (inlined_function_reset_frame_stack): Add extern 
	(get_inlined_call_stack_record_pc): Remove extern declaration.	
	* stack.c (print_frame):  Add call to
	current_inlined_bottom_call_site_line if the current frame is normal 
	and the function it calls, next_frame, is inlined.
	(backtrace_command_1):  Remove all the special code for inlined 
	subroutines.  Add calls to inlined_function_reset_frame_stack
	before and after printing out the whole back trace.

2007-10-05  Jim Ingham  <>

	* symfile.c (reread_symbols): Try to avoid the abort
	in bfd_lookup_cache_worker when somebody's deleted an
	objfile out from under us.
2007-10-04  Caroline Tice  <>

        * linespec.c (decode_all_variables): Remove unused local variables.
	(symbols_found):  Manually determine and set the strings in the string
	array, canonical, instead of relying on call to build_canonical_line_spec.
	* symtab.h (lookup_minimal_symbol_all): Add extern declaration.

2007-10-03  Caroline Tice  <>

        * stack.c (print_frame):  Also set inside_inlined if the current frame
	is for an inlined subroutine (add test case to if-clause).

2007-10-03  Caroline Tice  <>

        * inlining.c (add_item_to_inlined_subroutine):  Move code that updates
        max_array_size fields  to right after the re-sizing code.
        * stack.c (print_frame):  Only set inside_inlined if the fi parameter
        matches the current frame.

2007-10-03  Jim Ingham  <>

	* varobj.c (varobj_pc_in_valid_block_p): If we are up on the
	stack, test pc -1 to catch the case where the return pc is out
	of the call pc's block.  Also use block_contains_pc so we work
	with blocks that have ranges.
2007-09-28  Jason Molenda  (

        * symfile.h: Add prototype for 

2007-09-28  Caroline Tice  (

        * inlining.c (add_item_to_inlined_subroutine_stack):  Fix off-by-one
        error when deciding whether or not to re-alloc the records array.

2007-09-26  Caroline Tice  (

	* infcmd.c (step_once): Move call to 
	step_into_current_inlined_subroutine, to prior to finding the sal.
	* inlining.c (print_inlined_frame):  Look for filename in 
	inlined call stack record before resorting the the sal.
	(inlined_function_find_first_line):  Add check to compare entry
	pc values.
	* symtab.c (find_pc_sect_line):  When setting final_val.line,
	set the appropriate symtab too.

2007-09-24  Caroline Tice  (

	* gdbthread.h (inlining.h): New include statement.
	(struct thread_info): Add new field, thread_inlined_call_stack.
	*infrun.c (restore_inferior_status): Add call to 
	* inlining.c (gdbthread.h): New include statement.
	(at_inlined_call_site_p): Remove unused variable, cur_pos;
	(save_thread_inlined_call_stack):  New function.
	(restore_thread_inlined_call_stack): New function.
	* thread.c (load_infrun_state): Add call to 
	(save_infrun_state): Add call to save_thread_inlined_call_stack.
	(switch_to_thread): Add calls to save_thread_inlined_call_stack and

2007-09-19  Caroline Tice  (

	* infcmd.c (step_once):  Remove func_sy, & func_name lookup code;
	call inlined_function_find_first_line to find first line of real code in
	* inlining.c (inlined_function_find_first_line): New function.
	* inlining.h (inlined_function_find_first_line): New extern decl.

2007-09-17  Caroline Tice  (

	* inlining.c (struct rb_tree_node_list): New struct.
	(rb_tree_find_all_matching_nodes): New function.
	(find_function_names_add_address_ranges):  Call 
	rb_tree_find_all_matching_nodes to traverse rb tree once, returning
	all potential matches, then search through list of potential
	matches for correct record. Replace calls to 
	rb_tree_find_node_all_keys and rb_tree_find_next_node.
	(inlined_function_add_function_names): Likewise.

2007-09-14  Caroline Tice  (

	* inlining.c (add_item_to_inlined_subroutine_stack):  Check to see if
	new item belongs at very bottom of stack & put it there if so.

2007-09-14  Greg Clayton (

	* Added configure features --disable-carbon-framework,
	--disable-debug-symbols-framework, and --disable-arch-for-exec.
	* configure: Regenerated.
	* Regenerated.
	* Always link to CoreFoundation as it is needed by plist

2007-09-12  Jim Ingham (

        * varobj.c (get_join_type): Follow possibly typedef'ed type to
        actual type before processing it.

2007-09-12  Jason Molenda  (

	* symfile.c (add_symbol_file_command): If the symbol file is a dSYM
	bundle, redirect to add-dsym.

2007-09-12  Caroline Tice  <>

        * inlining.c (at_inlined_call_site_p):  Remove code that attempted
        to detect when the first line the inferior stopped at, in an inlined
        subroutine, is beyond the official start of the inlined subroutine.

2007-09-08  Caroline Tice  <>

        * inlining.c (inlined_function_add_function_names):  Instead of
	sharing the ranges pointer, malloc new ranges records for the rb tree
	and copy the ranges contents into the new records.

2007-09-05  Caroline Tice  <>

	* inlining.c (update_inlined_data_addresses):  Change type for offset
	from 'int' to 'CORE_ADDR'.
	(inlined_subroutine_objfile_relocate):  Likewise.
	* inlining.h (struct rb_tree_node): Change type for key and third_key
	fields from 'long long' to 'CORE_ADDR'.

2007-09-04  Caroline Tice  <>

	* buildsym.c (record_line): Change 'fprintf's to 'fprintf_unfiltered's.
	* dwarf2read.c (ctype.h): Add new include statement.
	(read_inlined_subroutine_scope):  Remove unused variable ('c');
	(check_inlined_function_calls): Change 'fprintf' to 
	(rb_print_note): Change print format from '%d' to '%Ld', to match print

2007-08-31  Caroline Tice  <>

	* buildsym.c (inlining.h): New include statement.
	(record_line): Dump information about inlined line table entries, if
	dwarf2_debug_inlined_stepping is turned on.
	* dwarf2read.c (check_inlined_function_calls): Dump info about what
	was inlined into what, just before calling record_line, if 
	dwarf2_debug_inlined_stepping is turned on.
        * symtab.c (find_pc_sect_line): Free temp_list and re-initialize
        inlined_entries_found if temp_list->pc does not match best->pc
        or prev->pc; only allow 'prev' to be a non-NORMAL entry if
        prev->pc exactly matches the search pc, otherwise assign prev to
        the first NORMAL entry preceding it in the line table; initialize
        final_val to zeros & warn if does not get updated later.

2007-08-31  Jason Molenda  (

	* i386-tdep.c (i386_skip_prologue): Refine the prologue insn limit
	to 512 bytes instead of 4096 -- prologues aren't going to be more
	than 512 bytes into the function and disassembling 4k of insns
	takes a long time.

2007-08-29  Caroline Tice  <>

	* infcmd.c (step_once):  Add code to see if current line has
	any more code beyond the end of the inlined subroutine, and make
	sure 'next' steps over all of it.

2007-08-24  Jason Molenda  (

	* disasm.c (find_pc_offset): Avoid disassembling large regions of
	memory to find the 64 instructions surrounding the PC that the GUI 
	is requesting.

2007-08-24  Jason Molenda  (

	* symtab.c (find_pc_sect_line): Minor rearrangement of code to
	be a little more readable.  free entries in the temp_list that we

2007-08-24  Jim Ingham  <>

	* infcmd.c (finish_command): If there is no selected frame,
	finish out of the current frame.
	* symtab.c (lookup_block_symbol_all): The struct symbol_search's
	block field was getting set to a "struct block *" which is not
	what that field is supposed to hold.
	* symtab.h: Remove obsolete SYMBOL_OBJFILE macro.
2007-08-24  Caroline Tice  <>

        * symtab.c (find_pc_sect_line): Remove check that forced prev to be
        a NORMAL_LT_ENTRY before assigning to 'best'; allow change '>'
        to '>=' when comparing prev->pc to best->pc, when finding the NORMAL
        entry to assign to best from a list of entries with identical pc's.

2007-08-23  Caroline Tice  <>

	* dwarf2read.c (read_inlined_subroutine_scope):  Remove code that
	used DWARF lexical blocks to find address ranges of inlined

2007-08-21  Jason Molenda  (

	* defs.h: Update prototype for fix_command_1.
	* fix-and-continue.c (struct fixinfo): Remove object_filename.
	(fix_command): Ignore the object filename if was provided.
	(fix_command_1): Remove object filename handling.
	(enum ZLObjectFileResult, tell_zerolink, inferior_is_zerolinked_p):
	(free_half_finished_fixinfo): object_filename no longer used.

2007-08-21  Caroline Tice  <>

	* inlining.c (inlined_subroutine_objfile_relocate):  Use

2007-08-21  Caroline Tice  <>

	* infcmd.c (step_once): Only output "stepping over/into/to-beginning-of
	inlined subroutine" messages if dwarf2_debug_inlined_stepping is true.

2007-08-21  Caroline Tice  <>

	* inlining.c (inlined_function_address_ranges_properly_contained):  
	Remove 	declaration of unused variable, "all_fit".
	(inlined_subroutine_objfile_relocate):  Loop through all sections, 
	looking for section containing correct address range, rather than just
	assume its always the text section.

2007-08-20  Jason Molenda  (

	* prntcmd.c (address_info): Pass a function block into lookup_symbol,
	not whatever block we happen to be stopped in.

2007-08-20  Caroline Tice  <>

	* dwarf2read.c (check_inlined_function_calls) Determine current
	objfile and pass it to calls to inlined_function_add_function_names.
	* infcmd.c (step_once) Make sure 
	current_inlined_subroutine_function_name () is not null before
	attempting to do a lookup_symbol on it.
	* inlining.c (function_name_records): Remove global variable.
	(inlined_function_address_ranges_properly_contained): Remove all_fit 
	from for-condition; change < to <= when comparing start addresses.
	(find_function_names_and_address_ranges):  Add new parameter, objfile;
	use objfile->inlined_subroutine_data to lookup up function name 
	(add_item_to_inlined_subroutine_stack):  Make sure there is a 
	symbol table, get the objfile from the symbol table, and pass the
	objfile to find_function_names_and_address_ranges.
	(update_function_names_and_address_ranges): Delete function.
	(tree_fix_up_inlined_function_line_table_entries): Delete function.
	(fix_up_inlined_function_line_table_entries): Delete function.
	(inlined_function_add_function_names):  Add new parameter, objfile;
	look up for existing records in objfile->inlined_subroutine_data;
	add new records to objfile->inlined_subroutine_data.
	(check_for_additional_inlined_breakpoint_locations): Now that each
	objfile has its own inlined data, search through all the inlined
	data of all the objfiles for name matches, for setting breakpoints.
	(inlined_subroutine_free_objfile_data): New function.
	(update_inlined_data_addresses): New function.
	(inlined_subroutine_objfile_relocate): New function.
	* inlining.h (inlined_function_add_function_names):  Add objfile 
	parameter to extern declaration.
	(inlined_subroutine_free_objfile_data): New extern declaration.
	(inlined_subroutine_objfile_relocate): New extern declaration.
	* objfiles.c (free_objfile_internal):  Add call to 
	(objfile_relocate):  Add call to inlined_subroutine_objfile_relocate.
	* objfiles.h (inlining.h) New include statement.
	(struct objfile):  Add new field, inlined_subroutine_data.

2007-08-14  Jason Molenda  (

	* dwarf2loc.c (loclist_describe_location): Don't leak DWARF expression

2007-08-14  Jason Molenda  (

	* breakpoint.c (_initialize_breakpoint): Fix typeo in 
	watch/awatch/rwatch description texts.

2007-08-14  Jason Molenda  (

	* i386-tdep.c (i386_skip_prologue): Limit the prologue search to one
	page of memory if we can't find the bounds of the function.

2007-08-14  Caroline Tice  <>

	* dwarf2read.c (add_equiv_psym):  Fix some off-by-one array errors.

2007-08-14  Caroline Tice  <>

	* dictionary.c (iter_name_first_hashed):  Add check to see if there
	is a psym equivalence name that matches.
	(iter_name_next_hashed): Likewise.
	(iter_name_next_linear): Likewise.
	* dwarf2read.c (psym_equivalences): New global variable.
	(struct partial_die_info):  New field, equiv_name.
	(dwarf2_create_include_psymtab): Initialize new field.
	(dwarf2_build_psymtabs_hard):  Pass equiv_psyms argument to 
	scan_partial_symbols, and assign result to new field in partial symbol 
	(add_equiv_psym): New function.
	(scan_partial_symbols):  New parameter, equiv_psyms; call 
	add_equiv_psym if a subprogram partial die contains an equivalence 
	(add_partial_namespace):  Pass equiv_psyms to scan_partial_symbols.
	(read_partial_die): Check linkage name of subprogram die to see if 
	it's  a psym equivalence name; if so record it in equiv_name field
	in partial die and set global variable (psym_equivalences).
	* symtab.c (lookup_symbol_all):  Look up symbol in psymtabs if
	psym_equivalences is 1.
	(psym_name_match):  New function.
	(lookup_equiv_partial_symbol):  New function.
	(lookup_symbol_aux_psymtabs):  When looking for partial symbol, also
	check for psym equivalence matches.
	(lookup_block_symbol_all):  Add check to see if linkage name of symbol 
	is a  psym equivalence name.
	(lookup_block_symbol):	Likewise.
	* symtab.h (struct equiv_psym_list): New struct.
	(struct partial_symtab): Add new field, equiv_psyms.
	(psym_equivalences): Extern declaration for new global variable.
	(psym_name_match): Extern declaration for new function.

2007-08-07  Jason Molenda  (

	* inlining.c (in_inlined_function_call_p): Don't examine call stack
	records that we haven't stepped into, instead of recording them and
	then trying to elide them after the fact.

2007-08-07  Jim Ingham  <>

	* objc-lang.c (find_implementation_from_class): Abort the method
	lookup after objc_class_method_limit lookups.
	(_initialize_objc_language): Add set command for 
2007-08-03  Jason Molenda  (

	* dwarf2expr.c (execute_stack_op): Detect and work around bogus
	expression emitted by gcc-4.0.

2007-08-01  Jason Molenda  (

        * rs6000-tdep.c (rs6000_stab_reg_to_regnum): Recognize and map
        gcc 4.0's incorrect register numbering for AltiVec regs when 

2007-08-01  Jim Ingham  <>

	* objfiles.c (objfile_relocate): Relocate the new "end_pc"
	field in the linetable_items.
2007-07-30  Greg Clayton  <>

	* dbxread.c (dbx_symfile_read): Handle in memory shared cache symbol
	table reading.
	* objfiles.c (objfile_section_offset): Handle in memory shared cache
	section offsets correctly.

2007-07-31  Jim Ingham  <>

	* varobj.c (varobj_create): Suppress the warning when trying
	to make a varobj from a type.
	* linespec.c (minsyms_found): Use the correct index when
	adding equivalence elements to the "canonical" array.
	* breakpoint.c (do_enable_breakpoint): Change the bp_set_state
	when the breakpoint gets enabled.
2007-07-27  Jim Ingham (

	* breakpoint.c (remove_breakpoints): If we can't remove a breakpoint,
	issue a warning and continue to remove the other breakpoints.
	(tell_breakpoints_objfile_changed): Renamed to 
	tell_breakpoints_objfile_changed_internal, generalized to allow removed
	breakpoints to be marked as pending.
	(tell_breakpoints_objfile_changed): Old behavior.
	(tell_breakpoints_objfile_removed): New behavior - mark removed 
	breakpoints as pending.
	* breakpoint.h (tell_breakpoints_objfile_removed): Prototype.

2007-07-27  Caroline Tice  <>

        * infcmd.c (step_once): Add some tests to make sure stepping ranges is
	only set if stop_pc is actually in an inlined function; remove an
	assert that I discovered is not necessarily going to be true.

2007-07-25  Jim Ingham (

        * varobj.c (enum varobj_join_type): New enumeration to track how
        to build varobj paths between parents/children.
        (struct varobj): Add join_in_expr, elide_in_expr fields.
        (get_join_type): New func; logic from c_path_expr_of_child.
        (varobj_create): Initialize the join_in_expr field.
        (create_child): Set up the join_in_expr/elide_in_expr fields.
        (new_variable): Initialize new fields.
        (path_expr_of_variable): Use new fields.
        (c_path_expr_of_child): Ditto.
        (cplus_path_expr_of_child): Ditto.

2007-07-25  Jason Molenda  (

        * i386-tdep.c (i386_frame_this_id): If saved PC value for
        the frame we're creating an id for is 0x0 and it's not
        the 0th frame, we're past the end of the stack.
        * amd64-tdep.c (amd64_frame_this_id): Ditto.

2007-07-17  Jason Molenda  (, Jim Ingham (

	* dwarf2read.c (read_structure_type): In C++/ObjC++ translation units,
	try to determine if a class is an ObjC class or a C++ class and mark
	the results.
	* gdbtypes.h (enum runtime_type): New.
	(struct cplus_struct_type): New runtime_type field.
	* objc-exp.y: If in a C++/ObjC++ file and class is marked as being
	a C++ class, pus OP_THIS instead of OP_OBJC_SELF so we get the
	correct "this" vs. "self" name when we evaluate the expression.

2007-07-17  Caroline Tice  <>

	* dwarf2loc.c (print_single_dwarf_location):  Make sure results of
	SLEB 128 tranlations are written out as signed ints.

2007-07-10  Jim Ingham  <>

	* buildsym.c (finish_block): Expand the global block if one of
	the pending functions is outside its range rather than the other
	way round.
2007-07-10  Caroline Tice  <>

        * inlining.c (inlined_function_add_function_names):  Fix function 
	comments.  Also allow for nested inlined functions with completely 
	overlapping addresses (i.e. same start & end pc, but different
	call sites).

2007-07-10  Caroline Tice  <>

        * inlining.c (inlined_function_add_function_names):  Fix function 

2007-07-09  Caroline Tice  <>

        * dwarf2read.c (enum rb_tree_colors): Remove definition; move it to
        (struct rb_tree_node): Remove definition; move it to inlining.h
        (rb_tree_find_node):  Remove static declaration; remove 'static' from
        function definition.
        (rb_tree_insert): Likewise.
        (rb_tree_find_node_all_keys): New function.
        * inlining.c (struct record_list): Make 'record' field a pointer.
        (function_name_records):  Change type of global data structure from
        linked list of record_list structs to red-black tree.
        (rb_tree_find_next_node): New function.
        (add_to_list): New function.
        (search_tree_for_name): New function.
        (find_function_names_and_address_ranges):  Modify to use red-black
        tree functions to find correct records.
        (update_function_names_and_address_ranges):  Likewise.
        (tree_fix_up_inlined_function_line_table_entries): New function.
        (fix_up_inlined_function_line_table_entries):  Call new recursive
        function, tree_fix_up_inlined_function_line_table_entries, to
        traverse the red-black tree fixing up each record.
        (inlined_function_add_function_names):  Store and look up data in
        red-black tree rather than linked list.
        (check_for_additional_inlined_breakpoint_locations):  Use tree
        functions to look up function names in red-black tree instead of in
        linked list.
        * inlining.h (enum rb_tree_colors):  Definition moved here from
        (struct rb_tree_node): Definition moved here from dwarf2read.c
        (rb_tree_find_node): Add extern function declaration.
        (rb_tree_find_node_all_keys):  Add extern function declaration.
        (rb_tree_insert):  Add extern function declaration.

2007-07-06  Caroline Tice  <

	* dwarf2read.c (_initialize_dwarf2_read):   Change set-show variable from
	debug_inlined_stepping to inlined-stepping, and add it to the debug
	set/show list rather than to the global set/show list.  Also, change
	the global set/show variable from inlined_stepping to inlined-stepping, to
	be more consistent with gdb standards.

2007-07-05  Caroline Tice  <>

	* dwarf2read.c (dwarf2_debug_inlined_stepping):   New global variable.
	(_initialize_dwarf2_read): Add new set-show variable, 
	debug_inlined_stepping, which controls the new global variable 
	(rb_tree_remove_node):  Condition the calls to verify_rb_tree, inside
	gdb_assert statements, on dwarf2_debug_inlined_stepping.
	* inlining.h (dwarf2_debug_inlined_stepping): Add extern declaration 
	for new global variable.

2007-07-02  Jim Ingham  <>

	* linespec.c (decode_objc): Don't throw away section info when you
	do find_pc_function.
2007-06-29  Jason Molenda  (

	* amd64-tdep.c (amd64_register_type): Initialize amd64_sse_type here
	if it hasn't been already.  Use the build_builtin_type_vec128i_big
	function from i386-tdep.c.
	(swapped_regcache_raw_write_part, swapped_regcache_raw_read_part): New
	functions to switch the registers from the user's view of the bytes
	to the machine byte order for ABI purposes.
	(amd64_return_value): Use the new byte swapping calls when accessing
	the XMM regs.
	(amd64_push_arguments): Ditto.
	* i386-tdep.c (init_vector_type, build_builtin_type_vec128i_big): Move
	from here...
	* i386-amd64-shared-tdep.c (init_vector_type, 
	build_builtin_type_vec128i_big): To here.
	* i386-amd64-shared-tdep.h (build_builtin_type_vec128i_big): Prototype.

2007-06-28  Jason Molenda  (

	* symfile.c (check_bfd_for_matching_uuid): Fix "exec_bfd" vs "exec_bfd"

2007-06-26  Jim Ingham  <>

	* infcall.c (hand_function_call): Report the type of the function
	call's return value as the type the function is defined to have.
2007-06-25  Caroline Tice  <>

        * inlining.c (print_inlined_frame):  Make sure sal has a symtab before
        attempting to print the symtab->filename; otherwise get it from the
        inlined call stack record.

2007-06-25  Caroline Tice  <>

	* breakpoint.c (set_raw_breakpoint): Initialize new field, 
	(delete_breakpoint): Free new field, bp_objfile_name.
	(breakpoint_re_set_one):  If bp_objfile_name is set, use that to narrow
	the search as to where to re-set the breakpoint.
	(tell_breakpoint_objfile_changed):  Set bp_objfile_name before setting 
	bp_objfile to NULL.
	* breakpoint.h (struct breakpoint): Add new field, bp_objfile_name.
	* minsyms.c (lookup_minimal_symbol_all):  Don't stop looping as soon 
	as a symbol is found; loop through all objfiles no matter what.
	* objfiles.c (find_objfile_by_name):  New function.
	(make_cleanup_restrict_to_objfile_by_name): New function.
	* objfiles.h (make_cleanup_restrict_to_objfile_by_name): Externally 
	visible declaration of new function.

2007-06-22  Jason Molenda  (

	* dwarf2loc.c (find_location_expression): Add in the base_offset
	(the slide of the dylib, if any) correctly.
	(loclist_describe_location): Ditto.

2007-06-22  Greg Clayton	<>

	* dwarf2read.c (dwarf_decode_lines): Deal with missing end
	sequence without crashing.

2007-06-22  Jason Molenda  (

	* dwarf2read.c (set_cu_language): Recognize DW_LANG_Pascal83.
	Patch from Jonas Maebe.

2007-06-22  Jason Molenda  (

	* dwarf2loc.c (loclist_describe_location): Reorder the printing
	a bit so the address ranges are primary and the locations are

2007-06-22  Jason Molenda  (

        * dwarf2read.c (struct comp_unit_head): Rename 'base_address'
        to 'base_address_untranslated' to make its value clear.
        (free_address_map): Remove.
        (process_full_comp_unit): Don't translate the compile unit
        start addr.
        (dwarf2_get_pc_bounds): Return the lowest & highest addresses
        seen when parsing a DW_AT_ranges list instead of returning
        the low/high value of the first element in the range list.
        Update to use an untranslated compile_unit base address.
        (dwarf2_symbol_mark_computed): Update the base_address variable
        * dwarf2loc.h (struct dwarf2_loclist_baton): Rename 'base_address'
        to 'base_address_untranslated' to make its value clear.
        * dwarf2loc.c (find_location_expression): Change the address
        computations to take into account the compile_unit's base address 
        value being an untranslated address for non-dSYM uses.
        (print_single_dwarf_location): Ditto.  Clean up printings to not leak
        memory and work correctly for 64-bit values.
        (dwarf_expr_read_reg): Remove unused variables.
        (loclist_describe_location): Mirror updates to find_location_expression
        to keep these two routines in sync.

2007-06-22  Jim Ingham  <>

	* infcall.c (get_hand_call_ptid, do_reset_hand_call_ptid):
	New functions.
	(hand_function_call): Set the hand_call_ptid.
	* infrun.c (struct inferior_status): Add a field for the
	stored inferior_ptid.
	(save_inferior_status): Save off same.
	(restore_inferior_status): Restore same.
2007-06-21  Greg Clayton  <>

	* Link test for HAVE_64_BIT_STACK_LOGGING
	*, configure: Regenerated.

2007-06-19  Greg Clayton  <>

	* dbxread.c (dbx_psymtab_to_symtab_1): Emit warning instead
	of error when we can't open OSO.
	* symtab.c (find_pc_sect_symtab): Only warn about pc being in
	psymtab yet not in symtab when we do not have an OSO.

2007-06-18  Jim Ingham  <>

	* (symfile.c) find_separate_debug_file: Add an override so we can 
	slip the objfile adding code a dSYM file behind our own backs.
	(add_dsym_command): New function.
	(_initialize_symfile): Register add-dsym command.
2007-06-18  Jason Molenda  (

	* dbxread.c (record_minimal_symbol): Don't assume that static symbol
	names are at least eight chars long.

2007-06-07  Jason Molenda  (

	* dwarf2read.c (create_kext_addr_map): Initialize new address
	map structure's values.
	(dwarf2_kext_psymtab_to_symtab): Don't free address map.  We'll
	use it to translate location expression addresses on-demand later on.

2006-06-07  Caroline Tice  <>

        * gdbthread.h (struct thread_info): New field, stepping_ranges.
        (save_infrun_state): New parameter, stepping_ranges.
        (load_infrun_state): New parameter, stepping_ranges.
        * infcmd.c (finishing_inlined_subroutine):  New global variable.
        (stepping_ranges): New global variable.
        (step_once):  Remove some unused variables; initialize stepping_ranges
        when stepping over an inlined subroutine.
        (finish_inlined_subroutine_command_continuation): New function.
        (finish_inlined_subroutine_command): New function.
        (finish_command):  Remove the old code that was added for finishing
        out of inlined subroutines; make it call 
        finish_inlined_subroutine_command instead.
        (registers_info): Comment out unsed variables, to eliminate warning.
        * infrun.c (follow_exec): Initialize finishing_inlined_subroutine and
        stepping_ranges; add comments.
        (clear_proceed_status):  Likewise.
        (context_switch): Add stepping_ranges as an argument to
        save_infrun_state and load_infrun_state.
        (handle_inferior_event): When checking to see if stop_pc is
        between step_range_start & step_range end, also call 
        is_within_stepping_ranges, to see if it falls within any of the
        valid stepping ranges; when checking to see if stop_pc is equal
        to step_range_end, also call is_at_stepping_ranges_end to see if
        it is equal to the end of any valid stepping range.
        (print_stop_reason):  If stopped at end of stepping range, check to
        see if user was finishing out of inlined subroutine, and if so
        us EXEC_ASYNC_FUNCTION_FINISHED for reason, rather than
        EXEC_ASYNC_END_STEPPING_RANGE; also, if finishing out of inlined
        subroutine, make sure source_flag is SRC_AND_LOC.
        (struct inferior_status): New field, stepping_ranges.
        (save_inferior_status):  Save stepping_ranges.
        (restore_inferior_status): Restore stepping_ranges.
        * inlining.c (is_within_stepping_ranges): New function.
        (is_at_stepping_ranges_end): New function.
        * inlining.h  (stepping_ranges): Declaration for new global variable.
        (finishing_inlined_subroutine): Likewise.
        (is_within_stepping_ranges): Extern function declaration.
        (is_at_stepping_ranges_end): Likewise.
        * thread.c (load_infrun_state): New parameter, stepping_ranges; load
        saved value into new parameter.
        (save_infrun_state): New parameter, stepping_ranges; save the new
        parameter in the new field.

2007-06-07  Jason Molenda  (

	* dwarf2read.c (translate_debug_map_address): Add a check that there
	are translation entries before we try to translate the address.
	(translate_common_symbol_debug_map_address): Ditto.

2007-06-07  Jason Molenda  (

	* symfile.c (add_kext_command): Warn user if .sym file architecture
	doesn't match gdb's architecture.

2007-06-06  Jason Molenda  (

	* dwarf2read.c (free_address_map): Set freed tuples/final_addr_index
	to NULL after they have been xfreed.
	(compare_translation_final_addr): Check the array index passed in to
	verify that it is within the bounds of the array.  Should always be
	(translate_debug_map_address): Check the returned array index to
	verify that it is within the bounds of the array.  Should always be

2007-06-06  Jason Molenda  (

        * dwarf2read.c (compare_map_entries_final_addr_index): Use CORE_ADDRs
        to store addresses instead of ints.

2007-06-05  Jim Ingham  <>

	* linespec.c (decode_line_1): Handle the case where a
	filename has a parenthesis in it.
2007-06-04  Jim Ingham  <>

	* symtab.c (lookup_symtab_all): Remove unnecessary check for

	* symfile.c (check_for_matching_uuid): Delete in favor of:
	(check_bfd_for_matching_uuid): New function.
	(symbol_file_add_with_addrs_or_offsets_using_objfile): Check the
	bfd's for the matching UUID BEFORE making the objfile.
	(reread_separate_symbols): Ditto.
	* inf-loop.c (inferior_event_handler): Switch to TRY_CATCH.  Print
	an error message if the fetch_inferior_event didn't work.
2007-06-01  Jason Molenda  (

	* objc-lang.c (find_implementation_from_class): Reapply changes.

2007-06-01  Jason Molenda  (

	* objc-lang.c (find_implementation_from_class): Revert previous
	change to isolate Caroline's dwarf2read change for a minute.

2007-05-31  Jason Molenda  (

	* objc-lang.c (find_implementation_from_class): Print the
	class name we're looking up if 'verbose' is enabled.

2007-05-31  Caroline Tice  <>

	* dwarf2read.c (new_symbol):  Do not mark a variable as
	optimized away (LOC_OPTIMIZED_OUT) even if it does not have
	a location attribute, if it has DW_AT_declaration.

2007-05-23  Caroline Tice  <>

	* ax-gdb.c (agent_command): Initialize innermost_block before
	calling parse_expression.
	* eval.c (parse_and_eval_address): Move assignments to expr and
	old_chain out of declarations; initialize innermost_block before
	calling parse_expression.
	(parse_and_eval_address_1): Likewise.
	(parse_ande_eval_long): Likewise. 
	(parse_and_eval): Likewise.
	(parse_to_comma_and_eval): Move assignments to expr and old_chain
	out of declarations. Initialize innermost_block before calling
	(parse_and_eval_type): Initialize innermost_block before calling
	* objc-lang.c (print_object_command): Move assignments to expr and
	old_chain out of declarations; initialize innermost_block before
	calling parse_expression.
	* printcmd.c (print_command_1): Initialize innermost_block before
	calling parse_expression.
	(output_command): Likewise.
	(set_command):  Move assignments to expr and old_chain out of
	declarations; initialize innermost_block before calling
	(x_command): Initialize innermost_block before calling 
	* typeprint.c (whatis_exp):  Likewise.
	(ptype_command): Likewise.
	(maintenance_print_type): Likewise.

2007-05-23  Jason Molenda  (

	* dwarf2read.c: Rename final_addr_indexes to final_addr_index.
	Use 'int' as the type of the index values instead of uint32_t.
	(create_kext_addr_map): Create a final_addr_index array.
	Initialize the pst_filename member as well.
	* dwarf2read.h: Rename final_addr_indexes to final_addr_index.
	It is now an array of int instead of uint32_t's.

	* dbxread.c (clear_containing_archive_cache): Comment touchup.
	* inlining.h: Include frame.h to pick up enum print_what defn.

2007-05-23  Greg Clayton  <>

	* buildsym.c (finish_block): If we have block ranges, fix the 
	start and end address to be the min and max of the ranges.
	* objfiles.c (objfile_relocate): Always relocate the block
	start and end even if we have ranges so they don't get out of
	date when something is slid.

2007-05-23  Jim Ingham  <>

	* objfiles.h: Added a comment.
2007-05-23  Caroline Tice  <>

	* inlining.c (print_inlined_frame): Add check for null function names,
	to prevent gdb crashing.

2007-05-21  Jim Ingham  <>

	* varobj.c (cplus_value_of_variable): References to scalars 
	should fall through to c_value_of_variable.

2007-05-16  Jim Ingham  <>

	* objc-exp.y (yylex): Initialize the "first char" variable.
2007-05-15  Derek Kumar <>

	* config/i386/ Add darwin-kernel.o
	* config/powerpc/ Add darwin-kernel.o

2007-05-14  Jim Ingham  <>

	* config/i386/nm-i386-macosx.h: undef the watchpoint functions
	that were defined in nm-i386.h.  We'll put them in the target
	vector where they belong later.
2007-05-14  Jason Molenda  (

	* fix-and-continue.c (get_dlerror_message): New function.
	(get_fixed_file): Call get_dlerror_message to get the error string.
	(load_fixed_objfile): Switch over to using dlopen to load the bundle.

2007-05-14  Jason Molenda  (

	* fix-and-continue.c (get_fixed_file): Correct dlerror() usage.
	(encode_lo16, encode_hi16, decode_lohi16, updatedatum): ifdef out
	on non-PPC systems to suppress unused func warnings.

2007-05-11  Jason Molenda  (

	* fix-and-continue.c (get_fixed_file): Correct symbol name for dlerror.
	Check that the dlerror string is 7-bit clean before printing it; it may
	just contain uninitialized data.
	(do_final_fix_fixups_static_syms): Make sure the symbol has a type
	defined before dereferencing it.

2007-05-11  Jason Molenda  (

	* fix-and-continue.c (redirect_statics): Use the minimal symbol's
	address; we may pick up a sym that has been optimized away.

2007-05-11  Jim Ingham  <>

	* Add codesign-gdb rule.
2007-05-10  Jason Molenda  (

	* fix-and-continue.c (get_fixed_file): Try to print out dyld's dlerror
	string when there is an error loading a bundle.
	(redirect_statics): Check that both the original and new symbol have
	an address not equal to zero before redirecting from/to them.
	(find_and_parse_nonlazy_ptr_sect): Don't assume addresses will map
	to a section - if we get a bogus address it may map to nothing.

2007-05-10  Jason Molenda  (

	* Info.plist: Add the SecTaskAccess key.

2007-05-10  Jason Molenda  (

	* fix-and-continue.c (check_restriction_cxx_zerolink): Remove.
	(do_pre_load_checks): Don't call check_restriction_cxx_zerolink.

2007-05-09  Jim Ingham  <>

	* gdbthread.h: Changed a comment on gdb_suspend_count.
2007-05-07  Caroline Tice  <>

	* infrun.c (handle_inferior_event):  Add clause to handle
	'next'ing over an inlined subroutine, where the step_end_range
	instruction is hopped over (inferior doesn't stop there), and
	the stop_pc is actually on the beginning of ANOTHER inlined
	* inlining.c (inlined_function_address_ranges_properly_contained):
	Fix bad assumption about how inlined subroutine address ranges
	must fit into calling routine's ranges.
	* inlining.h (print_inlined_frame): Add extern function declaration.
	* stack.c (print_frame_info): Add code to fix sal passed to
	identify_source_line when user is at an inlined subroutine call
	site and the annotation level is greater than 0.
	(frame_info): Change type of 'optimized' from int to enum opt_state.
	(print_frame_label_vars): Fix typo for type of containing_block;
	add cast to call to 'contained_in', to eliminate warning.

2007-05-07  Jim Ingham  <>

	* defs.h: Declare the hand_call_function_hook.
	* top.c: Define the hand_call_function_hook.
	* infcall.c (hand_function_call): Call the new hook.
2007-05-03  Jim Ingham  <>

	* infcall.c (hand_function_call): Add symbol name to "Unable to
	call..." output, and use paddr_nz for the address.

2007-05-01  Caroline Tice  <>

	* infcmd.c (step_once): Get inlined stack pos from 
	at_inlined_call_site_pc; use start_pc of current inlined subroutine
	to get sal for setting step range when stepping over inlined
	* inlining.h (struct inlined_function_data):  Add new field,
	last_inlined_pc, to global_inlined_call_stack, to keep track of
	the last stop_pc that was inside an inlined subroutine.
	* inlining.c (inlined_function_initialize_call_stack): Initialize
	new field, last_inlined_pc.
	(reset_saved_call_stack): Likewise.
	(inlined_function_reinitialize_call_stack): Likewise.
	(inlined_function_update_call_stack): Add code to update last_pc and
	last_inlined_pc fields appropriately;  if stop_pc is the first pc
	within the current inlined subroutine, set stepped_into for the
	subroutine to false.
	(at_inlined_call_site_p):  Modify to return stack position for
	inlined call site record; also deal with situation where first
	instruction in the inlined subroutine that the inferior stops at
	is beyond the first instruction of inlining.
	(inlined_subroutine_restore_after_dummy_call): Copy new field,
	last_inlined_pc, appropriately.
	(inlined_subroutine_save_before_dummy_call): Likewise.
	* stack.c (print_frame_info): If printing the call site of an
	inlined subroutine, make sure we use the correct symtab.

2007-04-30  Jim Ingham  <>

	* dbxread.c (add_to_containing_archive_cache): Don't use a fixed
	size cache, since we can't do the right thing with the ones we
	drop off the end.  Use a growable cache instead.

	* valops.c (do_check_is_thread_unsafe): Moved here from 
	(safe_check_is_thread_unsafe): Ditto.
	(check_safe_call): Ditto.
	* value.h: Declare check_safe_call.

2007-04-26  Jim Ingham  <>

	* c-exp.y (parse_number): Don't return an error if we scanned
	both the number & the modifier character.
	* objc-exp.y (parse_number): Sync up with the c-exp.y version,
	there were inessential differences.
	(yylex): Replace the number handling portion with the c-exp.y 
2007-04-25  Greg Clayton  <>

	* dwarf2read.c (compare_map_entries_final_addr_indexes): New 
	(convert_oso_map_to_final_map): Initialize and sort final_addr_indexes
	member of the oso_to_final_addr_map structure.
	(create_kext_addr_map): Use safer objfile_text_section_offset function
	in place of ANOFFSET macro.
	(free_address_map): Free memory for final_addr_indexes member of
	struct oso_to_final_addr_map.
	(compare_translation_final_addr): New function for binary searches
	by final address.
	(final_addr_key): New structure for compare_translation_final_addr.
	(translate_debug_map_address): When we are fixing a HIGHPC address,
	check to see if we need to trim the end address.
	* dwarf2read.h (struct oso_to_final_addr_map): New member 
	final_addr_indexes with lots of comments.

2007-04-25  Jim Ingham  <>

	* dwarf2read.c (read_func_scope): ObjC++ should be handled the
	same as C++ here.
	(read_structure_type): Ditto.
	(read_subroutine_type): Ditto.
	(new_sybol): Ditto.
	(determine_prefix): Ditto.
2007-04-24  Greg Clayton  <>

	* objfiles.c (objfile_add_to_ordered_sections): Use segment_mark
	member in 'struct bfd_section' instead of counting dots in section
	* symtab.c (fixup_section): Compute SECTION_OFFSETS index for 
	statics correctly and use safer objfile_section_offset function
	in place of ANOFFSET macro that doesn't check bounds. 

2007-04-24  Jim Ingham  <>

	* breakpoint.c (set_raw_breakpoint): Add pending_p argument,
	and don't try to get the bp_objfile is the breakpoint is pending.
	(create_internal_breakpoint): Pass 0 for pending_p.
	(solib_load_unload_1): Ditto
	(create_fork_vfork_event_catchpoint): Ditto
	(create_exec_event_catchpoint): Ditto
	(set_momentary_breakpoint): Ditto
	(watch_command_1): Ditto
	(create_exception_catchpoint): Ditto
	(set_breakpoint_sal): Ditto
	(create_breakpoints): Pass appropriate pending_p value.
2007-04-19  Caroline Tice <>

	* value.h (enum opt_state):  Move this declaration to be before the include
	statement for frame.h.

2007-04-19  Jim Ingham  <>

	* dbxread.c (open_bfd_from_oso): Fix thinko from rearranging the
	read fat archive section.
2007-04-18  Greg Clayton  (

	* coff-pe-read.c (read_pe_exported_syms): Use new objfile section 
	offset functions.
	* coffread.c (coff_symtab_read): Ditto.
	(enter_linenos): Ditto.
	(process_coff_symbol): Ditto.
	* dbxread.c (read_dbx_dynamic_symtab): Ditto.
	(read_dbx_symtab): Ditto.
	(read_ofile_symtab_from_oso): Ditto.
	* dwarf2-frame.c (dwarf2_frame_find_fde): Ditto.
	* dwarf2loc.c (find_location_expression): Ditto.
	(loclist_describe_location): Ditto.
	* dwarf2read.c (dwarf2_build_psymtabs_hard): Ditto.
	(add_partial_symbol): Ditto.
	(convert_oso_map_to_final_map): Ditto.
	(convert_oso_map_to_final_map): Ditto.
	(process_full_comp_unit): Ditto.
	(read_file_scope): Ditto.
	(read_inlined_subroutine_scope): Ditto.
	(read_func_scope): Ditto.
	(read_lexical_block_scope): Ditto.
	(dwarf_decode_line_header): Ditto.
	(dwarf_decode_lines): Ditto.
	(var_decode_location): Ditto.
	(new_symbol): Ditto.
	* elfread.c (elf_symtab_read): Ditto.
	* hppa-tdep.c (read_unwind_info): Ditto.
	* hppabsd-tdep.c (hppabsd_find_global_pointer): Ditto.
	* hpread.c (scan_procs):  Ditto.
	(hpread_build_psymtabs): Ditto.
	(hpread_start_psymtab): Ditto.
	* ia64-tdep.c (ia64_find_unwind_table): Ditto.
	* mips-mdebug-tdep.c (non_heuristic_proc_desc): Ditto.
	(non_heuristic_proc_desc): Ditto.
	* nlmread.c (nlm_symfile_read): Ditto.
	* objfiles.c (executable_objfile): New function.
	(separate_debug_objfile): New function.
	(objfile_section_offset): New function.
	(objfile_text_section_offset): New function.
	(objfile_data_section_offset): New function.
	(objfile_rodata_section_offset): New function.
	(objfile_bss_section_offset): New function.
	* objfiles.h (SECT_OFF_DATA): Always use executable objfile
	when tracking down section indexes.
	(SECT_OFF_TEXT): Ditto.
	(SECT_OFF_BSS): Ditto.
	(objfile_section_offset): Added prototype.
	(objfile_text_section_offset): Added prototype.
	(objfile_data_section_offset): Added prototype.
	(objfile_rodata_section_offset): Added prototype.
	(objfile_bss_section_offset): Added prototype.
	* symfile.c (syms_from_objfile): Use new objfile section offset 
	* symtab.c (fixup_section): Always use the executable when finding 
	section information, not the dSYM.
	* symtab.h (objfile_section_offset): Added prototype.

2007-04-18  Jim Ingham  <>

	* fork-child.c (fork_inferior): Remove debug printf.
2007-04-17  Jim Ingham  <>

	* Do HAVE_64_BIT_MACH_EXCEPTIONS through config.h.
	* config/powerpc/ Fix call to mig so it doesn't need
	* config/i386/ Ditto.
	* fork-child.c (fork_inferior): Use "arch" instead of just exec, and
	use "posix_spawn" instead of execvp so we can set which side of a
	Universal file runs.
	(startup_inferior): Remove Apple Local patch that nixed the value
	passed in ntraps.
	* main.c (captured_main): Add an option for --arch.
	* osabi.c (gdbarch_lookup_osabi_from_bfd): New function, does
	NOT return the current_gdbarch if user selected.
	(gdbarch_lookup_osabi): Use gdbarch_lookup_osabi_from_bfd.
	(set_osabi_from_string): New function.
	* osabi.h: Declare set_osabi_from_string and 
	* symfile.c (open_bfd_matching_arch): Use gdbarch_lookup_osabi_from_bfd.
	* arch-utils.c (set_architecture_from_string): New function.
	(gdbarch_from_bfd): Remove unused variables.
	(set_gdbarch_from_file): Error if the file doesn't match the current
	gdbarch - but only if the user selected an architecture.
	(gdbarch_info_fill): If the info passed in has a bfd, use that instead
	of the default gdbarch to get the arch_info.
	* arch-utils.h: Declare set_architecture_from_string.

	* buildsym.h: Forward declare enum line_table_entry_type.

	* linespec.c (decode_line_1): Zero out the final_result.sals before
	setting the fields we know about.
2007-04-12  Caroline Tice  <>

	* alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Change type
	of "optmizedp" from int to enum opt_state; assign it "opt_okay"
	instead of 0.
	* alpha-tdep.c (alpha_sigtramp_frame_prev_register): Likewise.
	(alpha_heuristic_frame_prev_register):  Likewise.
	* amd64-tdep.c (amd64_frame_prev_register): Likewise.
	(amd64_sigtramp_frame_prev_register): Change type of "optimizedp" from
	int to enum opt_state.
	* avr-tdep.c (avr_frame_prev_register): Change type of "optimizedp"
	from int to enum opt_state; assign it "opt_okay" instead of 0.
	* cris-tdep.c (cris_frame_prev_register): Change type of "optimizedp" 
	from int to enum opt_state.
	* dwarf2-frame.c (dwarf2_frame_prev_register): Change type of 
	"optimizedp" from int to enum opt_state; assign it appropriate new
	state values.
	* dwarf2expr.c (execute_stack_op): Add default case to switch statement
	to eliminate warning.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Use 'opt_away' instead of '1'
	for variables that are missing a location description.
	(loclist_read_variable): Use 'opt_evicted' instead of '1' for
	variables whose location lists don't have an entry for the current
	* dwarf2read.c (new_symbol):  Add else clause to add symbols that
	are missing locations to the symbol lists.
	* findvar.c (value_of_register): Change type of "optim" from int to
	enum opt_state.
	(read_var_value): For cases LOC_OPTIMIZED_OUT, pass 'opt_away' to
	set_value_optimized_out (instead of '1').
	* frame.c (frame_register_unwind): Change type of "optimizedp" from
	int to enum opt_state.
	(frame_unwind_register): Change type of "optimized" from int to
	enum opt_state.
	* frame.h (value.h): New include statement.
	(frame_register_unwind): Change type of "optimizedp" from int to
	enum opt_state.
	(frame_register): Likewise.
	* frv-linux-tdep.c (frv_linux_sigtramp_frame_prev_register): Likewise
	* h8300-tdep.c (h8300_frame_pref_register): Likewise; also assign 
	'opt_okay' rather than '0'.
	* hppa-hpux-tdep.c (hppa-hpux_sigtramp_frame_prev_register): Change
	type of "optimizedp" from int to enum opt_state.
	* hppa-linux-tdep.c (hppa_linux_sigtramp_frame_prev_register): Likewise
	* hppa-tdep.c (value.h): New include statement.
	(hppa_frame_prev_register): Change type of "optimizedp" from int to
	enum opt_state.
	(hppa_fallback_frame_prev_register): Likewise.
	(hppa_stub_frame_prev_register): Likewise.
	(hppa_frame_prev_register_helper): Likewise; also assign "opt_other"
	rather than '0'.
	* hppa-tdep.h (hppa_frame_prev_register_helper): Change type of
	"optimizedp" from int to enum opt_state.
	* i386-tdep.c (i386_frame_prev_register): Likewise; also assign
	opt_okay instead of 0.
	(i386_sigtramp_frame_prev_register): Change type of "optimizedp" from 
	int to enum opt_state.
	* ia64-tdep.c (ia64_frame_prev_register): Likewise; also assign
	opt_okay instead of 0.
	(ia64_sigtramp_frame_prev_register): Likewise.
	(ia64_libunwind_frame_prev_register):  Change type of "optimizedp" 
	from int to enum opt_state.
	(ia64_libunwind_sigtramp_frame_prev_register): Likewise.
	* iq2000-tdep.c (iq2000_frame_prev_register): Likewise; also assign
	opt_okay instead of 0.
	* libunwind-frame.c (libunwind_frame_prev_register):  Change type of
	"optimizedp" from int to enum opt_state; assign appropriate new
	state values.
	* libunwind-frame.h (libunwind_frame_prev_register):  Change type of
	"optimizedp" from int to enum opt_state.
	* m32r-linux-tdep.c (m32r_linux_sigtramp_frame_prev_register): Likewise
	* m32r-tdep.c (m32r_frame_prev_register): Likewise.
	* m68hc11-tdep.c (m68hc11_frame_prev_register): Likewise.
	* m68k-tdep.c (m68k_frame_prev_register): Likewise; also assign
	opt_okay instead of 0.
	* m68klinux-tdep.c (m68k_linux_sigtramp_frame_prev_register):  Change 
	type of "optimizedp" from int to enum opt_state.
	* m88k-tdep.c (m88k_frame_prev_register): Likewise.
	* mips-mdebug-tdep.c (mips_mdebug_frame_prev_register):  Change type of
	"optimizedp" from int to enum opt_state.
	* mips-tdep.c (mips_insn16_frame_prev_register): Likewise.
	(mips_insn32_frame_prev_register): Likewise.
	(mips_stub_frame_prev_register): Likewise.
	* mn10300-tdep.c (mn10300_frame_prev_register): Likewise.
	* rs6000-tdep.c (fs6000_frame_prev_resgister): Likewise.
	* s390-tdep.c (s390_frame_prev_register): Likewise.
	(s390_stub_frame_prev_register): Likewise.
	(s390_sigtramp_frame_prev_register): Likewise.
	* sh-tdep.c (sh_frame_prev_register): Likewise; also assign opt_okay
	instead of 0.
	* sh64-tdep.c (sh64_frame_prev_register): Likewise.
	* sparc_sol2-tdep.c (sparc32_sol2_sigtramp_frame_prev_register):  
	Change type of "optimizedp" from int to enum opt_state.
	* sparc-tdep.c (sparc32_frame_prev_register): Likewise; also assign
	opt_okay instead of 0. 
	* sparc64_sol2-tdep.c (sparc64_sol2_sigtramp_frame_prev_register):  
	Change type of "optimizedp" from int to enum opt_state.
	* sparc64-tdep.c (sparc64_frame_prev_register): Likewise; also assign
	opt_okay instead of 0.
	* sparc64fbsd-tdep.c (sparc64fbsd_sigtramp_frame_prev_register):
	 Change type of "optimizedp" from int to enum opt_state.
	* sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_frame_prev_register):
	* sparc64obsd-tdep.c (sparc64obsd_frame_prev_register): Likewise.
	* sparcnbsd-tdep.c (sparc32nbsd_sigcontext_frame_prev_register): 
	* sparcobsd-tdep.c (sparc32obsd_frame_prev_register): Likewise.
	* trad_frame.c (value.h): New include statement.
	(trad_frame_get_prev_register):  Change type of	"optimizedp" from int 
	to enum opt_state; assign opt_okay instead of 0.
	(trad_frame_get_register):  Change type of "optimizedp" from int to 
	enum opt_state.
	* trad_frame.h (trad_frame_get_register): Likewise.
	(trad_frame_get_prev_register): Likewise.
	* tramp_frame.c (tramp_frame_prev_register): Likewise.
	* v850-tdep.c (v850_frame_prev_register): Likewise.
	* valprint (value_check_printable): Add switch statement to test
	value's opt state and possible print appropriate message.
	* value.c (struc value): Change type of "optimized_out" field from
	'char' to 'enum opt_state'.
	(value_optimized_out): Change return type from int to enum opt_state.
	(set_value_optimized_out): Change type of 'val' parameter from
	int to enum opt_state.
	* value.h (enum opt_state): New enum type.
	(value_optimized_out): Change return type to enum opt_state.
	(set_value_optimized_out): Change parameter type to enum opt_state.
	* vax-tdep.c (vax_frame_prev_register):  Change type of	"optimizedp" 
	from int to enum opt_state.
	* xstormy16-tdep.c (xstormy16_frame_prev_regsiter): Likewise; assign
	opt_okay instead of 0.

2007-04-10  Jim Ingham  <>

	* symmisc.c (equivalence_table_build): If the table already
	exists, delete and remake it.
2007-04-10  Jason Molenda  (

	* i386-amd64-shared-tdep.c (i386_picbase_setup_pattern_p): New function.
	* i386-amd64-shared-tdep.h: Prototype.
	* i386-tdep.c (i386_find_esp_adjustments): Use it.
	* inlining.c: A little comment reformatting.

2007-04-10  Jim	Ingham	<>

        * dwarf2read.c (process_die): Handle DW_TAG_typedef
	separately.  We	need to	pass the typedef type into
	new_symbol so we don't dereference it in making	the
	symbol for the type.
	(read_tag_pointer_type): Handle	the odd-ball
	named pointer dies gcc emits for ObjC's "id" and

	* objc-lang.c (objc_target_type_from_object): return the
	class name if you can't find the full type information for
	the dynamic type.
	* objc-lang.h: Adjust declaration for change above.
	* varobj.c: Add "dynamic_type_name" field to the varobj.
	(varobj_fixup_value): Return the dynamic_type_name if we
	can't find the full type info for the dynamic type.
	(varobj_create, value_of_child, value_of_root): Add the
	dynamic_type_name if we get it back from varobj_fixup_value.
	(varobj_get_dynamic_type): Report the dynamic_type_name
	if we don't have the full dynamic_type.
	(new_variable): Initialize dynamic_type_name.
	(free_variable): Free dynamic_type_name.
	* wrapper.c (safe_value_objc_target_type): Adjust for changes
	to value_objc_target_type.
	* wrapper.h: Ditto.
2007-04-03  Jim Ingham  <>

	* dbxread.c (read_dbx_symtab): clear archive cache.
	(close_containing_archive_and_cntents): New function.
	(find_in_containing_archive_cache): New function.
	(add_to_containing_archive_cache): New function.
	(clear_containing_archive_cache): New function.
	(open_bfd_from_oso): Manage the containing archives internally,
	and just return whether you cached the returned bfd or not.
	(oso_scan_partial_symtab): Mutatis mutandi for changes to
	(dbx_psymtab_to_symtab_1): Ditto.
	* dwarf2read.c (dwarf2_scan_pubtype_for_psymbols): Ditto.
	(dwarf2_debug_map_psymtab_to_symtab): Ditto.  Take advantage
	of the change to reuse the .a files we might need to open.
	* symfile.h: Declare changes to open_bfd_from_oso and declare
2007-04-02  Caroline Tice <>

	* inlining.c (copy_inlined_call_stack_record): New function.
	(add_item_to_inlined_subroutine_stack):  Add code to shift array
	and allow inserting item into middle of stack if that's where it

2007-03-29  Greg Clayton  <>

	* utils.c (query): Handle case where user hits ^C during
	query by resetting QUIT_FLAG to zero.

2007-03-29  Jason Molenda  (

	* i386-tdep.c (i386_find_picbase_setup): Correctly mask off the
	register number from a push instruction.

2007-03-29  Jason Molenda  (

	* Info.plist: New file.
	* Add the Info.plist to the gdb binary in the
	__TEXT,__info_plist section.

2007-03-28  Jason Molenda  (

	* config/i386/nm-i386-macosx.h: Definitions needed to activate
	hardware watchpoint support from i386-nat.c.
	* config/i386/ Build i386-nat.c.
	* config/nm-macosx.h: Comment out the page-protection style
	watchpoints if real hardware watchpoints are available.

	* Check to see if the x86_debug_state32_t type is 
	available on the build system.
	*, configure: Regenerated.

2007-03-27  Jason Molenda  (

	* symfile.c (add_kext_command): Fix typeo in usage string.

2007-03-23  Jim Ingham  <>

	variables, and use them to select the 64 bit mig interfaces if 
	* Test for the existance of 
	/usr/include/mach/mach_exc.defs, and set the above flags so it 
	will get used.
	* config/i386/ The name of the generated mig files is 
	different between the 32 & 64 bit versions.  Adjust for that.
	* config/powerpc/ Ditto.
	* symfile.c (syms_from_objfile): When applying the offset, 
	remember that not all bfd_sections become objfile sections.
	(symbol_file_add_bfd_safe): num_offsets is not equal to the number
	of bfd sections, but to the number of bfd sections that end up in
	the objfile.
2007-03-23  Caroline Tice  <>

        * dwarf2loc.c (print_single_dwarf_location): Comment out unnecessary
        some unnecessary code.
        * dwarf2read.c (read_inlined_subroutine_scope):  Add push_context,
        pop_context, and finish_block to get scope for inlined parameters 
        (new_symbol): Look for DW_AT_location in abstract origin dies ofr
        formal parameters of inlined subroutines.

2007-03-22  Jason Molenda  (

	* symmisc.c (equivalence_table_build): Formatting typeo.
	* symfile.c (add_kext_command): Check for flat bundle formatted
	kext bundles in addition to traditional kext bundle layouts.

2007-03-21  Caroline Tice  <>

	* c-valprint.c (c_value_print): Output "[uninitialized]" before a
	variable's value, if the variable is uninitialized.
	* dwarf2expr.c (add_piece): Make function not static.
	(unsigned_address_type): Likewise.
	(signed_address_type): Likewise.
	(execute_stack_op): Initialized var_status field of context struct;
	allow DW_OP_APPLE_uninit to follow at DW_OP_reg operation.
	* dwarf2expr.h (struct dwarf_expr_context): New field, var_status.
	(unsigned_address_type): Declare  function to be extern.
	(signed_address_type): Likewise.
	(add_piece): Likewise.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Set var_status field in
	return value to var_status field in context struct.
	(print_single_dwarf_location): New function.
	(loclist_describe_location): Modify to actually print out list of 
	locations based on Dwarf location list.
	* dwarf2read.c (dwarf_stack_op_name): Add case for DW_OP_APPLE_uninit.
	(decode_locdesc): Likewise.
	* value.c (struct value): New field, var_status.
	(set_var_status): New function.
	(value_var_status): New function.
	(allocation_value): Initialize var_status field.
	* value.h (set_var_status, value_var_status): New extern declarations.

2007-03-19  Greg Clayton <>

	* dwarf2read.c (peek_die_abbrev): Return NULL and zero BYTES_READ
	if the DIE is past the end of the compilation unit.

2007-03-19  Jason Molenda  (

	* dwarf2read.c (peek_die_abbrev): Revert last change; it is not 
	sufficient either.

2007-03-19  Greg Clayton (

	* dwarf2read.c (peek_die_abbrev): Return NULL if the DIE is past the
	end of the compilation unit.

2007-03-19  Jason Molenda  (

	* dwarf2read.c (load_partial_dies): Revert previous change.

2007-03-19  Jason Molenda  (

	* dwarf2read.c (load_partial_dies): Stop parsing DIEs if we hit the
	end of a compile_unit's length even if the debug_info did not properly

2007-03-16  Jason Molenda  (

	* buildsym.c (finish_block): Properly cap a block whose scope
	is incorrect so that the block list addresses aren't incorrect.
	* block.c (blockvector_for_pc_sect): Don't search back into the
	static/global blocks.  Don't stop searching if the current block's
	addresses are lower than the searching PC if this is a sub-block;
	an earlier block may be what we're looking for.

2007-03-16  Jim Ingham  <>

	* breakpoint.c (detect_location_arg): Handle the no argument
2007-03-16  Jim Ingham  <>

	* varobj.c (c_path_expr_of_child): If the child is anonymous,
	return the parent expression.
	(cplus_path_expr_of_child): Ditto.
2007-03-16  Caroline Tice  <>

	* infcmd.c (step_once): Check for the existence of a function symbol
	before trying to call find_function_start_sal; use alternate method
	for finding first line if function symbol does not exist.

2007-03-15  Jim Ingham  <>

	* breakpoint.c (watch_command_1): Added by_location argument, and
	if set, only watch the resolved location.
	(detect_location_arg): New function.
	(watch_command, rwatch_command, awatch_command): Parse out the
	location argument.
	(watch_command_wrapper, rwatch_command_wrapper, 
	awatch_command_wrapper): Accept the by_location argument.
	(_initialize_breakpoint): Add "-location" to the doc strings.
	* breakpoint.h: Change declaration of the _wrapper functions above.
2007-03-15  Jason Molenda  (

	* inlining.c (address_range_ending_pc): Add comment about this
	function's performance impact.

2007-03-14  Jason Molenda  (

	* ada-lang.c (ada_lookup_symbol): Use BLOCK_HIGHEST_PC.
	* block.c (address_range_ending_pc): Moved to inlining.c
	(block_highest_pc): New function.  Return the highest pc value of
	a block.
	(contained_in): Return early when possible.
	(block_starts_and_ends): Ditto.
	(blockvector_for_pc_sect): Fix second loop so we don't iterate
	back to the static block when looking for a match.
	* block.h: Define BLOCK_HIGHEST_PC.
	Prototype for block_highest_pc.
	* blockframe.c (addr_inside_main_func, find_pc_partial_function):
	* buildsym.c: Typeo.
	* inlining.c (address_range_ending_pc): Function moved here from 

2007-03-14  Greg Clayton  <>

	* dbxread.c (read_dbx_symtab): Use TM_NEXTSTEP instead of
	* elfread.c (elf_symtab_read): Ditto.
	* exec.c: Use new MACOSX_DYLD instead of NM_NEXTSTEP so we can
	enable and disable dyld support and use it for remote targets.
	(exec_file_attach): Look for app bundles when Mac OS X is the 
	target instead of only for native builds, and only init dyld
	if MACOSX_DYLD is defined.
	* fix-and-continue.c (get_fixed_file): Use new MACOSX_DYLD 
	instead of NM_NEXTSTEP.
	* minsyms.c (lookup_minimal_symbol_all): Use TM_NEXTSTEP 
	instead of NM_NEXTSTEP.
	(lookup_minimal_symbol): Ditto.
	(prim_record_minimal_symbol_and_info): Ditto.
	* objfiles.c (objfile_get_next): Use new MACOSX_DYLD instead 
	(objfile_set_load_state): Ditto.
	* remote.c (remote_open_1): Keep dyld informed when creating
	a remote target.
	(remote_mourn_1): Keep dyld informed when our inferior dies.
	(init_remote_ops): Register dyld functions for remote ops.
	* source.c (pathname_substitutions): Changed global to static.
	(pathname_substitutions_argv): New static variable.
	(open_source_file_fullpath): Use new pathname_substitutions_argv
	static variable to avoid recomputing and leaking PSUBS every time.
	(set_pathname_substitution): Now caches the arg list for the
	open_source_file_fullpath function.
	(show_pathname_substitutions): New function to display the
	current pathname substitutions.
	(_initialize_source): Updated help text for the set/show
	"pathname-substitutions" command and supply the function callback
	* symfile.c (syms_from_objfile): Use new MACOSX_DYLD instead of
	(new_symfile_objfile): Ditto
	(symbol_file_add_with_addrs_or_offsets_us): Ditto
	(symbol_file_add_main_1): Ditto
	(symbol_file_clear): Ditto
	(add_symbol_file_command): Ditto
	(symfile_bfd_open): Use TM_NEXTSTEP instead of NM_NEXTSTEP.
	* symmisc.c (dump_msymbols): Use TM_NEXTSTEP instead of NM_NEXTSTEP.
	* symtab.h: Use TM_NEXTSTEP instead of NM_NEXTSTEP.
	* config/nm-macosx.h (macosx_solib_add): Removed.
	(SOLIB_ADD): Removed.
	(macosx_add_shared_symbol_files): Removed.
	(macosx_pc_solib): Removed.
	(PC_SOLIB): Removed.
	(macosx_filename_in_bundle): Removed.
	* config/tm-macosx.h (MACOSX_DYLD): New define that can be used
	to enable/disable Mac OS X dyld support.
	(SOLIB_ADD): Moved here from nm-macosx.h.
	(macosx_add_shared_symbol_files): Ditto.
	(macosx_pc_solib): Ditto.
	(PC_SOLIB): Ditto.
	* config/i386/ Add dyld object files to support
	dyld on cross targets.
	* config/powerpc/ Add dyld object files to support
	dyld on cross targets.

2007-03-13  Jason Molenda  (

	* i386-tdep.c (i386_analyze_frame_setup): Stop scanning for a prologue
	insn after 256 instructions.  Stop scanning for a prologue insn if
	we hit a return insn.

2007-03-13  Jim Ingham  <>

	* frame.h: Declare backtrace_past_main here, since we're going to
	use it in other modules.
2007-03-13  Caroline Tice  <>

	* inlining.c (add_item_to_inlined_subroutine_stack): Initialize
	new call stack records after they get malloc'd or realloc'd.

2007-03-09  Jason Molenda  (

	* config/i386/ Don't build CFM support code.

2007-03-08  Jim Ingham  <>

	* objc-lang.c (objc_target_type_from_object): New function, extracted
	from value_objc_target_type.
	(value_objc_target_type): Use objc_target_type_from_object.
	* objc-lang.h: Declare objc_target_type_from_object.
2007-03-07  Jason Molenda  (

	* cp-support.c (cp_lookup_rtti_type): Downgrade 
	"RTTI symbol not found for class" from warning to complaint.

2007-03-07  Greg Clayton  (

	* infrun.c (handle_inferior_event): HW watchpoints now work
	for targets that use software single stepping.

2007-03-06  Jason Molenda  (

	* infrun.c (metrowerks_stepping): Remove.
	(fetch_inferior_event): Remove CodeWarrior support.
	(macosx_print_extra_stop_info): Ditto.
	* linespec.c (metrowerks_ignore_breakpoint_errors_flag): Remove.
	(decode_variable): Remove CodeWarrior support.
	* symtab.c (metrowerks_ignore_breakpoint_errors_flag): Remove.
	(_initialize_symtab): Don't add metrowerks-ignore-breakpoint-errors
	* config/i386/ Don't include macosx-metrowerks.o.
	* config/powerpc/ Don't include macosx-metrowerks.o.

2007-03-05  Jason Molenda  (

	* symfile.c (kext_symbol_file_path): New global.
	(add_kext_command): If the .sym file isn't found, and 
	kext_symbol_file_path is set, look for the .sym file there as well.
	(_initialize_symfile): Register the 'set kext-symbol-file-path' command.

2007-03-02  Jason Molenda  (

	* dwarf2read.c (dwarf2_debug_map_psymtab_to_symtab): Print the name
	of the source file when verbose is set.
	* linespec.c: Whitespace fixes.

2007-03-01  Jason Molenda  (

	* dwarf2read.h:  New file.  Definition of oso_to_final_addr_map from
	* dwarf2read.c: Remove defn of oso_to_final_addr_map.
	(translate_debug_map_address): Make extern.  Take the addr map
	as the first argument instead of the dwarf2_cu.  Callers updated.
	(dwarf2_debug_map_psymtab_to_symtab): Don't free addr translation
	map.  Should probably add to objfile's obstack.
	(dwarf2_symbol_mark_computed): Save pointer to address map in
	location list batons.
	* dwarf2loc.h: Include dwarf2read.h.  Add addr_map field to
	dwarf2_locexpr_baton and dwarf2_loclist_baton.
	* dwarf2loc.c (find_location_expression): Use address translation
	map if one is available.

2007-03-01  Caroline Tice  <>

	* infcmd.c (stepping_over_inlined_subroutine): New global variable.
	(step_once):  Change code for stepping over inlined subroutines to
	NOT use breakpointes (which can cause continue-like behavior
	at times), and to use stepping_over_inlined_subroutine flag;
	Change code for stepping into inlined subroutine to display
	first line of function code rather than first line of
	function declaration.
	* infrun.c (follow_exec):  Initialize
	stepping_over_inlined_subroutine to 0.
	(clear_proceed_status): Likewise.
	(handle_inferior_event): Check stepping_over_inlined_subroutine
	flag when determining whether or not to stop inside an
	apparently different subroutine.
	(insert_step_resume_breakpoint): Use step_frame_id for
	setting frame breakpoint if stepping_over_inlined_subroutine
	is on.
	* inlining.c (inlined_function_update_call_stack):  In
	special situations, turn off stepping_over_inlined_subroutine.
	(rest_of_line_contains_inlined_subroutine): Do nothing if
	inlined_stepping flag is turned off; fix various small bugs.
	* inlining.h (stepping_over_inlined_subroutine): Declare
	new global variable.

2007-02-26  Jason Molenda  (

	* frame.c (backtrace_sanity_checks): Renamed the setting of the last
	checking.  It's now 'sanity-checks' in the backtrace set list.
	(get_prev_frame_1): Ditto.
	(_initialize_frame): Ditto.

2007-02-26  Jason Molenda  (

	* frame.c (ignore_stack_sanity_checks): New parameter for tweaking by
	people who want a backtrace in spite of the sanity check heuristics.
	(get_prev_frame_1): Don't error out when ignore_stack_sanity_checks is
	(_initialize_frame): Add trust-me-keep-backtracing to the 
	'set backtrace' chain of settings.

2007-02-23  Caroline Tice  <>

	* inlining.c (insert_pending_node):  Fix typo comparing end_pc fields
	(was accidentally comparing end_pc to pc field).

2007-02-22  Jason Molenda  (

	* disasm.c (find_pc_offset): Return the earliest address of a function
	even if it is less than the offset limiter.

2007-02-22  Jim Ingham  <>

	* objfiles.c (objfile_keeps_section): Extract this logic
	from build_objfile_section_table.
	* (build_objfile_section_table): Use objfile_keeps_section.
	* objfiles.h: Declare objfile_keeps_section.
2007-02-21  Jim Ingham  <>

	* symfile.c (init_objfile_sect_indices): Copy paste error.  Also
	add a break when we find the segment we're looking for.
	* (symbol_file_add_with_addrs_or_offsets_using_objfile): NM_NEXTSTEP->
	TM_NEXTSTEP, and also handle the case where we don't have a 
	"calculate_offsets_for_dsym" somehow.
	(reread_separate_symbols): Ditto.
2007-02-20  Jason Molenda  (

	* macosx-nat-cmds-load.c (load_plugin): Require that the plugin 
	pathname be an absolute path.

2007-02-20  Jim Ingham  <>

	This change is to better propagate "offsets" when we build
	the objfiles & separate_debug_files.  

	* objfiles.{c,h}: changed some comments, added a FIXME.
	* symfiles.c (init_objfile_sect_indices): Can't use the bfd section
	indices, since we don't make sections for bfd_sections of 0 length,
	and thus the count may not be the same.  Also arrange for the text,
	data & bss indices for separate debug objfiles to be 0 if we couldn't
	find them elsewhere.
	* (syms_from_objfile): Don't look at addrs if we get offsets!
	Also do the "delete & reinsert" in ordered sections here, and apply
	the offsets if they were provided.
	* (symbol_file_add_with_addrs_or_offsets_using_objfile): Don't try
	to make a separate_debug_file FOR a separate_debug_file.  Also,
	check for the dSYM offset if appropriate.  And pass through
	offsets appropriately.
	* (reread_symbols): Make sure we recreate the objfile & separate
	objfile in the same order we originally made them.  There are some
	order dependencies that don't work otherwise.
	* (symbol_file_add_bfd_using_objfile): Let this take both addrs & 
	* (symbol_file_add_bfd_safe): Ditto.
	* symfile.h: Changes to symbol_file_add_bfd_using_objfile and
	* fix-and-continue.c (pre_load_and_check_file): Mutatis mutandi for
2007-02-15  Jason Molenda  (

	* interps.c (interp_complete): Accept & pass along an optional limit 
	for the number of matches to be returned.
	* interps.h (interp_complete_ftype): Prototype updated.
	* cli/cli-cmds.c (complete_command): Don't limit matches from the 
	command line.
	(cli_interpreter_complete): Accept & honor a limit on the number of 
	matches to be printed.
	* cli/cli-cmds.h (cli_interpreter_complete): Prototype updated.
	* mi/mi-interp.c (mi_cmd_interpreter_complete): Enforce a hard limit 
	of 200 matches returned for completions in the MI for now.

2007-02-12  Jason Molenda  (

	* buildsym.c (finish_block): Add more information to the inner block
	not inside outer block complaint.

2007-02-09  Jason Molenda  (

	* symfile.c (add_kext_command): More verbose error messages.

2007-02-07  Jason Molenda  (

	* config/i386/ Build macosx-self-backtrace.
	* config/powerpc/ Build macosx-self-backtrace.
	* utils.c (internal_vproblem): Do a stack crawl of how we got to
	the internal error.

2007-02-06  Jason Molenda  (

	* block.c (blockvector_for_pc_sect): Only return a matched block if
	the pc is less than the block's end_pc.

2007-02-06  Jason Molenda  (

	* infrun.c (set_scheduler_locking_mode): Add cast to fix printf
	formatting warning.
	(macosx_print_extra_stop_info): Add comment to spot where we seem to
	have lots of problems.  Fix unterminated comment mistake.

2007-02-05  Jason Molenda  (

	* objc-lang.c (resolve_newruntime_objc_msgsend): New unified function
	for determining the target of an ObjC dispatch in the new runtime.
	(resolve_msgsend_fixup, resolve_msgsend_fixedup, 
         resolve_msgsend_stret_fixup, resolve_msgsend_stret_fixedup): Call it.
	(resolve_newruntime_objc_msgsendsuper): New unified function for
        determining the target of an ObjC super dispatch in the new runtime.
	(resolve_msgsendsuper2_fixup, resolve_msgsendsuper2_fixedup,
	resolve_msgsendsuper2_stret_fixup, resolve_msgsendsuper2_stret_fixedup):
	Call it.
	(methcalls): Updated to call the correct variations.

2007-02-02  Jason Molenda  (

	* amd64-tdep.c (amd64_fetch_pointer_argument): Return zero for
	an unsupported argument number.
	* objc-lang.h (find_implementation):  Take a third argument.
	* eval.c (evaluate_subexp_standard): Update call to find_implementation.
	* objc-lang.c (lookup_objc_class): Whitespace cleanup.
	(methcalls): Add entries for new 64-bit Objective C runtime's
	entry functions.
	(find_objc_msgsend): Fix formatting.  Use find_pc_partial_function to
	find the end address of functions instead of the incorrect method
	that was being used.
	(new_objc_runtime_internals): Detect the new Objective C runtime.
	(new_objc_runtime_find_impl): Find the implementation of a given
	class and selector in the new Objective C runtime.
	(find_implementation_from_class): Call new_objc_runtime_find_impl if
	the new runtime is being used.
	(find_implementation): Ditto.
	(resolve_msgsend_fixedup): New function to correctly interpret
	the arguments when we stepi into the new runtime's message dispatch
	(resolve_msgsend_stret_fixedup): Variant of the above func.
	(resolve_msgsendsuper2_fixedup): Call to an object's super class;
	not yet correctly resolving to a function address.
	(resolve_msgsendsuper2_stret_fixedup): Variant of above, also not
	yet correct.

2007-02-01  Caroline Tice  <>

	* breakpoint.c (solib_load_unload_1): Add new argument to call to 
	decode_line_1. The new argument indicates whether or not to look for 
	all occurrences of a symbol rather than just the first one.
	(parse_breakpoint_sals):  Likewise.
	(until_break_command): Likewise.
	(breakpoint_re_set_one): Likewise.
	(decode_line_spec_1): Likewise.
	* linespec.c (gdb_assert.h): New include statement.
	(decode_all_variables):  New function.
	(symbols_found): New function.
	(minsyms_found): New function.
	(decode_line_1): Add new paramenter, find_all_occurrences; add call to 
	decode_all_variables, predicated on find_all_occurrences.
	* linespec.h (decode_line_1): Add new paramenter to function 
	* minsyms.c (lookup_minimal_symbol_all): New function.
	* symtab.c (lookup_symbol_aux_symtabs): Add new parameters, sym_list 
	and find_all_occurrences; Modify to find all the matching symbols 
	if find_all_occurrences is set.  Do this via calling 
	lookup_block_symbol_all.  If returning multiple symbols, put them into
 	new parameter sym_list.
	(lookup_symbol_aux_psymtabs): Likewise.
	(lookup_symbol_all): New function.
	(lookup_symbol_aux):  Add new arguments to calls to 
	lookup_symbol_aux_symtabs and lookup_symbol_aux_psymtabs.
	(lookup_symbol_global):  Add new arguments to calls to 
	lookup_symbol_aux_symtabs and lookup_symbols_aux_psymtabs.
	(lookup_block_symbol_all): New function.
	(decode_line_spec):  Add new argument to call to decode_line_1.
	* symtab.h (lookup_block_symbol_all): New function decl.
	(lookup_symbol_all): New function decl.
	* tracepoint.c (trace_command): Add new argument to call to 
	(scope_info): Likewise.
	* cli/cli-cmds.c (edit_command): Likewise.
	(list_command): Likewise.

2007-01-31  Greg Clayton <>

	* Check for DebugSymbols.framework and export 
	* Regenerate.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* symfile.c (APPLE_DSYM_EXT_AND_SUBDIRECTORY): Removed.
	(find_separate_debug_file): Moved contents to macosx_locate_dsym
	in macosx/macosx-tdep.c.
2007-01-29  Jim Ingham  <>

	* amd64-tdep.c (amd64_analyze_prologue): Remove errant +1's that
	came from converting the FSF code.
2007-01-29  Jim Ingham  <>

	* symfile.c (check_for_matching_uuid): Add an async notification
	if we're running the MI.
2007-01-26  Jim Ingham  <>

	* varobj.c (cplus_value_of_variable): For references, just
	return "{...}" like we do for structures, classes & unions.
2007-01-26  Caroline Tice  <>

	* dwarf2read.c (rb_delete_fixup): Add tests to cope with children of 'w'
	being NULL; Add lots of comments.
	(rb_tree_remove_node):  Add y_parent and x_child_pos vars; copy first iteration
	of loop from rb_delete_fixup to cope with a null 'x'.  Add calls to 
	(num_nodes_in_tree): New function (for debuggging rb-trees).
	(tree_height):  Likewise.
	(verify_tree_colors): Likewise.
	(verify_tree_heights): Likewise.
	(verify_rb_tree): Likewise.
	(rb_print_node): Likewise.
	(rb_print_tree): Likewise.
	* inlining.c (insert_pending_node):  Modify to sort by start pc as well as by
	end pc.

2007-01-25  Caroline Tice  <>

	* dwarf2read.c (_initialize_dwarf2_read):  Modify text messages for
	setshow variable "inlined_stepping", to make them clearer and more 
	* infcmd.c (step_1): Modify to not perform inlined subroutine stuff if
	single_inst is true.
	(step_once): Likewise.
	* infrun.c (handle_inferior_event):  Modified condition near line 3108
	to not consider do something special for INLINED_FRAME types if 
	step_range_end is one (i.e. if the user is doing instruction-level

2007-01-24  Jason Molenda  (

	* amd64-tdep.c (amd64_fetch_pointer_argument): Function to retrieve
	the first few function arguments out of the registers.
	(amd64_init_abi): Add it to the current gdbarch.

2007-01-24  Jason Molenda  (

	* (gdb): Remove an old dSYM for gdb binary if present.

2007-01-23  Jason Molenda  (

	* i386-tdep.c (i386_find_picbase_setup): Switch over to using
	new libopcodes-disassembler based instruction parsing.
	(i386_find_esp_adjustments): Ditto.
	* i386-amd64-shared-tdep.c (i386_frame_setup_skip_insns): Removed.
	(i386_frame_setup_insns): Removed.
	(i386_match_insn): Removed.
	* i386-amd64-shared-tdep.h (i386_match_insn): Removed.

2007-01-22  Jason Molenda  (

	* i386-tdep.c (i386_skip_prologue): Look up the end addr
	of the function that we're analyzing the prologue of and
	limit our instruction scanning to that addr.

2007-01-18  Jim Ingham  <>

	* checkpoint.c (_initialize_checkpoint): Don't register the
	sigterm handler here, only do it when you use it.
	(collect_checkpoint): Don't reinitialize the checkpoint stuff
	every time you make one.  Also register the SIGTERM handler here.
	(checkpoint_clear_inferior): New function.
	* checkpoint.h: Declare checkpoint_clear_inferior.
	* target.c (generic_mourn_inferior): Reset the checkpoint state.
2007-01-19  Caroline Tice  <>

	* inlining.c (struct pending_node): New struct.
	(find_function_names_and_addresses): Modify to check to
	non-initialized lines.  
	(add_item_to_inlined_subroutine_stack): Modify to cope with
	entirely overlapping address ranges for distinct inlining
	cases (distinguish by call site line).  
	(insert_pending_node): New function.
	(inlined_function_update_call_stack): Modified to collect
	all records for a pc and sort them before calling
	(inlined_function_add_function_names):  Add check for call
	site line.  
	(print_inlined_frame): Modified to use sal symtab if call
	stack symtab is NULL.

2007-01-19  Jason Molenda  (

	* dwarf2read.c (follow_die_ref): Account for initial Length of
	Compilation Unit field when determining if a ref is contained
	within this compilation unit or not.

2007-01-17  Jason Molenda  (

        * dbxread.c (oso_scan_partial_symtab): Whitespace fixes to stay under
        80 columns.

2007-01-17  Caroline Tice  <>

        * dwarf2read.c (plain_tree_insert):  Change "else if" to "else" so
        everything gets inserted.

2007-01-17  Jason Molenda  (

	* dwarf2read.c (dwarf2_kext_psymtab_to_symtab): Add sanity check
	when finding a particular compilation unit's dwarf in a dSYM.
	(process_full_comp_unit): For the non-dSYM case, trust the high/low
	addresses from the debug map (i.e. in the psymtab) over the
	DWARF's high/low pc values - those first/last functions may have
	been reordered during linking.

2007-01-17  Jim Ingham  <>

	* objc-lang.c (value_objc_target_type): Get it to work for
	real inheritance.
2007-01-17  Caroline Tice  <

	* dwarf2read.c (enum rb_tree_colors):  Moved declaration.
	(struct rb_repository_data): New struct.
	(struct rb_tree_node): Added third key field; made data field a void*,
	to allow generic use of red-black trees.
	Added forward declarations for red-black tree functions, as well as more
	red-black tree comments.
	(inlined_call_sites):  Changed type of this global variable from linked
	list to red-black tree.
	(convert_oso_map_to_final_map):  Commented out unused var to avoid
	(create_kext_addr_map): Likewise.
	(dwarf2_kext_psymtab_to_symtab): Likewise.
	(find_debug_info_for_pst): Likewise.
	(dwarf2_add_to_list_of_inlined_calls): Modified to use red-black tree
	instead of linked list.
	(read_inlined_subroutine_scope):  Deleted unused local vars.
	(read_partial_die):  Added calls to DW_STRING on results returned by
	(check_inlined_funcion_calls): Rewrote function to use red-black tree 
	version of inlined_call_sites, rather than linked list.
	(rb_find_tree_node):  Modified to search on secondary_key if primary
	keys are equal.
	(rb_tree_find_and_remove_node): New function.
	(rb_tree_minimum): New function.
	(rb_tree_successor): New function.
	(rb_delete_fixup): New function.
	(rb_tree_remove_node): New function.
	(plain_tree_insert): Modified to do correct thing if keys are equal, and
	to use the third key if appropriate.
	(lookup_repository_type): Modified to use changed rb_tree_node 

2007-01-15  Jim Ingham  <>

	* gdbthread.h: Declare prune threads here.
	* thread.c: Don't declare it here.
2007-01-10  Jason Molenda  (

	* symtab.c (lookup_symbol_aux_psymtabs): Print error message if
	the expansion of a psymtab to symtab results in a null symtab instead
	of dereferencing the null symtab pointer.

2007-01-08  Jason Molenda  (

	* c-exp.y (OP_OBJC_MSGCALL): Address of ObjC class data structure
	is a pointer value.
	* objc-exp.y (OP_OBJC_MSGCALL): Ditto.
	* eval.c (evaluate_subexp_standard): Don't mask off high 32-bits
	when inferior is a 64-bit program.  Address of selector is a pointer
	* expression.h (enum exp_opcode): Fix formatting.
	* objc-lang.c (value_nsstring): Fix formatting.

2006-12-19  Jason Molenda  (

	* amd64-tdep.c (amd64_analyze_prologue): Add a next_frame parameter
	which may optionally be null.  If this frame can't be frameless,
	set the sensible frame defaults.  Use i386_ret_pattern_p() to 
	detect the end of a function.
	(amd64_frame_cache): Pass the next_frame to amd64_analyze_prologue.
	(amd64_skip_prologue): Update call to amd64_analyze_prologue.
	* i386-amd64-shared-tdep.c (i386_ret_pattern_p): New function.
	* i386-amd64-shared-tdep.h (i386_ret_pattern_p): Prototype.

2006-12-19  Jason Molenda  (

	* amd64-tdep.c (amd64_analyze_prologue): Ah, don't have a frame_info
	pointer yet - temporarily back out the previous change.

2006-12-19  Jason Molenda  (

	* amd64-tdep.c (amd64_analyze_prologue): If this frame must have
	a frame on the stack, salt some sensible default values ahead of
	time in case we fail to parse the prologue correctly.

2006-12-19  Jason Molenda  (

	* amd64-tdep.c (amd64_analyze_prologue): Add a limit for how many
	non-prologue instructions to skip over when analyzing a prologue.
	Limit value picked at random.

2006-12-13  Caroline Tice  <

	* dwarf2read.c (read_inlined_subroutine_scope):  Initialize "ranges" 
	to NULL.
	(read_func_scope):  Likewise.
	(read_lexical_block_scope):  Likewise.
	(get_pc_scope_bounds): Likewise.
	(check_inlined_function_calls):  Add condition to if statement, to
	make sure current->file_index is within the bounds of lh. 

2006-12-13  Jim Ingham  <>

	* objfiles.c (free_objfile_internal): Don't null out
	the separate_debug_objfile of our backlink file here,
	it's only appropriate to do that when freeing the objfile.
	(free_objfile): So do it here instead.

	* symfile.c (symbol_file_add_with_addrs_or_offsets_using_objfile):
	Thinko in setting the separate_debug_objfile, sense of the 
	using_orig_objfile test was reversed.
2006-12-12  Jason Molenda  (

	* i386-amd64-shared-tdep.c (i386_mov_esp_ebp_pattern_p): Recognize
	x86-64 version of mov %esp, %ebp.
	* amd64-tdep.c (amd64_analyze_prologue): Use libopcodes instruction
	length function to step through instructions in the prologue.

2006-12-12  Jason Molenda  (

	* i386-tdep.c (i386_match_insn): Move this function and the
	supporting instruction tables to i386-amd64-shared-tdep.c.
	(i386_analyze_frame_setup): Use i386_push_ebp_pattern_p,
	i386_length_of_this_instruction, and i386_mov_esp_ebp_pattern_p 
	functions instead of hardcoding the opcode values.
	* i386-amd64-shared-tdep.c: New file with shared code to analyze 
	prologues that will be used by both i386-tdep.c and amd64-tdep.c.
	Add support for using the libopcodes disassembler to step over
	* i386-amd64-shared-tdep.h: Ditto.
	* Build the new file.

2006-12-12  Jim Ingham  <>

	* disasm.c (dump_insns): Don't truncate assembly names
	here, this isn't used for the 'x' command.
	* printcmd.c (build_address_symbolic): Do it here.
2006-12-08  Greg Clayton  <>

	* amd64-tdep.c (amd64_init_abi): Set the frame pointer
	register to be AMD64_RBP_REGNUM.
	* frame.c (frame_next_hack): Cleanup whitespace.
	(frame_cache_hack): Ditto.
	* i386-tdep.c (i386_gdbarch_init): Set the frame pointer
	register to be I386_EBP_REGNUM.
	* user-regs.c (replace_user_reg): New function.
	(user_reg_replace): New function.
 	(value_of_user_reg): Fill in the frame ID member of the value
 	for user registers.
	* user-regs.h (user_reg_replace): Added prototype.
	* valops.c (value_assign): Only find and refind the frame by 
	ID if we have a frame that is not the first frame and protect
	refinding the frame by ID with try/catch block.
	* ppc-macosx-tdep.c (ppc_value_of_builtin_frame_fp_reg) New
 	(ppc_frame_unwind_sp_for_dereferencing): Fix whitespace.
	(ppc_macosx_init_abi): Call new user_reg_replace with "fp" new
	ppc_value_of_builtin_frame_fp_reg function as new callback.
	(ppc_macosx_init_abi_64): Ditto.

2006-12-05  Jim Ingham  <>

	* i386-tdep.c (i386_frame_this_id): Don't see if the 0th
	frame is the terminating frame.  Just read it from the sentinel.
2006-12-04  Jason Molenda  (

	* frame.c (get_prev_frame_1): Replace the "corrupt stack?" error
	messages with phrase that puts the blame more on gdb.

2006-12-01  Jim Ingham  <>

	* dbxread.c (stabsect_read_strtab_from_oso): Don't throw an
	error if there's no stabs or stabsstr, just return empty
2006-11-30  Jason Molenda  (

	* symfile.c (replace_psymbols_with_correct_psymbols): Don't strdup
	null psymtab oso name.

2006-11-30  Jason Molenda  (

	* symfile.c (replace_psymbols_with_correct_psymbols): Correctly
	handle objfiles with more than one psymtab.
	* dwarf2read.c (convert_oso_map_to_final_map): Remove kext support.
	(create_kext_addr_map): New function, mostly taken from
	convert_oso_map_to_final_map, to create address translation map
	for kext + dSYM objfiles.
	(dwarf2_kext_psymtab_to_symtab): Call create_kext_addr_map.

2006-11-28  Jason Molenda  (

	* Remove tests for libxml.
	* configure: Regenerated.

2006-11-27  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Read the debug map out of a kext
	symbol (kextload-output) binary even though it has a dSYM file.
	(open_bfd_from_oso): Remove code to issue an informative error
	for "gcc -gdwarf-2 foo.c" uses because the compiler creates a dSYM
	* dwarf2read.c (convert_oso_map_to_final_map): Handle kext + dSYM
	case specially.
	(dwarf2_kext_psymtab_to_symtab): New psymtab expander, largely
	ripped off from dwarf2_debug_map_psymtab_to_symtab.
	(find_debug_info_for_pst): New function to iterate over the
	DWARF debug info compilaton units in a dSYM looking for a specific
	one that we're expanding from a psymtab to a symtab.
	* fix-and-continue.c (pre_load_and_check_file): Update call to
	* objfiles.c (allocate_objfile_internal): Initialize new 
	not_loaded_kext_filename field.
	* objfiles.h (struct objfile): New not_loaded_kext_filename field.
	* symfile.c (check_for_matching_uuid): Don't insist on a matching
	uuid for kext + dSYMs quite yet.
	(struct dbxread_symloc): Private data structure definition copied over
	from dbxread.c so I can copy these.  Maybe this psymtab copying
	function would be better off in dbxread.c so I don't get burned by 
	changes in the future...
	(replace_psymbols_with_correct_psymbols): Function to copy the
	psymtabs derived from the debug map of the kextload'ed symbol file
	into the dSYM file so the actual loaded addresses are used for
	psymtab expansion.
	(symbol_file_add_with_addrs_or_offsets_using_objfile): In the
	kext + dSYM case set the not_loaded_kext_filename field appropriately
	and copy the partial symbol table entries over to the dSYM.
	(symbol_file_add_with_addrs_or_offsets): Pass the kext bundle name
	(symbol_file_add_name_with_addrs_or_offsets): Ditto.
	(symbol_file_add_from_bfd): Update call to 
	(symbol_file_add): Ditto.
	(symbol_file_add_using_objfile): Ditto.
	(symbol_file_add_main_1): Ditto.
	(add_symbol_file_command): Ditto.
	(symbol_file_add_bfd_helper): Ditto.
	(symbol_file_add_bfd_safe): Ditto.
	(find_separate_debug_file): Update to handle kext + dSYMs.
	(add_kext_command): New user command for loading a kext's symbols.
	(_initialize_symfile): Initialize new add-kext command.
	* symfile.h: Expose prototype for dwarf2_kext_psymtab_to_symtab.
	Update prototype for symbol_file_add_bfd_safe.

2006-11-15  Jim Ingham  <>

	* symtab.c (basic_lookup_transparent_type): Replace error's about
	"found in psymtab not in symtab" with complaints.  This failure can
	be caused by reading names from the pubtypes and not knowing whether
	they are structure names or typedef's.
2006-11-06  Jim Ingham  <>

	Add the ability to "edit an objfile in place".  This allows you
	to gang the deletion of objfiles and not make ALL_OBJFILES_SAFE
	* objfiles.c (create_objfile_using_objfile): New function, factors out
	most of create_objfile except mallocing it.
	(create_objfile): Use create_objfile_using_objfile.
	(allocate_objfile_internal): Factor out common parts of 
	(allocate_objfile): Rework to use allocate_objfile_internal.
	(allocate_objfile_using_objfile): The version that doesn't allocate or
	link in the objfile.
	(free_objfile_internal): Factor out bits common to free_objfile and
	(free_objfile): Use free_objfile_internal, also deallocate & unlink.
	(clear_objfile): New function.
	* objfiles.h: declare new functions.
	* symfiles.c (symbol_file_add_with_addrs_or_offsets_using_objfile): 
	New function.  Reuse the passed in objfile.
	(symbol_file_add_name_with_addrs_or_offsets_using_objfile): Ditto.
	(symbol_file_add_using_objfile): Ditto
	* symfile.h: Declare new functions.
2006-11-02  Caroline Tice <>

	Add ability to deal with multiple non-contiguous address ranges.
	* ada-lang.c (ada_lookup_symbol): Replace BLOCK_START and BLOCK_END
	tests with code to deal with possible multiple address ranges.
	* alpha-mdebug-tdep.c (find_proc_desc): Replace BLOCK_START with
	* ax-gdb.c (gen_var_ref):  Likekwise.
	* block.c (address_range_ending_pc): New function.
	(contained_in): Modified to deal correctly with address ranges, if 
	(block_starts_and_ends): New function.
	(block_contains_pc): New function.
	(blockvector_for_pc_sect): Replace BLOCK_START with BLOCK_LOWEST_PC;
	replace BLOCK_END test with appropriate code for dealing with possible
	address ranges.
	(allocate_block): Initialize new ranges field in block struct.
	* block.h (struct address_range): New struct.
	(struct address_range_list): New struct.
	(struct block):  Add new field, ranges, to contain multiple address 
	(BLOCK_RANGES): New macro.
	(BLOCK_RANGE_START): New macro.
	(BLOCK_RANGE_END): New macro.
	(BLOCK_LOWEST_PC): New macro.
	(block_contains_pc): New extern function declaration.
	(block_starts_and_ends): New extern function declaration.
	(address_range_ending_pc): New extern function declaration.
	* blockframe.c (addr_inside_main_func): Replace BLOCK_START and BLOCK_END
	tests with appropriate code for dealing with possibly multiple ranges
	of addresses.
	(find_pc_partial_function): Likewise.
	(block_innermost_frame):  Replace block start & end tests with call to
	* buildsym.c (finish_block): Add new parameter, ranges; Add code to 
	properly test for and deal with multiple address ranges.
	(make_blockvector): Replace BLOCK_START with BLOCK_LOWEST_PC.
	(end_symtab): Add ranges argument to calls to finish_block.
	* buildsym.h (finish_block): Add new parameter, ranges, to declaration.
	* coffread.c  (coff_symtab_read): Add (null) ranges parameter to calls to
	finish block.
	* dbxread.c (process_one_symbol): Likewise.
	* dwarf2read.c (block.h): New include statement.
	(struct inlined_call_record): Add new field, ranges.
	(dwarf2_get_pc_bounds): Add new parameter to contain address ranges
	parsed from die info; Modify to store address ranges into new
	ranges parameter (for returning); to add the correct offset to the
	ranges addresses; to store the first range values in lowpc and highpc
	(dwarf2_add_to_list-of_inlined_calls): Add new parameter, ranges; use
	new parameter to initialize new field in inlined_call_record struct.
	(read_inlined_subroutine_scope): Add new ranges argument to call to 
	dwarf2_get_pc_bounds; check children for lexical block; if found, parse
	IT for address ranges of inlined subroutine; add new argument, ranges,
	to call to dwarf2_add_to_list_of_inlined_calls.
	(read_func_scope): Add ranges argument to calls to dwarf2_get_pc_bounds
	and finish_block; fix up address ranges, if any.
	(read_lexical_block_scope): Likewise.
	(get_scope_pc_bounds): Add ranges argument to calls to 
	(check_inlined_function_calls):  Add ranges arguemnt to call to 
	* dwarfread.c (read_lexical_block_scope): Add (null) ranges parameter to
	call to finish_block.
	(read_func_scope): Likewise.
	* f-valprint.c (info_common_command): Replace BLOCK_START with 
	(there_is_a_visible_common_named): Likewise.
	* findvar.c (read_var_value): Likewise.
	* fix-and-continue.c (do_final_fixups_global_syms): Likewise.
	(redirect_old_function): Add error condition on detecting multiple
	address ranges.
	(update_picbase_register): Likewise.
	* hpread.c (hpread_process_one_debug_symbol): Add null ranges parameter
	to calls to finish_block.
	* infcmd.c (until_next_command): Replace BLOCK_START with 
	* inlining.c (find_function_names):  Rename function to
	(record_end_pc): New function.
	(find_correct_current_position): Modify to deal with address ranges.
	(inlined_function_address_ranges_properly_contained): New function.
	(verify_stack):  Modify to deal with address ranges.
	(find_function_names_and_address_ranges): Renamed from 
	find_function_names; add code to find/record address ranges.
	(add_item_to_inlined_subroutine_stack): Change function call to use
	new name for find_function_names_and_address_ranges.
	(inlined_function_update_call_stack):  Add code to check value of
	dwarf2_allow_inlined_stepping; add code to properly handle address
	(update_function_names_and_address_ranges): New function.
	(fix_up_inlined_function_line_table_entries): New function.
	(inlined_function_add_function_names): Update function comments; add
	code to set ranges field.
	(current_inlined_subroutine_call_stack_eof_pc): New function.
	(in_inlined_function_call_p): Add code to properly handle address
	(inlined_function_end_of_inlined_code_p): Change end_pc test into call
	to record_end_pc.
	(inlined_frame_this_id): Likewise.
	(inlined_subroutine_restore_after_dummy_call): Add code to restore
	ranges field.
	(inlined_subroutine_save_before_dummy_call):  Add code to save ranges
	(rest_of_line_contains_inlined_subroutine): Change end_pc test into call
	to record_end_pc.
	* inlining.h (block.h): New include statement.
	(struct inlined_call_stack_record): Add new field, ranges.
	(inlined_function_add_function_names): Add new ranges parameter.
	(extern int dwarf2_allow_inlined_stepping): New global variable.
	* mdebugread.c (new_block):  Initialize ranges field.
	* mips-mdebug-tdep.c (non_heuristic_proc_desc): Replace BLOCK_START
	*  objc-lang.c (find_methods): Replace BLOCK_START and BLOCK_END with
	* objfiles.c (objfile_relocate): Add code to deal appropriately with
	multiple address ranges.
	* parse.c (parse_exp_in_context): Replace BLOCK_START with
	* printcmd.c (build_address_symbolic): Likewise.
	(address_info): Likewise.
	* stack.c (print_frame): Likewise.
	(print_frame_label_vars): Modify code to deal appropriately with
	multiple address ranges.
	* symmisc.c (dump_symtab_1): Modify to deal appropriately with multiple
	address ranges.
	(print_symbol): Likewise.
	(maintenance_check_symtabs): Replace BLOCK_START and BLOCK_END tests
	with calls to block_contains_pc; Add code to deal appropriately with
	multiple address ranges.
	* symtab.c (lookup_symbol_aux_block): Replace  BLOCK_START with
	(block_size): New function.
	(find_pc_sect_symtab): Replace BLOCK_START and BLOCK end tests with
	call to block_contains_pc; Replace BLOCK_END minus BLOCK_START with call
	to block_size.
	(find_function_start_sal): Replace BLOCK_START with BLOCK_LOWEST_PC;
	replace BLOCK_START and BLOCK_END tests with call to block_contains_pc.
	(update_inlined_function_line_table_entry): New function.
	* symtab.h (update_inlined_function_line_table_entry): New declaration.
	* tracepoint.c (scope_info): Replace BLOCK_START with BLOCK_LOWEST_PC.
	* value.c (value_fn_field): Likewise.
	* xcoffread.c (read_xcoff_symtab): Add null ranges argument to calls to
	* gdbtk/generic/gdbtk-stack.c (gdb_block_vars): Replace BLOCK_START 
	BLOCK_END tests with call to block_starts_and_ends.
	(gdb_get_blocks): Add code to deal appropriately with multiple
	address ranges.
	(gdb_seleted_block):  Return an error if dealing with multiple address
	(get_frame_name): Replace BLOCK_START with BLOCK_LOWEST_PC.
	* macosx/macosx-tdep.c (dyld_symbol_stub_function_address): Likewise.
	* macosx/symread.c (sym_symfile_read): Add code to properly handle
	multiple address ranges.
2006-11-01  Caroline Tice  <>

	* symtab.c (find_pc_sect_line):  Make sure outer_call_site has a value,
	even if symtabs don't match.

2006-10-30  Jim Ingham  <>

	* interps.c (interp_set_ui_out): New function.
	* interps.h: Declare it.

2006-10-20  Jim Ingham  <>

	* dbxread.c (parse_archive_name): New function.
	(read_dbx_symtab): Use parse_archive_name.
	(open_bfd_from_oso): Ditto.

2006-10-19  Jim Ingham  <>

	* dbxread.c (read_dbx_symtab): handle the case where we
	have an OSO record, but the file it points to is missing.
2006-10-18  Jason Molenda  (

        * dbxread.c (read_oso_nlists): Initialize processing_objfile
        instead of picking up whatever (possibly invalidated) value
        it might contain.

2006-10-16  Jim Ingham  <>

	* objc-lang.c (lookup_objc_class): If you can't call
	functions in the target, return zero (instead of crashing).
2006-10-12  Jim Ingham  <>

	* objc-lang.c (find_methods): Fix a thinko in the code
	added to support separate_debug_objfiles.
2006-10-12  Jason Molenda  (

	* dwarf2read.c (process_die): Handle DW_TAG_const_type
	DIEs here.

2006-10-11  Greg Clayton  <>
	* main.c (captured_main): Add missing break in switch 
	statement for OPT_WAITFOR case.

2006-10-11  Jason Molenda  (

	* Report results of test for Carbon framework.
	* configure: Regenerated.
	* doc/configure: Regenerated with autoconf 2.60.
	* gdbserver/configure: Ditto.
	* testsuite/configure: Ditto.
	* testsuite/ Ditto.
	* testsuite/gdb.stabs/configure: Ditto.

2006-10-11  Jason Molenda  (

	* (MIG_CHECKING): New makefile variable to enable
	MIG type checking.
	* (MIG_CHECKING): Same.
	* configure: Regenerated.

2006-10-11  Jim Ingham  <>

	* infrun.c (handle_inferior_event): Raise the load level
	of the stop_pc objfile so we have access to the relevant
        symbols & debug info before we try to do backtracing type

2006-10-11  Jason Molenda  (

	* symtab.c (search_symbols): Add yet another pass over
	the objfiles to raise the load level of any objfiles
        with minimal symbols that match the regexp.

2006-10-11  Jim Ingham  <>

	* disasm.c (dump_insns): Use disassembly_name_length to 
	truncate the symbol name.
	* disasm.h: Define disassembly_name_length.
	* printcmd.c (_initialize_printcmd): Add the set-show
	for disassembly-name-length.

	* mem-break.c (default_memory_remove_breakpoint): If the
	instruction has changed since we wrote our trap, store the
	new instruction (probably self-modifying code) rather than
	restoring the old value.
2006-10-10  Jason Molenda  (

	* rs6000-tdep.c (rs6000_dwarf2_reg_to_regnum): Make linkage global.
	Warn when an invalid register number is received.
	* ppc-tdep.h: Prototype for rs6000_dwarf2_reg_to_regnum.

2006-10-09  Greg Clayton (

	* dwarf2read.c (new_symbol): Create a typedef symbol for
	objective C/C++ classes.

2006-10-05  Jason Molenda  (

	* dwarf2read.c (decode_locdesc): Ditch the original patch for
	CVE-2006-4146 and handle the array bounds checking in a more
	natural form.

2006-10-04  Jason Molenda  (

	* objc-lang.c (find_implementation_from_class): Return immediately
	if the selector we're inspecting is the 0xfffeb010 bit pattern.

2006-10-03  Jason Molenda  (

	* objc-lang.c (find_implementation_from_class): Ignore selectors
	where the address of the name is 0xfffeb010 - it's a bit pattern
	with special meaning to the runtime on little-endian systems.

2006-09-29  Jim Ingham  <>

	* dwarf2read.c (dwarf2_locate_sections): add support for pubtypes.
	(find_pubtypes): New function.
	(dwarf2_scan_pubtype_for_psymbols): New function.
	* symfile.h: define dwarf2_scan_pubtype_for_psymbols.
	* symtab.c (lookup_symbol_aux_psymtabs): Change found in psymtab but not
	in symtab from error->complaint.  This will happen in Dwarf because we
	don't know whether the names in the pubtypes table are tag names or
	typedef names.
	* dbxread.c (read_dbx_symtab): Call dwarf2_scan_pubtype_for_psymbols
	on the OSO files.
2006-09-28  Jim Ingham  <>

	* maint.c (maintenance_interval_display, init_timer, push_timer,
	pop_timer, stop_timer, report_timer_interval, 
	maintenance_report_interval_command, stop_report_timer,
	make_cleanup_start_report_timer, find_timer, start_timer): New functions
	implementing "interval timers".
	(_initialize_maint_cmds): Add the "interval" and "report-interval"
	* defs.h: Defines for start_timer & maint_use_timers.
	* dbxread.c (dbx_symfile_add): Add a timer.
	* objc-lang.c (lookup_objc_class): Add timer, also lock the scheduler
	when calling into the inferior to lookup the class.
	* symfile.c (psymtab_to_symtab): Add a timer.
	* value.c (value_fn_field): Check for NULL block.
2006-09-26  Jason Molenda  (

	* dbxread.c (read_oso_nlists): Ignore symbols with a '.' in their name
	except for function static vars and, now, functions in a C++ anonymous

2006-09-20  Jason Molenda  (

	* cli/cli-cmds.c (edit_command): Don't cast addresses to 32-bits 
	before printing.
	(list_command): Ditto.

2006-09-14  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Linewrapping whitespace fix.
	* dwarf2read.c (EH_FRAME_SECTION): Use the MachO segment/section name.
	(decode_locdesc): Update to final patch form of CVE-2006-4146.

2006-09-13  Jason Molenda  (

	* symfile.c (find_separate_debug_file): Fix conditional
	preprocessor usage as per Greg's intended change.

2006-09-05  Jim Ingham  <>

	* valops.c (value_cast_1): New functions, wrap value_cast so
	I can fix up typedefs.
	(value_cast): Don't remove typedef from value_cast.

2006-09-01  Jim Ingham  <>

	* dbxread.c (read_dbx_symtab): Demangle the vtable symbol name
	to get the classname.  Otherwise we miss classes in namespaces.

	* valops.c: (check_field_in): If the baseclass type is a stub,
	call CHECK_TYPEDEF on it before searching in it.
2006-08-29  Caroline Tice  <>

	* i386-tdep.c (i386_skip_prologue):  Remove erroneous ';' at the end of
	a condition on an if statement.  It was causing incorrect parsing of
	i386 prologues with gcc 1518.

2006-08-25  Stan Shebs  <>

	* checkpoint.c (forking_checkpoint): New global.
	(collect_checkpoint): Reorg to use it.
	(_init_checkpoint): Add command to set it.
	(maybe_create_checkpoint): Catch an unusual situation.
	(print_checkpoint_info): Print memory statistics for in-GDB
	(clear_all_checkpoints): Clear collecting_checkpoint too.
	* checkpoint.h: Declare memcache_get.

2006-08-24  Caroline Tice  <>

        * top.c (execute_command): Rename "line" to be "tmp_line", to avoid
	potential further confusion in the future.

2006-08-24  Caroline Tice  <>

        * top.c (execute_command): Make "line" into a local variable
	again (local definition had been accidentally deleted); Re-undo change 
	from 2006-08-04, restoring original pointer assignment of p into line 
	(now the local variable version). 

2006-08-22  Jason Molenda  (

        * top.c (execute_command): Reapply change from 2006-08-04; simple
        removal causes crashes in break.exp and commands.exp.

2006-08-22  Caroline Tice  <>

	* infcmd.c (step_once):  Fix code for finding sal for stepping into
	inlined subroutine; also don't adjust global_inlined_call_stack until
	correct sal has been found.
	(finish_command):  When finishing from an inlined function, set 
	step_frame_id, so gdb will stop in correct frame.
	* infrun.c (handle_inferior_event):  Allow stepping to stop within a
	line if the line contains an inlined subroutine.
	* inlining.c (add_item_to_inlined_subroutine_stack):  Don't take symtab
	from call_site;  Use current symtab rather than original one when
	calling add_item_to_inlined_subroutine_stack.
	(at_inlined_call_site_p): Add valid case if there's only a single
	possible record (low == high).
	(print_inlined_frame):  Take file name from sal rather than 
	(step_into_current_inlined_subroutine):  Add loop to step into/through
	multiple levels of inlining, if necessary, to reach appropriate record.
	(rest_of_line_contains_inlined_subroutine):  Modify to check entire 
	line, from begining of line, not just from current position within line.
	* stack.c (print_frame_info): Use symtab from sal rather than from
	(print_frame):  Fix code for finding symtab, for printing filename,
	if inside inlined subroutine.
	(backtrace_command_1):  Add code to demangle C++ names, when reporting
	inlined subroutines.
	* symtab.c (find_pc_sect_line): Remove erroneous code that attempted to
	adjust line number for first line of inlined subroutine.

2006-08-22  Caroline Tice  <>

	* top.c (execute_command):  Undo change from 2006-08-04: revert
	the strcpy back to a pointer assignment.
2006-08-21  Jason Molenda  (

	* dwarfread.c (locval): A stack of zero elements is legal.
	* dwarf2read.c (decode_locdesc): Ditto.

2006-08-21  Jason Molenda  (

        Patch from Will Drewry <> and 
        Tavis Ormandy <> to address CVE-2006-4146.

        * dwarfread.c (locval): Don't walk off the location description stack.
	* dwarf2read.c (decode_locdesc): Don't walk off the location 
	description stack.

2008-08-21  Caroline Tice  <>

	* dwarf2read.c (read_inlined_subroutine_scope):  Make sure the compiler
	generated the call site information before attempting to use it.
2006-08-04  Caroline Tice  <>

	* infcmd.c (step_omce): Remove unnecessary call to 
	* thread.c (do_captured_thread_select): If inside and inlined
	function, make sure deprecated_selected_frame has a valid value.
	* top.c (execute_command):  do strcpy of p into line rather than
	pointer assignment.

2006-08-03  Jason Molenda  (

	* infcall.c (_initialize_infcall): 
	inferior_function_calls_disabled_p is only defined for
	native gdb's.

2006-08-03  Jason Molenda  (

	* infcall.c (_initialize_infcall): Add set/show for
	inferior_function_calls_disabled_p.  Need to add function
	to note if the user set this or the target so the error
	message can be better than "no inf func calls for translated

2006-08-02  Jim Ingham  <>

	* source.c (convert_sal): Add explanatory comment.
	* symtab.c (find_pc_sect_line): Change a huh? comment to 
	an explanatory one.
2006-08-02  Caroline Tice  <>

	* inlining.c (rest_of_line_contains_inlined_subroutine):  If the
	sal could not find a line number (i.e. line is 0), return a 0

2006-08-01  Jim Ingham  <>

	* ( Turn off the tui, since if you use it it
	crashes, and we don't intend to make it work.
2006-08-01  Caroline Tice  <>

	* infcmd.c (annotate.h): New include statement.
	(mi-common.h, mi-cmds.h, mi-main.h): Remove include statements.
	(step_1): Don't call async_disable_stdin if we're stepping into an
	inlined function (i.e. not executing the inferior).
	(step_once): Move all the code for handling stepping into an inlined
	subroutine from execute_command into step_once.  Also, remove code
	that calls mi routines and forces gdb_prompt, and add call to
	* top.c (mi-common.h, mi-cmds.h, mi-main.h): Remove include statements.
	(execute_command): Remove code for handling stepping into inlined
	subroutine; move it to step_once.

2006-07-27  Caroline Tice  <>

        * dwarf2read.c (struct inlined_call_record): Add two new fields, 
        decl_file_index and decl_line, to record actual decl location of
        inlined subroutine (before it got inlined).
        (dwarf2_add_to_list_of_inlined_calls):  Add two new parameters, 
	decl_file and decl_line; use those to fill in new fields in 
        (read_inlined_subroutine_scope): Get the decl location for inlined 
        subroutine from its abstract_origin die, and pass the information to 
	(check_inlined_function_calls):  Add two new parameters,
	cu and comp_dir; check to see if required subfile has not
	been created yet, and if not, create it.  Also, if inlined
	subroutine is declared in one file but inlined in a different
	file, make sure the INLINED_SUBROUTINE_LT_ENTRY goes into
	the linetable for the declaration file, and the
	INLINED_CALL_SITE_LT_ENTRY goes into the linetable for the
	call site file.
        (dwarf_decode_lines):  Add two new arguments, cu and comp_dir, to calls
        to check_inlined_function_calls.
        * infcmd.c (step_once): Look for INLINED_CALL_SITE sal entry, rather
        than INLINED_SUBROUTINE sal entry, when stepping into an inlined 
        * inlining.c (print_inlined_frame): Use line number from sal rather than
        trying to get line number from previous frame.
        (rest_of_line_contains_inlined_subroutine): Fix while loop to not skip
        last iteration; add check for INLINED_CALL_SITE_LT_ENTRY.
        * symtab.c (gdb_assert.h): Add new include statement.
        (find_pc_sect_line):  Completely re-write the portion of this dealing
        with finding and returning line table entries for inlined subroutines,
        so it can properly deal with multiple entries across multiple line 
        tables from different symbol tables (files).

2006-07-27  Stan Shebs  <>

	* checkpoint.c (subsystem_checkpointing): New global.
	(collect_checkpoint, rollback_to_checkpoint): Use it.
	(_initialize_checkpoint): New settable variable

2006-07-26  Stan Shebs  <>

	Fixes from Jim Ingham:
	* checkpoint.c (load_helpers): Terminate string properly, warn about
	dlopen results.
	(sigterm_handler): New function, clears checkpoint forks.
	(_initialize_checkpoint): Install it.

2006-07-21  Stan Shebs  <>

	* checkpoint.c (inferior_call_checkpoints): New global.
	(maybe_create_checkpoint): Test it.
	(begin_inferior_call_checkpoints, end_inferior_call_checkpoints):
	New functions.
	(rollback_to_checkpoint): Move rolling_back outside of external
	subsystem rollbacks.
	* infcall.c (hand_function_call): Call the begin and end
	functions above.

2006-21-2006  Jim Ingham  <>

	* symfile.c (check_for_matching_uuid): Fix a warning message.
2006-07-18  Jason Molenda  (

	* amd64-tdep.c (amd64_analyze_prologue): Skip over fix-and-continue
	generated nop insns when looking for the prologue.

2006-07-18  Stan Shebs  <>

	* checkpoint.c (max_checkpoints): New global.
	(prune_checkpoint_list): New function.
	(finish_checkpoint): Call it.
	(collect_checkpoint): Use correct checkpoint id in CG call.
	(delete_checkpoint): Update last_checkpoint correctly.
	(delete_checkpoint_command): Better looping for mass deletion.
	(set_max_checkpoints): New function.
	(_initialize_checkpoint): New command "set max-checkpoints".
	* checkpoint.h (struct checkpoint *): New field "keep".

2006-07-18  Jim Ingham  <>

	* inferior.h: Declare make_cleanup_suppress_hook_stop.
	* infrun.c: (make_cleanup_suppress_hook_stop, 
	do_cleanup_suppress_hook_stop): New functions.
	(hook_stop_stub): Check whether we are suppressing the stop hook.
	* parse.c (parse_exp_in_context): Disable the stop hook before
	starting to parse.
2006-07-17  Jason Molenda  (

	* top.c: Include "checkpoint.h"
	* infcmd.c (rx_cp, active_checkpoint): Declare these as their actual
	* checkpoint.c: Include necessary std header files.
	* checkpoint.h: Add prototypes for clear_all_checkpoints, 

2006-07-14  Stan Shebs  <>

	* checkpoint.c (load_helpers): Change dylib name.

2006-07-13  Jason Molenda  (

	* infcmd.c (_initialize_infcmd): Update 'attach' documentation
	to note Apple local extensions.
	* main.c (captured_main): Recognize a new --waitfor command line

2006-07-13  Jim Ingham  <>

	* varobj.c (new_variable): Initialize path_expr to NULL.

2006-07-13  Stan Shebs  <>

	* checkpoint.c (load_helpers): New function.
	(collect_checkpoint): Call it.

2006-07-12  Caroline Tice  <>

        * (SFILES): Add inlining.c
	(inlining_h): New definition.
	(BASE_OBS): Add inlining.o
	(breakpoint.o): Add inlining_h
	(dwarf2read.o, frame.o, frame_unwind.o, infcmd.o, infrun.o): Likewise.
	(inlining.o): New definition.
	(linux-thread_db.o, ocd.o, remote-e7000.o, remote-mips.o): Add 
	(remote-rdp.o, stack.o, thread.o, top.o, tracepoint.o): Likewise.
	(mi-cmd-stack.o, mi-main.o): Likewise.
	* breakpoint.c (inlining.h):  New include statement.
	(print_it_typical): Add case for bp_inlined_breakpoint.
	(bpstat_stop_status):  Modify condition comparing frames if an 
	INLINED_FRAME is involved; call 
	inlined_subroutine_adjust_position_for_breakpoint if the inferior hit a 
	bp_inlined_breakpoint breakpoint.
	(bpstat_what):  Add case for bp_inlined_breakpoint.
	(print_one_breakpoint):  Add info for bp_inlined_breakpoint.  Add case 
	for bp_inlined_breakpoint.
	(user_settable_breakpoint):  Add case for bp_inlined_breakpoint.
	(allocate_bp_location): Likewise.
	(disable_breakpoints_in_shlibs):  Add bp_inlined_breakpoint to 
	(mention):  Add case for bp_inlined_breakpoint.
	(create_breakpoints):  Add call to 
	check_for_additional_inlined_breakpoint_locations, and recursive call 
	to create_breakpoints, if appropriate.
	(breakpoint_re_set_one):  Add case for bp_inlined_breakpoint.
	(breakpoint_re_set_all):  Likewise.
	(disable_command):  Likewise.
	(enable_command):  Likewise.
	(write_one_breakpoint):  Likewise.
	(save_breakpoints_command):  Add check for bp_inlined_breakpoint.
	* breakpoint.h (enum bptype):  Add new type, bp_inlined_breakpoint.
	* buildsym.c (record_line):  Add two new parameters to the function,
	END_PC and ENTRY_TYPE, corresponding to the two new fields in line table
	entries.   Also use the new values passed in when creating the new line
	table entry.
	* buildsym.h (record_line):  Change function declaration to match new 
	* coffread.c (coff_symtab_read):  Modify calls to record_line to pass in
	the two new arguments.
	(enter_linenos): Likewise.
	* corelow.c (inlining.h):  New include statement.
	(core_open):  Add call to clear_inlined_subroutine_print_frames after
	* dbxread.c (process_one_symbol):  Modify calls to record_line to pass 
	in the two new arguments.
	* dummy-frame.c (dummy_frame_push):  Add call to 
	* dwarf2read.s (inlining.h): New include statement.
	(struct inlined_call_record):  New struct.
	(inlined_call_sites): New global variable.
	(dwarf2_allow_inlined_stepping):  New set/show global variable.
	(read_inlined_subroutine_scope): New function.
	(process_die):  Add call to read_inlined_subroutine_scope for 
	inlined_subroutine dies, if dwarf2_allow_inlined_stepping is set.
	(dwarf2_add_to_list_of_inlined_calls): New function.
	(check_inlined_function_calls): New function.
	(dwarf_decode_lines):  Add call to check_inlined_function_calls after
	each call to record_line; and add the two new arguments to calls to
	(new_symbol): Add case for DW_TAG_inlined_subroutine.
	(_initialize_dwarf2_read):  Add call to add_setshow_boolean_cmd, to
	set up dwarf2_allow_inlined_stepping to be a set/show gdb variable.
	* dwarfread.c (decode_line_numbers):  Add two new arguments to call to 
	* frame_unwind.c (inlining.h) New include statement.
	(frame_unwind_init):  Add inlined_frame_unwind to the table immediately
	after the dummy_frame_unwind; Make the insertion point fort OSABI
	sniffers to come after the inlined_frame_unwind.
	* frame.c  (inlining.h): New include statement.
	(fprint_frame_type):  Add case for INLINED_FRAME.
	(frame_unwind_id): Add an extra level of unwinding if the frame type is
	(flush_cached_frames):  Add call to flush_inlined_subroutine_frames.
	(get_prev_frame_1): Modify conditions of various error checks to
	take INLINED_FRAMEs properly into account.
	(get_prev_frame):  Likewise.
	(find_frame_sal):  Modify to cope properly with the linked list of
	SALs that may be returned for a PC at an inlined subroutine call.
	(inlined_frame_prev_register): New function.
	* frame.h (INLINED_FRAME): New frame type.
	* hpread (hpread_record_lines):  Modify calls to record_line to pass in
	the two new arguments.
	(hp_process_one_debug_symbol):  Likewise.
	* infcall.c (hand_function_call):  Add call to 
	* infcmd.c (mi/mi-common.h) New include statement.
	(mi/mi-cmds.h) Likewise.
	(mi/mi-main.h) Likewise.
	(inlining.h) Likewise.
	(run_command_1):  Add code to properly initialize 
	(step_once):  Add code to cope with 'next' over an inlined function
	or the final 'step' into an inlined subroutine (the step into the
	innermost inlined subroutine).  Also code to help deal with an
	inlined subroutine within a larger source line being 'next'ed over or
	'step'ed into.
	(finish_command):  Added code to correctly finish from  inside an
	inlined subroutine.
	* inferior.h (insert_step_resume_breakpoint_at_sal):  Add extern 
	function declaration (the function used to be static, inside infrun.c).
	* infrun.c (inlining.h): New include statement.
	(prepare_to_proceed):  Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack.
	(handle_inferior_event): Likewise; also fix struct types for prev_frame
	declarations (make them frame_info instead of frame);
	(insert_step_resume_breakpoint_at_sal): Remove "static" qualifier on 
	function; also check to see if the breakpoint is at the exit of an 
	inlined subroutine, and if so, adjust the global_inlined_call_stack 
	(normal_stop):  Add call to clear_inlined_subroutine_print_frames after
	print_stack_frame.  Also, if a dummy call just ended, call 
	inlined_subroutine_restore_after_dummy_call, then check to see if 
	stop_pc has changed since last time global_inlined_call_stack was 
	updated, and if so re-update it
	* inlining.c : New file.
	* inlining.h : New file.
	* linux-thread-db.c (inlining.h): New include statement.
	(check_event):    Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack.
	* mdebugread.c (psymtab_to_symtab_1): Modify call to record_line to pass
	in two new arguments.
	* ocd.c (inlining.h): New include statement.
	(ocd_start_remote):   Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack.  Also, call 
	clear_inlined_subroutine_print_frames after print_stack_frame.
	* remote-e7000.c (inlining.h): New include statement.
	(e7000_start_remote):  Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack; also call
	clear_inlined_subroutine_print_frames after print_stack_frame.
	* remote-mips.c (inlining.h): New include statement.
	(common_open):   Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack.  Also call
	clear_inlined_subroutine_print_frames after print_stack_frame.
	* remote-rdp.c (inlining.h): New include statement.
	(remote_rdp_open):   Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack.  Also call
	clear_inlined_subroutine_print_frames after print_stack_frame.
	* stack.c (inlining.h): New include statement.
	(print_frame_info):  Add code to print out correct locations if
	inside an inlined subroutine.
	(print_frame):  Check to see if user is inside an inlined subroutine
	and if the current frame is an INLINED_FRAME.  Call print_inlined_frame
	if appropriate.  Modify the source line printed if user is inside an
	inlined subroutine.  For inlined function call sites, get the
	symtab from the current global_inlined_call_stack record.
	(backtrace_command_1):  If the user is inside an inlined subroutine,
	print out information about what was inlined where before printing out
	normal information.
	(select_and_print_frame):  Call clear_inlined_subroutine_print_frames
	after print_stack_frame.
	(frame_command):  Likewise.
	(current_frame_command):  Likewise.
	(up_command):  Likewise.
	(down_command):  Likewise.
	(return_command):  Check to see if user is inside inlined subroutine; if
	so, tell the user what has been inlined into what (for current) 
	position, before outputting return prompt question; Add call to 
	inlined_subroutine_restore_after_dummy_call if returning from a dummy 
	* symtab.c  (init_sal):  Initialize new fields, entry_type and next.
	(find_pc_sect_line): Modify it to check for inlined subroutine
	line table entries and returned a linked list of sals if found; 
	added/moved code so inlined function entries wouldn't be lost if 
	multiple symbol tables/files are used.
	* symtab.h (enum line_table_entry_type):  New type, for classifying
	line table entries.  Current enums are:  NORMAL_LT_ENTRY, 
	(struct linetable_entry):  Add two new fields, end_pc and entry_type.
	(struct symtab_and_line): Add two new fields, entry_type and next.
	* thread.c (inlining.h): New include statement.
	(info_threads_command): Add calls to 
	clear_inlined_subroutine_print_frames after print_stack_frame.
	(switch_to_thread):  Check to see if the stop_pc has changed since
	the last time global_inlined_call_stack was updated, and if so
	re-update global_inlined_call_stack.
	(restore_current_thread):  Add call to 
	clear_inlined_subroutine_print_frames after print_stack_frame.
	(do_captured_thread_select):  Likewise.
	* top.c (mi/mi-common.h): New include statement.
	(mi/mi-cmds.h): Likewise.
	(mi/mi-main.h): Likewise.
	(inlining.h): Likewise.
	(execute_command):  Check to see if the user requested a 'step' and
	is at the call site of an inlined subroutine.  If so, change the user's
	context without actually running the inferior.
	* tracepoint.c  (inlining.h):  New include statement.
	(finish_tfind_command):  Add call to 
	clear_inlined_subroutine_print_frames after print_stack_frame.
	* xcoffread.c (enter_line_range):  Add two new arguments to call to 

2006-07-08  Stan Shebs  <>

	* checkpoint.c (CP_FORK_NAME): Macrofy fork function name.
	(collect_checkpoint): Use it, also add call for CG state save.
	(rollback_to_checkpoint): Add call for CG state restore, use
	(warned_cg): New global.
	(clear_all_checkpoints): Clear rolled_back.
	* infrun.c (rollback_stop): New function, modified normal_stop.
	(proceed): Disable resume-from-rollback warning for now.

2006-07-07  Jason Molenda  (

	* linespec.c (decode_all_digits_exhaustive): Initialize sal with
	0x0 addrs so a non-match is correctly detected, e.g. a breakpoint
        on a source line past the end of the file.

2006-07-05  Jason Molenda  (

	* linespec.c (decode_line_1): Fix logic in cond expr that avoids
	objc method lookups for "main" and "exit".

2006-06-28  Greg Clayton  <>

	* symfile.c (find_separate_debug_file): Use Apple-specific version of
	this function to find dSYM files when __APPLE__ is defined instead of
	using NM_NEXTSTEP.  NM_NEXTSTEP isn't defined for cross-gdb's but we
	still need to look for dSYM files in those cases.

2006-06-23  Jason Molenda  (

	* linespec.c (decode_line_1): Also don't look for ObjC methods
	named "error".

2006-06-23  Jason Molenda  (

	* Substitute UNIX03_UGH_CFLAGS in the Makefile.
	Set __DARWIN_UNIX03 to 0 to use pre-conformant headers/functions.
	* Add UNIX03_UGH_CFLAGS to various CFLAGS.

2006-06-13  Jim Ingham  <>

	* Uncomment the LIBXML2 variables
	* Put the LIBXML2 defines back (lost
	in the merge.)
2006-06-12  Jim Ingham  <>

	* charset.c: Add a utf-8 charset.
	(utf_8_print_literally): New function.
	(utf_8_to_control): New function.
	(utf_8_family_charset): New function.
	(register_charset): Register it.
	* Make UTF-8 the macosx native
2006-06-11  Stan Shebs  <>

	* checkpoint.c (create_checkpoint_command): Add a check.
	(collect_checkpoint): Improve cpfork lookup, use direct_memcache_get.
	(delete_checkpoint): New.
	(map_checkpoint_numbers): New.
	(clear_all_checkpoints): Rename from clear_checkpoints.
	(_initialize_checkpoint): Add checkpoint deletion command.
	* infcmd.c (kill_if_already_running): Clear checkpoints.
	(attach_command): Ditto.
	* top.c (quit_target): Ditto.
	* infrun.c (proceed): Query about proceeding after rollback.

2006-06-05  Jim Ingham  <>

	* valops.c (allocate_string_in_inferior): New function.
	(value_clear_inferior_string_pool): New function.
	(value_string): use allocate_string_in_inferior.
	* target.c (generic_mourn_inferior): Clear out string pool.
	* values.h: define value_clear_inferior_string_pool.
2006-06-01  Jim Ingham  <>

	* source.c (set_pathname_substitution): New function.
	(_initialize_source): Add set_pathname_substution as
	the set function.

2006-06-01  Jason Molenda  (

	* (gdb): Remove MACOSX_DEPLOYMENT_TARGET setting;
	it was only needed while we were weak linking to Carbon.

2006-06-01  Jim Ingham  (

	* varobj.c (varobj_create): Check the return from
	gdb_value_fetch_lazy, and set error if it fails.
	(varobj_update): Call value_fetch_lazy on the new
	value if necessary, and handle the error if this
	doesn't work.

2006-05-30  Jason Molenda  (

	* Link to Carbon normally, not weak.
	* configure: Regenerated.

2006-05-30  Jim Ingham  <>

	* varobj.c (varobj_get_type_index_from_fake_child): Skip
	static fields.
	(cplus_real_type_index_for_fake_child_ind): Ditto.

2006-05-25  Jason Molenda  (

	* dbxread.c (read_oso_nlists): Do ingest file static variables
	which have had a ".[0-9]+" suffix added by the compiler.

2006-05-24  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Only skip the first character
	of the name if it is the bfd_prefix_char, i.e. don't skip the
	first char of ObjC method function names.
	(read_oso_nlists): Don't create OSO nlist records for artifical
	nlist entries that contain "." in the names.

2006-05-24  Jason Molenda  (

	* (gdb): Set MACOSX_DEPLOYMENT_TARGET when doing the
	final app link to avoid weak linking warnings from the static link

2006-05-23  Jim Ingham  <>

	* If the carbon framework exists, weak link to it.
	* Add the carbon framework weakly to the gdb link.
	* infrun.c (normal_stop): Move the call to the stop_command to 
	AFTER the point where the bottom frame is set.  Otherwise the
	hook-stop commands will get the old version of the cursal, not the
	current one.
2006-05-23  Jason Molenda  (

	* objc-lang.c: Update for 64-bit objc runtime.
	(get_addrsize): New function.  May prove to be too inefficient to
	fetch this every time; possibly cache the value and dirty the cache
	when exec_bfd is changed.
	(print_object_command): Whitespace fixes; treat address values as such.
	(read_objc_method): Updated for 64 bit objc runtime.
	(read_objc_method_list_nmethods): Ditto.  Renamed from 
	read_objc_methlist_nmethods to be consistent with the structure
	name in the objc runtime.
	(read_objc_method_list_method): Ditto.
	(read_objc_object): Updated for 64 bit objc runtime.
	(read_objc_super): Ditto.
	(read_objc_class): Ditto.
	(find_implementation_from_class): Ditto.
	(value_objc_target_type): Ditto.

2006-05-22  Jason Molenda  (

	* linespec.c (decode_line_1): Don't do method lookup for

2006-05-17  Jason Molenda  (

	* target.c (deprecated_debug_xfer_memory): Use paddr_nz to print
	addresses, not any of the printf builtin formatters.
	(debug_to_insert_breakpoint): Ditto.
	(debug_to_remove_breakpoint): Ditto.

2006-05-15  Jim Ingham <>

	* objfiles.c (objfile_set_load_state): Discriminate between
	real error and the user not requesting auto-loading.
	(objfile_name_set_load_state): Ditto.

2006-05-11  Jim Ingham <>

	* config/xm-macosx.h: Include signal.h.
	* fork-child.c (startup_inferior): Recognize a crash in the
	shell instead of in the inferior process and flag it as such.

2006-05-10  Greg Clayton  (

	* dbxread.c (read_dbx_symtab): Skip adding any debug map symbols
	when we have a dSYM file.

	* symfile.c (symbol_file_add_with_addrs_or_offsets): Moved the
	code that locates and parses the dSYM file for a given objfile to
	happen before syms_from_objfile() gets called. When we know if a
	dSYM file exists and is that the UUIDs match for a given executable
	before calling syms_from_objfile(), we will know wether to ignore
	the debug map entries we may find in the main executable.

	* elfread.c (elf_symtab_read): Change #ifdef condition that
	surrounds msym->filename code to only be enabled for when
	defined since we don't need the filename member for OS X
	development. The only place that sets this member is in elfread.c.

	* symmisc.c (dump_msymbols): Ditto.

	* symtab.h (struct minimal_symbo): Ditto.

	* minsyms.c (lookup_minimal_symbol): Ditto.
	(prim_record_minimal_symbol_and_info): Added initialization for the
	filename member of minimal_symbol since it was not getting
	initialized to NULL.

2006-05-09  Jason Molenda  (

	* procfs.c (proc_update_threads): Fix flipped bit in a comment
	from cosmic ray hitting cvs server or something.

2006-05-02  Jason Molenda  (

        * environ.c (smuggle_dyld_settings): dyld no longer truncates
        DYLD_FRAMEWORK_PATH etc to an empty string; it now excludes it
        entirely from the child's environment.  Fix logic in this function
        to handle that correctly.

2006-05-02  Stan Shebs  <>

	* checkpoint.h (enum cp_type): New, for types of checkpoints.
	(struct checkpoint): Add type and logical prev/next fields.
	* checkpoint.c: General redesign to use new fields, various
	(_initialize_checkpoint): New commands "redo" and "now".
	* infrun.c (normal_stop): Move auto-checkpointing to end.

2006-03-28  Eric Albert  (

	* i386-tdep.h (struct gdbarch_tdep): Update the comment for wordsize to
	account for x86-64.

2006-03-23  Eric Albert  (

	* config/i386/ (TDEPFILES): Add amd64-tdep.o.

2006-04-28  Jason Molenda  (

	* fix-and-continue.c (create_current_active_funcs_list): Don't xstrdup
	a NULL char* like we tend to have in DWARF programs.

2006-04-27  Jason Molenda  (

	* dbxread.c (record_minimal_symbol): Update DBX_TEXT_SECTION et al
	to use a struct obj_section instead of BFD asection.
	(dbx_symfile_init): Don't initialize DBX_TEXT_SECTION et al here.
	We don't use this code path so I'm not updating it to the new
	* gdb-stabs.h: (struct dbx_symfile_info): Update text_section et al
	to struct obj_sections.

2006-04-21  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Add function static data to
	the psymtab w/ its mangled name; put static data in the 
	static psymtab table, not the global one.
	* dwarf2read.c (convert_oso_map_to_final_map): Look up names from
	the .o file nlist records in the psymtab instead of an unscoped
	global lookup via minimal_symbol_lookup to get the correct one.
	(read_file_scope): Prefer the psymtab's textlow/texthigh settings
	when a debug map was processed - it will have the correct range of
	addresses that functions are contained within.
	* symtab.h (lookup_minimal_symbol_by_pc_section_from_objfile): Add

2006-04-19  Jim Ingham <>

	* varobj.c (c_value_of_variable): Ensure the varobj's child count
	is initialized before printing.

2006-04-17  Jim Ingham <>

	* varobj.c (varobj_value_struct_elt_by_index): Do the work of
	value_struct_elt, but look up by index in the TYPE_FIELDS array
	instead of by name.
        (varobj_lookup_struct_elt_type_by_index): Ditto for 
	(varobj_get_type_index_from_fake_child): New function.
	(cplus_make_name_of_child): Use 
	(create_child): Use the index to create the anonymous
	child names.  This makes testsuites easier to write...
	(c_value_of_child); Don't use the element name to lookup 
	the child, it's not unique for anonymous structures & unions.
	(c_type_of_child): Ditto.
	(cplus_value_of_child): Ditto.
	(cplus_type_of_child): Ditto.
2006-04-17  Jason Molenda  (

	* objfiles.c (objfile_relocate): Relocate the deprecated_sym_stab_info
        (aka DBX_SYMFILE_INFO) member of the struct objfile along with 
	everything else.

2006-04-  Greg Clayton  (

	* symfile.c (find_separate_debug_file): We now search for dSYM 
	files at one extra location for bundles where we do not strip 
	the executable bundle extension before appending the dSYM 
	bundle path information.

2006-04-13  Jason Molenda  (

	* symtab.c (symbol_set_names): Demangle the symbol name
	even if a demangled version is found in the cache so that
	the symbol's language is correctly initialized.
	* dbxread.c (read_dbx_symtab): Add GSYMs to the psymtab.

2006-04-13  Jason Molenda  (

	* dwarf2read.c (struct dwarf2_cu): Add comp_dir field.
	(read_file_scope): Set comp_dir.
	(dwarf_decode_lines): Pass cu->comp_dir.
	(dwarf2_start_subfile): If dirname is relative, prepend
	(build_dummy_cu): Copy over comp_dir setting.

2006-04-11  Jason Molenda  (

	* dwarf2read.c (translate_debug_map_address): Note whether
	the highpc was set on the failing lookup.
	(dwarf2_get_pc_bounds): If no address attributes found, don't try
	to translate the 0's.

2006-04-11  Jason Molenda  (

	* dwarf2read.c: Add "set debug debugmap" switch to get information
	about how addresses are being translated by the DWARF debug map
	between the .o file and the executable.
	(show_debug_debugmap): New function.
	(translate_debug_map_address): Print translation results when
	'set debug debugmap 1'.
	(translate_common_symbol_debug_map_address): Ditto.
	(dwarf_decode_lines): Indicate start & end of line program
	processing for easier reading of the output.

2006-04-11  Jason Molenda  (

	* objfiles.c (make_cleanup_restrict_to_shlib): Whitespace cleanup.
	* linespec.c (intersect_sals, decode_line_1): Ditto.

2006-04-05  Stan Shebs  <>

	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Handle DW_op_pieces better.

2006-03-31  Greg Clayton  (

	* objc-lang.c (value_objc_target_type): Modified the function to be
	able to look into the class heiarchy generated by DWARF for objective C
	to find the "isa" member for dynamic typing.

2006-03-31  Jim Ingham  <>

	* cli/cli-cmds.c (ambiguous_line_spec): Check first to make sure
	that the linespecs point to different file:lines.  Return whether
	it was ambiguous or not.
	(edit_command): Use the return value from ambiguous_line_spec.
	(list_command): Ditto.

	* linespec.c (decode_line_1): Handle the case where a file:line match
	generated multiple hits, and some of the hits were on the file:line, 
	but others were because the file was included, but it didn't get any
	code from the given line.

2006-03-31  Greg Clayton  (
	* symfile.c (check_for_matching_uuid): removed unused variable named
	(add_objfile_prefix): New function for append_psymbols_as_msymbols() 
	that will correctly prefix minsym names.
	(find_section_for_addr): New function for append_psymbols_as_msymbols() 
	that will find the best section in an objfile for a partial symbol 
	(append_psymbols_as_msymbols): New function that appends minsyms to an
	objfile by translating it's dSYM partial symbols. Debugging fully 
	stripped executables with a dSYM file now has better stepping abilities.
	(symbol_file_add_with_addrs_or_offsets): We now generate minsyms for
	objfiles that have dSYM files in case the executable has been stripped.
	* ppc-macosx-frameinfo.c (ppc_frame_function_properties): Check 
	this_frame against NULL before calling get_frame_pc() since that can
	crash gdb. Both 'this_frame' and 'bounds' can be NULL when an executable
	has been stripped and when get_prev_frame() determines that we are
	inside the 'main' function.
	* dbxread.c (record_minimal_symbol): Fixed address range comparisons
	to be inclusive of the low address for the __text and __textcoal_nt

2006-03-30  Jason Molenda  (

	* gdbtypes.c (make_cv_type): Fix conditional expression for
	returning builtin_type_error.

2006-03-30  Jason Molenda  (

	* dwarf2read.c (dwarf2_get_pc_bounds): Fix double-translating of
	DW_AT_ranges addresses when processing a debug map.

2006-03-30  Jason Molenda  (

	* gdbtypes.c (make_cvs_type): Return builtin_type_error and try
        to continue instead of asserting and exiting the debugger when
	our target is an error/invalid type.  Paper over invalid stabs
	definitions as best we can.

2006-03-28  Stan Shebs  <>

        * defs.h (lval_type): Add new enum lval_register_literal.
        * eval.c (evaluate_subexp_standard): Use it when evaluating
        literal register references.
        * valops.c (value_assign): Test it when deciding whether to
        use CONVERT_REGISTER_P code.
        * frame.c (put_frame_register): Add lval_register_literal case.
        * breakpoint.c (can_use_hardware_watchpoint): Ditto.

2006-03-28  Jim Ingham  (

        * cp-abi.c (is_destructor_name): Check for the destructor
	name being unmangled.
	* linespec.c (collect_methods): Ditto.
	* symtab.c (skip_non_matching_bfd): fix up the logic and
	make it clearer.

2006-03-28  Jason Molenda  (

	* frame.h: Provide prototype for inside_main_func.
	* config/i386/tm-i386-macosx.h: Include tm-i386-macosx.h.

2006-03-28  Jason Molenda  (

	* dwarf2read.c (set_cu_language): Recognize DW_LANG_ObjC and 

2006-03-28  Stan Shebs  (

	* checkpoint.c (_initialize_checkpoint): Make rollback command
	"rollback" instead of "rb".

2006-03-28  Jim Ingham  (

	* Disable TUI by default.

2006-03-28  Eric Albert  (

	* i386-tdep.h (struct gdbarch_tdep): Update the comment for wordsize to
	account for x86-64.

2006-03-23  Eric Albert  (

	* config/i386/ (TDEPFILES): Add amd64-tdep.o.

2006-03-21  Jason Molenda  (

	* objfiles.h (ALL_OBJFILES_SAFE): Update to use new objfile_get_first,
	objfile_get_next iterator functions.
	* breakpoint.c (parse_breakpoint_sals): Use ALL_OBJFILES_SAFE because
	the objfile struct can be freed out from under us when the symbol
	load level is raised.

2006-03-16  Jason Molenda  (

	* blockframe.c (addr_inside_main_func): Revive old function.
	* symtab.h: Declare it.
	* objfiles.h (struct entry_info): New fields for main() bounds.
	* objfiles.c (init_entry_point_info): Init them.

2006-03-15  Jason Molenda  (

	* dwarf2read.c, linespec.c, objc-lang.c, objfiles.c: Make last checkin

2006-03-15  Greg Clayton  (

	* breakpoint.c (breakpoint_re_set): don't add the separate debug
	objfile to the restrict list anymore.
	* dbxread.c (open_bfd_from_oso): replaced the first two arguments with
	'struct partial_symtab *pst' to allow access to the 'pst->objfile' so
	we can check if a separate debug file (dSYM) exists and not call the
	error function if one exists for the pst->objfile.
	(oso_scan_partial_symtab): fix the call to open_bfd_from_oso to use the
	new prototype.
	(dbx_psymtab_to_symtab_1): ditto
	* dwarf2read.c (dwarf2_debug_map_psymtab_to_symtab): only call error
	when a .o file for a debug map OSO is missing if there is no dSYM file.
	(dwarf2_get_pc_bounds): fixup addresses for DW_AT_ranges attributes
	when using dwarf with debug map.
	(process_structure_scope): make sure that class constants get parsed *

	* linespec.c (apple_sals_pushback): added new function to append a
	number of symtab_and_line struct entries to a symtabs_and_lines
	(apple_intersect_sals): new function that will only add non duplicate
	symtab_and_line struct entries from	the 'src_sals' list of
	symtabs_and_lines struct to 'dst_sals'.
	(decode_line_1): Instead of just appending two symtabs_and_lines
	structs, we now make sure there are no duplicates. Duplicates can be
	found due if a dwarf with debug maps executable is used along with a
	dSYM file. A memory leak was also plugged from the 'this_result.sals'
	(decode_compound): removed unused variables 'values' and 'sym_arr'
	* objc-lang.c (find_methods): restrict the scope of the search when
	calling find_pc_sect_function() to the current objfile that we already
	have else we will get a recursive call that modifies the restrict list
	and will cause an infinite loop.
	* objfiles.c (objfile_add_to_restrict_list): stop separate debug
	objfiles from being able to be added to the restrict list. We will add
	the main objfile for a separate debug objfile if someone tries to add a
	separate debug objfile.
	(make_cleanup_restrict_to_shlib): no longer add the separate debug
	objfiles to the restrict list as it is no longer necessary.
	(objfile_get_first): modified this iterator initialization routine to
	always return the separate debug objfile first if one exists for the
	first item in the restrict list.
	(objfile_get_next): modified this iterator function to only increment
	the restrict list position pointer when we are getting the next objfile
	for an objfile that isn't a separate debug objfile (dSYM). If the
	current file is a separate debug objfile (dSYM), then we return the
	it's original objfile as the next item to search. This helps us to
	guarantee that separate debug objfiles always get searched first in the
	restrict list and so we don't get incosistent results when we have both
	a debug map executable that also has a dSYM file.
	* symfile.h : changed the prototype for open_bfd_from_oso to match it's
	new type.

2006-03-15  Jim Ingham  <>

        * breakpoint.c (break_command_2): If the not_found_ptr is set,
        assume the caller meant to return NOT_FOUND_ERROR.
	* linespec.c (symtab_from_filename): NOT_FOUND_ERROR is the
        correct error to throw here.

2006-03-15  Jim Ingham  <>

        * breakpoint.c (insert_breakpoints): Catch errors in
	value_fetch_lazy.  Mark the breakpoint as not currently set.
	(watchpoint_check): Don't try to check the watchpoint if it
	hasn't been successfully inserted yet.

2006-03-15  Jim Ingham  <>

	linespec.c (decode_line_1): Make sure start_here gets set.

2006-03-15  Jim Ingham  <>

        * symtab.c (find_pc_sect_psymtab): Break the ALL_PSYMTABS loop
	into ALL_OBJFILES and ALL_OBJFILE_PSYMTABS so you can migrate
        the sections test into the outer loop.

2006-03-15  Jason Molenda  (
	* dwarf2read.c (struct oso_final_addr_tuple): Add 'oso_high_addr'
	and 'present_in_final' fields so each record gives its complete
	address range and indicates whether it was coalesced/dead-code-stripped
	or not.
	(compare_map_entries_oso_addr): Update for new field names.
	(convert_oso_map_to_final_map): Update for new field names.
	Add a tuple for functions that were coalesced/DCS'ed instead of
	skipping them.  Fill in 'oso_high_addr' fields once the array
	is sorted.
	(compare_translation_tuples_highpc): New function for bsearch().
	(compare_translation_tuples_nothighpc): Ditto.
	(translate_debug_map_address): Update to new field names.
	Use bsearch() to find the matching tuple.

2006-03-13  Jim Ingham  <>

	* dbxread.c (typename_concat): Don't pass NULL prefix/suffix to
	functions that will crash.
2006-03-08  Jason Molenda  (

	* linespec.c (decode_line_1): Don't try to iterate over the line
	table if this psymtab doesn't have one.

2006-03-08  Jim Ingham  (

	* symfile.c (reread_symbols): Remove merge mistake of calling
	clear_symtab_users() all the time.

2006-03-06  Jason Molenda  (

	* dbxread.c (open_bfd_from_oso): More informative error message
	when the .o file containing debug info can't be found.

2006-03-06  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Create a psymtab record when we
	come across a vtable and creating a debug map so we know to expand
	this psymtab to find a definition of that class.

2006-03-02  Jason Molenda  (

        * dbxread.c (process_one_symbol): Ignore N_OSO stabs when creating
        a symtab.

2006-03-02  Jim Ingham <>

	* infrun.c (handle_inferior_event): Check for a null previous
	frame before passing it to insert_step_resume_breakpoint_at_frame.
2006-02-24  Greg Clayton  (
        * breakpoint.c (set_bp_objfile): set the breakpoint objfile
        to the actual executable instead of the separate debug
        objfile to keep the UI and test cases happy, and it also
        makes more sense.
        (breakpoint_re_set): add the separate_debug_objfile to the 
        restrict list when resetting breakpoints to make sure we  
        can find our breakpoint again.
        * dwarf2read.c (dwarf_decode_lines): fixed an issue where
        an extra psymtab was being created for an already existing
        and valid source file due to a mismatch in relative and
        absolute paths.
        * fix-and-continue.c (file_exists_p): made file_exists_p
        global instead of static so it can be reused by
        find_separate_debug_file() in symfile.c.
        * defs.h (file_exists_p): Add prototype.
        * objfiles.c (objfile_remove_from_restrict): removed unused variables
        named 'cached_symfile_dir' and 'check_timestamp'.
        (objfile_delete_from_ordered_sections): return if we run into a separate
        debug objfile and do not delete since these will never get added in the
        first place and would cause unnecessary warnings.
        (objfile_add_to_ordered_sections): return if we run into a separate
        debug objfile and do not add sections since these are not needed by the
        program and can cause false matches to non-existent code.
        (free_objfile): correctly set the separate_debug_objfile
        member to NULL if the member gets freed to avoid a stale
        pointer from existing.
        (find_pc_sect_section): do not check any separate debug objfiles when
        looking for pc sections as they are not valid code.
        (push_front_restrict_list): added for make_cleanup_restrict_to_shlib to
        keep the code common since it is used more than once.
        (clear_restrict_list): added for make_cleanup_restrict_to_shlib to
        keep the code common since it is used more than once.
        (make_cleanup_restrict_to_shlib): always add an objfile and
        it's separate debug objfile (dSYM) when restricting things
        to a specific shared library so we can find symbols for 
        things in our separate debug object files.
        (_initialize_objfiles): remove unused variable named 'c'.
        * objfiles.h : added a new objfile->flags bit called
        OBJF_SEPARATE_DEBUG_FILE so we can stop a separate debug
        objfile (dSYM) from being added to the ordered section list
        since it gets added while the separate debug objfile is
        being created and before the 'separate_debug_objfile_backlink'
        member can be correctly set.

        * symfile.c (copy_section_addr_info): fixed the copy function
        to copy all members including the apple local member
        (place_section): removed unused variable named 'cur_offset'.
        (check_for_matching_uuid): added function that can
        match the UUID of two files (the executable and the separate
        debub objfile (dSYM)) to make sure we are using the correct
        debug information for an executable and post a warning if
        we have a mismatch.
        (symbol_file_add_with_addrs_or_offsets): add the
        OBJF_SEPARATE_DEBUG_FILE to the symbol_file_add() function
        call to make sure we know we are creating a separate debub
        objfile (dSYM) and so that we don't try to add it's section
        list to the ordered section lists and check the UUID of the
        two files to make sure we have the correct files.
        (get_debug_link_info): remove unused variable named 'p'.
        (find_separate_debug_file): Created an Apple specific version that looks
        for a dSYM file.
        (find_sym_fns): removed an unused variable named 'our_target'.
        (generic_load): removed unused variables.
        (reread_separate_symbols): Fixed a stale pointer issue with
        objfile->separate_debug_objfile after it gets freed and add
        the OBJF_SEPARATE_DEBUG_FILE flag to the creation args for
        the new separate debug objfile (dSYM) to make sure it's
        sections don't get added to our ordered section list. We
        also check the UUID to ensure proper executable and debug
        object file matching. Fixed a memory leak with the "debug_file"

        * symtab.c (skip_non_matching_bfd): added a function to centralize
        some code that was being pasted about that got more complex after adding
        dSYM support.
        (find_pc_sect_psymtab): now use skip_non_matching_bfd() function
        to check for matching objfile or separate debug objfile.
        (find_pc_sect_symtab): ditto.

2006-02-24  Jim Ingham (

	* linespec.c (symtab_from_filename): Set not_found_ptr before
	throwing an error.

2006-02-24  Jim Ingham (

	* utils.c (internal_vproblem): Print the reason we're exiting
	when unexpectedly exiting in MI mode.
	(query): Indicate an auto-answered answer.

2006-02-24  Jason Molenda  (

	* dwarf2read.c (translate_common_symbol_debug_map_addres): Correctly
	handle the case where there is no debug map.

2006-02-24  Jason Molenda  (

	* dwarf2read.c (translate_debug_map_address): Return a status
	value as well as take a new flag indicating whether the address
	being translated is a DW_AT_high_pc or not.
	(process_full_comp_unit): Update call to translate_debug_map_address.
	Handle the case where the function at that address is not in the
	(read_file_scope): Ditto.
	(dwarf2_get_pc_bounds): Ditto.
	(read_partial_die): Ditto.
	(var_decode_location): Ditto.
	(new_symbol): Ditto.
	(dwarf2_const_value): Ditto.
	(decode_locdesc): Ditto.
	(dwarf_decode_lines): Don't record lines if the last address
	seen did not make the final executable.  Assumes we have a
	DW_LNE_set_address at least at the beginning of functions.

2006-02-22  Jason Molenda  (

	* linespec.c (add_matching_methods): If the method name isn't
	a mangled name prepend the containing class name and do a
	lookup_symbol on the qualified source function name.

2006-02-22  Jason Molenda  (

	* dwarf2read.c (dwarf2_debug_map_psymtab_to_symtab): Mark psymtab
	as read in once we've read it in.
	* dbxread.c (read_dbx_symtab): Handle cases where the first function
	listed in a compilation unit's debug map is not the lowest address

2006-02-20  Stan Shebs  <>

	* breakpoint.c (do_captured_breakpoint): Update comments, merge
	issues were resolved.

2006-02-13  Jason Molenda  (

	* i386-tdep.c (i386_follow_jump): Don't follow the jump if
	we're (unnecessarily, sigh) examining a dyld stub trampoline.

	* dwarf2read.c (convert_oso_map_to_final_map): Don't add
	the slide for a minsyms that's absolute.

	* objc-lang.c (find_objc_msgsend): Re-enable code which allows
	for a msgsend function to be the last one in an objfile and 
	still get the range right.

2006-02-07  Jason Molenda  (

	* dwarf2read.c (translate_debug_map_address): Correctly handle the 
	case where a debug map is not being used.

2006-02-07  Jason Molenda  (

	* dbxread.c (read_oso_nlists): Fix off by one error when resizing
	nlists/common symbols array.

2006-02-07  Jason Molenda  (

	* dbxread.c (read_oso_nlists): Create both the nlists array as well
	as the common_symnames array of common symbol names that were 
	discovered in the .o file.
	* symfile.h: Update prototype for read_oso_nlists.
	* dwarf2read.c (struct oso_to_final_addr_map): In addition to the
	{name, .o file addr, final addr} tuple array add an array of
        {name, final addr} pairs for common symbols which have no address
        in the .o file.
	(compare_map_entries_name): Callback function for qsort.
	(convert_oso_map_to_final_map): Create common symbol pairs array in
        addition to regular address tuple array.
	(free_address_map): Free the common symbol names as well.
	(translate_common_symbol_debug_map_address): New function to look up
	potential common symbols.
	(dwarf2_debug_map_psymtab_to_symtab): Create the common symbols 
	array as well.
	(var_decode_location): If the address of something in the dwarf says
	it is at 0x0, see if the symbol is in the common symbols array before
	following the usual DEBUGMAP_XLATE procedure.

2006-02-07  Jason Molenda  (

	* dbxread.c: Include mach-o.h
	(read_dbx_symtab): Don't set up a PSYMTAB_OSO_STATICS list; I ended
	up not using that in the final implementation.
	(read_oso_nlists): Remove unused variables.  Don't return anything.
	* symfile.h: Update read_oso_nlists prototype.

2006-02-06  Jason Molenda  (

	* defs.h: Include <stdint.h>.

2006-02-06  Greg Clayton  (

	* varobj.c (varobj_create): NULL out block_found before evaluating
	the variable expression to avoid a situation where member variables in
	objective C may not evaluate correctly when a block is specified due to
	the expression parser using a stale value from a previous expression.

2006-02-03  Jason Molenda  (

	* dwarf2read.c (convert_oso_map_to_final_map): Factor off
	slide offset when adding address to translation table.

2006-02-01  Jason Molenda  (

	* dwarf2read.c (dwarf2_debug_map_psymtab_to_symtab): Need to 
	initialize the type_hash element or we'll jump into random
	memory later on.

2006-02-01  Jason Molenda  (

	* dwarf2read.c (dwarf2_debug_map_psymtab_to_symtab): Call my own
	psymtab-to-symtab converter, not the regulard dwarf one.

2006-02-01  Jason Molenda  (

	* dwarf2read.c (dwarf2_debug_map_psymtab_to_symtab): Process the
	dependencies of a pst before trying to process the pst.  Don't
	try to read an OSO for a header file.

2006-02-01  Jason Molenda  (

	* dwarf2read.c (translate_debug_map_address): Handle function as
	last symbol in file correctly.

2006-02-01  Jason Molenda  (

	* dwarf2read.c (convert_oso_map_to_final_map): Don't leak memory.
	(translate_debug_map_address): Handle a compilation unit with one
	symbol correctly.
	(dwarf_decode_lines): Don't re-translate addresses who've had an
	offset added to them.

2006-01-31  Jason Molenda  (

	* dwarf2read.c: Final part of DWARF debug map support.
         (DEBUGMAP_XLATE): New macro.
	(struct oso_final_addr_tuple, oso_to_final_addr_map): New structs.
	(struct dwarf2_cu): New element, addr_map.
	(dwarf2_has_info): Move contents into..
	(dwarf2_has_info_1): Here.
	(dwarf2_build_psymtabs): Move the section of this function that
	reads the dwarf sections into memory into..
	(dwarf2_copy_dwarf_from_file): Here.
	(compare_map_entries): New.
	(convert_oso_map_to_final_map): New.
	(free_address_map): New.
	(translate_debug_map_address): New.
	(dwarf2_debug_map_psymtab_to_symtab): New.
	(load_full_comp_unit): Take an addr_map parameter.
	(process_full_comp_unit): Pass addresses through DEBUGMAP_XLATE.
	(dwarf2_get_pc_bounds): Ditto.
	(dwarf2_read_section): Take a bfd parameter.
	(read_partial_die): Pass addresses through DEBUGMAP_XLATE.
	(var_decode_location): Ditto.
	(new_symbol): Ditto.
	(dwarf2_const_value): Ditto.
	(decode_locdesc): Ditto.

	* symfile.h (struct nlist_rec): Unconst name to reduce casting.
	* dwarf2-frame.c: Update dwarf2_read_section prototype to note
	new bfd parameter.
	(dwarf2_build_frame_info): Updated.

2006-01-31  Jason Molenda  (

	* dbxread.c (read_oso_nlists): New function to read the nlist
	records of a dwarf .o file (i.e. read the minsyms).
	(stabsect_read_strtab_from_oso): Comment cleanup.
	* symfile.h (struct nlist_rec): Structure used by read_oso_nlists.
	(open_bfd_from_oso, read_oso_nlists): Add prototypes.

2006-01-25  Stan Shebs  <>

	* Move ac_cv_func_mmap_fixed_mapped setting up far
	enough to actually have an effect.
	* configure: Regenerate.

	* checkpoint.c (memcache_put): Ifdef a native-only call.

2006-01-23  Greg Clayton  (

	* cp-support.c (cp_func_name): Added a test for full_name being NULL.

2006-01-19  Jason Molenda  (

	* dwarf2read.c (INFO_SECTION, ABBREV_SECTION, etc): DWARF is now
	in segment "__DWARF", not "__DWARFA".
	(db_error): Whitespace tweak.

2006-01-19  Jason Molenda  (

	* dwarf2read.c (dwarf_info_vma, dwarf_abbrev_vma, dwarf_line_vma,
	dwarf_str_vma): Remove.
	(struct dwarf2_per_objfile): Ditto.
	(dwarf2_has_info): Don't initialize dwarf section vma's.
	(dwarf2_build_psymtabs_hard): Ditto.
	(dwarf2_locate_sections): Don't use dwarf section vma's.
	(read_comp_unit_head): Ditto.
	(psymtab_to_symtab_1): Ditto.
	(read_file_scope): Ditto.
	(read_indirect_string): Ditto.

2006-01-18  Jason Molenda  (

	* dbxread.c (struct oso_fun_static, struct oso_fun_list, 
	struct oso_pst_list): Move these out of the symloc psymtab private
	struct into the generic partial_symtab struct in symtab.h.
	rename to PSYMTAB_OSO_* and move to symtab.h.
	(read_dbx_symtab): Add a new state variable, in_dwarf_debug_map, which
	notes when the current SO file is a DWARF debug map.  In that case,
	handle N_FUN and STSYM specially; let the rest be processed as
	(start_psymtab): Don't initialize the OSO structures in the symloc;
	the generic psymtab creator does it.
	(add_oso_pst_to_list): Macro names updated.
	(end_psymtab): Ditto.
	(oso_scan_partial_symtab): Ditto.
	(dbx_psymtab_to_symtab_1): Ditto.
	(read_ofile_symtab_from_oso): Ditto.
	* dwarf2read (dwarf2_debug_map_psymtab_to_symtab): A stub function
	to be defined.
	* symfile.c (allocate_psymtab): Initialize the OSO fields in the
	generic partial_symtab struct.
	* symfile.h: Prototype for dwarf2_debug_map_psymtab_to_symtab.
	* symtab.h: (struct partial_symtab): Add OSO fields.
	Add struct oso_fun_static, oso_fun_list, oso_pst_list from
	dbxread.c.  Add PSYMTAB_OSO_NAME etc accessor macros from

2006-01-17  Stan Shebs  <>

	* infrun.c (set_schedlock_func): Clear a merge confusion.

2006-01-16  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Recognize & ignore empty OSO stabs.

2006-01-12  Jim Ingham  <>

	* symtab.c (find_function_start_sal): Catch the case where
	the block is NULL.  Can happen sometimes when the stabs get
	mangled, for instance.
	* dbxread.c (read_ofile_symtab_from_oso): Add checks for NULL
	cur_file_name and oso_static->name to handle some error cases
	without crashing.
2006-01-12  Stan Shebs  <>

	* ppc-sysv-tdep.c (ppc_push_argument): Use our vector reg count.
	(ppc_push_arguments): Pad the dummy stack with an extra 32
	bytes, for luck.
2006-01-11  Jim Ingham  <>

	* gdbtypes.c (create_array_type): If you are creating an array
	whose elements are another array, make sure the element array's
	length is > 0.  It might not have gotten correctly calculated
2006-01-11  Caroline Tice  <>

	*dwarf2read.c (read_in_db_abbrev_table): Delete redundant forward 
	(dwarf_attr_name): Add case for DW_AT_APPLE_repository_abstract_origin.

2006-01-10  Jim Ingham  <>

	* stabsread.c (attach_fields_to_type): If a type is a typedef
	of an undefined type, add it to the undefined_types list.

	* Restore the makefile goop that finds runtest so
	you can run make check from the gdb directory.

2006-01-10  Eric Albert  (

	* i386-tdep.c (i386_gdbarch_init): Long double is 128 bits on darwin.

2006-01-10  Eric Albert  (

	* valprint.c (print_ostype): Use unpack_long() to get the value
	instead of assuming it's a memory location.  Take a type parameter.
	* valprint.h (print_ostype): Prototype updated.
	* printcmd.c (print_formatted, print_scalar_formatted): Update callers.

2006-01-09  Stan Shebs  <>

	* ppc-sysv-tdep.c (ppc_push_argument): Fix a merge mess
	by using VALUE_REGNUM.

2006-01-06  Jason Molenda  (

	* dwarf2read.c: Minor cleanups on Caroline's type repository
	patch:  Removing commented-out code, clarifying a few
	comments, removing some unintended whitespace changes that
	were made in the patch.

2006-01-06  Caroline Tice  <>

	* (LIBSQLITE3):  Add new link library option for sqlite3.
	(INSTALLED_LIBS):  Add LIBSQLITE3 to the list.
	* db-access-functions.h: New file.
	* dwarf2read.c (db-access-functions.h):  Add new #include.
	(struct dwarf2_cu):  Add 2 new fields: repository and repository_name.
	(struct partial_die_info):  Add 5 new fields: has_repo_specification,
	has_repository, has_repository_type, repo_spec_id and repo_name..
	(struct die_info): Add 1 new field: repository_id.
	(zeroed_partial_die):  Comment it out to eliminate warning.
	(read_comp_unit_head): Comment out signed_addr to eliminate warning.
	(open_dwarf_repository): New function.
	(dwarf2_read_repository_abbrevs): New function.
	(build_dummy_cu): New function.
	(build_dummy_objfile): New function.
	(read_in_db_abbrev_table): New function.
	(db_error): New function.
	(db_lookup_type): New function.
	(fill_in_die_info): New function.
	(get_uleb128): New function.
	(db_read_attribute_value): New function.
	(follow_db_ref): New function.
	(set_repository_cu_language): New function.
	(get_repository_name): New function.
	(finalize_stmts): New function.
	(find_open_repository): New function.
	(increment_use_count): New function.
	(decrement_use_count): New function.
	(enum db_status): New type.
	(struct objfile_list_node): New type.
	(struct database_info): New type.
	(byte_swap_p): New global variable.
	(dwarf2_build_psymtabs_hard): Initialize byte_swap_p; add code to call
	functions to read in the repository abbreviations table if appropriate,
	and initialize the repository language.  Also fix the stuff to initialize
	the dwarf_*_vma files in the pst (update it to use dwarf2_per_objfile).
	(add_partial_symbol):  For variables, add check of  has_repository_type.
	(skip_one_die):  Add case for DW_FORM_APPLE_db_str.
	(psymtab_to_symtab_1):  Update the dwarf_*_vma things correctly from 
	(read_partial_die): Initialize the new fields has_repository, 
	has_repo_specification and has_repository_type; check possible
	string attributes for DW_FORM_APPLE_db_str and call get_repository_name
	if appropriate; add cases to check for DW_AT_APPLE_repository_type and
	DW_AT_APPLE_repository_specification.  If the partial die uses a
	repository, call open_dwarf_repository to open the appropriate database.
	(read_full_die):  Add and initialize repository_name and comp_dir 
	variables, also update them if die attributes are appropriate; initialize 
	die->repository_id; call open_dwarf_repository if approriate.
	(read_attribute_value):  Add case for DW_FORM_APPLE_db_str.
	(dwarf2_attr):  Add and initialize repository_spec variable; check
	attributes for a repository string or a repository reference and
	do the right thing if found.
	(die_type): Check type attribute to see if it's a repository type 
	reference, and if so get the appropriate type from the repository data.
	(copy_die): Initialize repository_id field.
	(dwarf_attr_name):  Add cases for the 6 new DW_AT_APPLE_repository_*
	(dwarf_form_name):  Add case for DW_FORM_APPLE_db_str.
	(dump_die): Add case for DW_FORM_APPLE_db_str.
	(dwarf2_get_attr_constant_value):  Add check for DW_FORM_APPLE_db_str.
	(enum rb_tree_colors): New type.
	(struct rb_tree_node): New type.
	(rb_tree-find_node): New function.
	(left_rotate): New function.
	(right_rotate): New function.
	(plain_tree_insert): New function.
	(rb_tree_insert): New function.
	(MAX_OPEN_DBS): New constant.
	(repositories): New global variable.
	(num_open_dbs): New global variable.
	(lookup_repository_type): New function.
	(initialize_repositories): New function.
	(close_dwarf_repositories): New function.
	(SELECT_DIE_STR): New constant.
	(FIND_STRING_STR): New constant.
	(db_stmt1): New global variable.
	(db_stmt2): New global variable.
	(struct attr_pair): New type.
	(db_read_1_byte): New function.
	(db_read_2_bytes): New function.
	(db_read_4_bytes): New function.
	(db_read_8_bytes): New function.
	(db_read_n_bytes): New function.
	(db_read_unsigned_leb128): New function.
	(db_read_signed_leb128): New function.
	(Various places):  Add type casts or comment out dead declarations to 
	eliminate compiler warnings.
	* objfiles.c (db-access-function.h): Add new include statement.
	(create_objfile): Initialize uses_sql_repository field.
	(free_objfile):  If uses_sql_repository field is set call 
	(get_objfile_registry_num_registrations): New function.
	* objfiles.h (<sqlite3.h>): New include statement.
	(struct objfile): Add new field uses_sql_repository.
	Add extern declaration for get_objfile_registry_num_registrations.
	* ../include/elf/dwarf2.h (DW_FORM_APPLE_db_str): Add new DWARF form.
	(DW_AT_APPLE_repository_file): Add new DWARF attribute.
	(DW_AT_APPLE_repository_type): Add new DWARF attribute.
	(DW_AT_APPLE_repository_name): Add new DWARF attribute.
	(DW_AT_APPLE_repository_specification): Add new DWARF attribute.
	(DW_AT_APPLE_repository_import): Add new DWARF attribute.
	(DW_AT_APPLE_repository_abstract_origin): Add new DWARF attribute.

2006-01-04  Greg Clayton  (

	* symtab.c (lookup_symtab_all): Safeguarded against null return from 
	(lookup_partial_symbol, completion_list_add_name): Removed unused variables
	and cleaned up a const warning.

2005-12-29  Stan Shebs  <>

	Start of checkpoint and undo support.
	* checkpoint.c: New file, checkpoint support.
	* checkpoint.h: New file.
	* (BASE_OBS): Add checkpoint.o.
	(checkpoint.o): Add dependencies.
	* infcmd.c (run_command_1): Always clear checkpoints.
	(re_execute_command, re_exec_1, re_exec_once): New functions,
	used to create intermediate checkpoints on demand.
	* infrun.c (normal_stop): Maybe create a checkpoint.
	* regcache.c (regcache_compare): New function.

2005-12-20  Jason Molenda  (

	* varobj.c (varobj_create): Mark some more Apple Local code
	as such.  Remove APPLE MERGE #if 0'ed code markers.
	(varobj_update): Remove some now-unused variables to reduce

2005-12-16  Jim Ingham  <>

	* Set the rc_version in version.c.
	* version.h: declare rc_version.
2005-12-15  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Keep marching on if we have bogus
	stabs debug info and we're looking for OSOs.

2005-12-15  Jim Ingham  <>

	* valops.c (value_of_this): Don't error if complain is 0.
2005-12-13  Jason Molenda  (

	* utils.c (error_stream): Remove #if 0'ed APPLE LOCAL change
	that doesn't belong here any more after the merge.
	* exceptions.c (print_exception): Add the code here, to suppress
	console error printing when we're in MI mode.

2005-12-13  Jason Molenda  (

	* symtab.c (rbreak_command): Commit Jim's change to rbreak's
        bp setting to be safe for all ObjC method names.

2005-12-05  Jason Molenda  (

	* linespec.c (decode_line_1): symtab_form_filename returns a
	file_symtab_arr, not a file_symtab.
	* symtab.c (lookup_symtab_all, add_partial_symtab_to_array): Note
	some APPLE LOCAL code.
	(lookup_symtab_all): Don't recompute file basename.
	* objc-lang.c (lookup_objc_class): Don't complain when we can't look
	up ObjC classes (which always happens in non-ObjC programs).

2005-11-28  Jason Molenda  (

	* disasm.c (gdb_disassemble_info_null): Use gdb_null instead
	of rolling it ourself.
	(fprintf_null): Removed.

2005-11-28  Jason Molenda  (

	* config/i386/tm-i386-macosx.h: Don't include tm-i386.h.
	* config/i386/xm-i386-macosx.h: Don't include xm-i386.h.
	* i386-tdep.c (i386_match_insn): Fix syntax error.
	(i386_push_dummy_call): VALUE_ENCLOSING_TYPE is a function now.

2005-11-17  Jason Molenda  (

        * infcall.c (inferior_function_calls_disabled_p): New global variable
        to control whether inferior function calls are allowed (should be a
        target vector entry).
        (hand_function_call): If inf func calls disabled, throw an error.
        * infcall.h (inferior_function_calls_disabled_p): Provide extern decl.
        * objc-lang.h (lookup_objc_class_p): Provide extern decl.

2005-11-17  Jason Molenda  (

        * fix-and-continue.c (redirect_statics): Also look in the new __IMPORT,
        __pointers section for non-lazy symbol pointers.

2005-11-09  Jason Molenda  (

	* config/powerpc/xm-ppc-macosx.h: Don't define the host fp
	formats here.
	* config/i386/xm-i386-macosx.h: Ditto.
	* Add definitions for the PPC host fp

2005-11-08  Jason Molenda  (

	* breakpoint.c (_initialize_breakpoint): Update
	add_set_cmd to add_setshow_string_cmd calls.
	* dbxread.c (read_dbx_symtab): Fix merge mistakes.
	* linespec.c: Update prototype.
	* objc-lang.c (print_object_command): Use value_type instead of
	* source.c (open_source_file_fullpath): Change to work with new
	(find_and_open_source): Update call of same.
	* symfile.h: Update prototype.
	* symtab.c (lookup_symtab_all): Change call to symtab_to_filename
	to call symtab_to_fullname instead.
	* valops.c (value_of_this): Fix call to get_selected_frame.

2005-10-31  Jim Ingham  <>

       * i386-tdep.c (i386_follow_jump): Use 32 bit math to calculate
       the pc relative offset for the JMP instruction.

2005-10-26  Jim Ingham  <>

       * dbxread.c (read_ofile_symtab_from_oso): Delete unnecessary
       (open_bfd_from_oso): pass expected format to open_bfd_matching_arch.
       exec.c (exec_file_attach): Ditto.
       symfile.c (symfile_bfd_open): Ditto.
       (reread_symbols): Ditto.
       (open_bfd_matching_arch): Take in the expected
       type of the archive slice.
       symfile.h: Change def'n of open_bfd_matching_arch to accept format.

2005-10-07  Jim Ingham  <>

       * linespec.c (decode_all_digits_exhaustive): New function,
       same as decode_all_digits, but returns all the matches
       in the linetable of the input symtab.
       (symtab_from_filename): Return an array of ALL the symtabs
       that match the given filename.
       (decode_line_1): Handle getting ALL the symtabs matching
       the file name, and all the symtab_and_lines matching the line.
       * symtab.c (add_symtab_to_array): New function.
       (lookup_symtab_all): New function.
       (lookup_partial_symtab): Return all the matches, not just the
       first match.
       (add_partial_symtab_to_array): New function.
       (lookup_partial_symtab_all): New function.
       * symtab.h: Def'ns of lookup_symtab_all and

2005-11-04  Jason Molenda  (

	* Fix APPLE LOCAL block.
	* configure: Regenerated.

2005-10-24  Jim Ingham  (

	* dbxread.c (end_psymtab): A psymtab isn't empty if it has an OSO

2005-10-19  Jim Ingham  (

	* gdbtypes.c (make_cv_type): Return builtin_type_error if
	an undefined type is being cast.

2005-10-19  Jim Ingham  (

	* stabsread.c (read_type): When looking up a forward reference type,
	if the type is already defined, just return it.

2005-10-19  Jason Molenda  (

	* environ.c (smuggle_dyld_settings): New function to copy
	environment variables in GDB_DYLD_* to DYLD_*.
	* environ.h: Prototype.
	* infcmd.c (_initialize_infcmd): Call it.

2005-10-13  Klee Dienes  <>
	* gdbthread.h (switch_to_thread): Add prototype.
	* thread.c (switch_to_thread): Make external.

2005-10-13  Klee Dienes  <>

	* valops.c (allocate_space_in_inferior_malloc): Set
	unwind-on-signal to 1 while calling malloc.

2005-10-11  Klee Dienes  <>

        * target.c (update_current_target): Add field for
        to_allocate_memory.  Set default to
        * target.c (struct target): Add field for to_allocate_memory.
        (target_allocate_memory): New macro.
        * value.h (allocate_space_in_inferior_malloc): New function.
	* valops.c (allocate_space_in_inferior_malloc): New function.
	Same as value_allocate_space_in_inferior, but returns a CORE_ADDR
	instead of a value.  Check to be sure it's safe to call malloc().
	(value_allocate_space_in_inferior): Implement using
	Fixes <rdar://problem/4287513>.
2005-10-11  Jim Ingham  <>

	* eval.c (evaluate_subexp_standard): If EVAL_SKIP, bail out
	before you try to lookup methods in the target (which is set
	to 1 in this case).

	* linespec.c (decode_compound): Accept and set "not_found_ptr".
	(find_method): ditto.
	(decode_line_1) pass not_found_ptr to decode_compund.

	* varobj.c (cplus_value_of_child): Make a copy of the parent's 
	value before calling value_cast.
2005-10-11  Klee Dienes  <>

	* doublest.c (floatformat_byteorders_are_reversed): New function.
	(floatformats_same_except_for_byteorder): New function.
	(swap_bytes): New function.
	(floatformat_to_doublest): If the type is a type supported by the
	host, but simply byteswapped, just do the byteswapping instead of
	using the generic float code.
	Fixes <rdar://problem/4236262>.

	* i386-tdep.c (i386_push_dummy_call): Fix the dummy stack frame to
	look like a "normal" stack frame.  In particular, make sure it has
	a correct $ebp chain.  Fixes <rdar://problem/4281948>.

2005-10-03  Jim Ingham  <>

	* source.c (open_source_file): Don't free fullname if we
	aren't going to use it.  Happens when we found a file from
	the pathname-substitution path.
2005-10-03  Jason Molenda  (

	* breakpoint.c (print_it_typical): Use "times" as the field for 
	hit-count, to be consistent with all the other breakpoint printers.

2005-09-30  Jim Ingham  <>

	* stabsread.c (cleanup_undefined_types): Don't call replace_type
	if the types instance flag's aren't the same.

	* symmisc.c (equivalence_table_build): Only consider names of
	the form foo$[0-9A-Z] as equivalent to foo.
2005-09-30  Jason Molenda  (

        * Makefile: Try to make gdb binary setgid procmod. 
        * fork-child.c (fork_inferior): Give up elevated group privs.
        * ser-pipe.c (pipe_open): Ditto.
        * cli/cli-cmds.c (shell_escape): Ditto.

        * breakpoint.c (print_it_typical): Print the current hit count of
        the breakpoint.

2005-09-27  Jim Ingham  <>

	* dbxread.c (read_dbx_symtab): Relax the pattern checking for the
	Symbol Separation .o file.
	(read_ofile_symtab_from_oso) Add some more error checking when we
	go to match up the function list with the FUN stabs we are seeing
	in the .o file.
	* varobj.c (create_child): Cons up a fake name for anonymous struct
2005-09-26  Jason Molenda  (

	* i386-tdep.c (i386_push_dummy_call): Pad the dummy stack frame
	so it is properly 16-byte aligned.

2005-09-15  Klee Dienes  <>

	* breakpoint.c (print_exception_catchpoint): New function.
	(print_one_exception_catchpoint): New function.
	(print_mention_exception_catchpoint): New function.
	(print_catch_info): Now takes a breakpoint *, instead of a bpstat.
	(print_one_breakpoint): Use print_one_exception_catchpoint.
	(print_it_typical): Use print_exception_catchpoint.
	(mention): Use print_mention_exception_catchpoint.

2005-09-15  Klee Dienes  <>

	* infrun.c (set_scheduler_locking_mode): Update error strings.
	(set_schedlock_helper): Ditto.

2005-09-14  Jim Ingham  <>

	* defs.h (Debugger_state): Put back, MacsBug uses it
	(state_change_hook): ditto
	* top.c (state_change_hook): ditto.
	(quit_target): ditto.
	* infcmd.c (run_command, continue_command,
	signal_command): ditto.
	* inflow.c (kill_command): ditto.
	* infrun.c (handle_inferior_event): ditto.
	* main.c (main): ditto.
	* symfile.c (symbol_file_clear, symbol_file_command):
2005-09-13  Eric Albert (

	* objc-lang.c (print_object_command): Try to call  
	_CFPrintForDebugger() for print-object if _NSPrintForDebugger() 
	is not present.

2005-09-13  Jim Ingham  <>

	* stabsread.c (read_type): When processing forward reference
	stab def'ns, don't use a type you looked up by name unless it
	fill the type slot currently being defined.
2005-09-12  Jason Molenda  (

	* objc-lang.c (print_object_command): Revert last patch until
	I have a chance to look into why it caused regressions.

2005-09-12  Eric Albert  (

        * objc-lang.c (print_object_command): Add support for calling
        CFPrintForDebugger() if the dylib with NSPrintForDebugger() isn't

2005-09-12  Klee Dienes  <>

	* disasm.h (find_pc_offset): Add new arguments, return type.
	* disasm.c (gdbarch_instruction_length): New function.
	(find_pc_offset): Update comment.  Add new arguments.  Convert
	to use gdbarch_instruction_length.  Add support to control
	limiting the PC to the current function.  Enhance error reporting.

2005-09-07  Jim Ingham  <>

	* dbxread.c: These changes are to support reading debug info
	from a .o file that has multiple N_SO sections in it.
	(stabs_seek): When you were using the internal buffer, this was
	seeking backwards from the pointer, which is just wrong.
	(init_oso_pst_list, add_oso_pst_to_list, end_oso_pst_list): New
	(read_dbx_symtab): Build up the list of N_SO sections sharing
	one N_OSO.
	(start_psymtab): Null out the LDSYM_OSO_PST_LIST pointer.
	(end_psymtab): Null the LDSYM_OSO_* fields for the PST's we
	make for BINCL/EINCL header includes.
	(oso_scan_partial_symtab): New function.
	(dbx_psymtab_to_symtab_1): Call oso_scan_partial_symtab to build
	up dependencies for the partial_symtabs that share this .o.
	(read_ofile_symtab_from_oso): Use the LDSYMOFF since we now set
	that in oso_scan_partial_symtab.
	And this supports timing checking between final linked executable
	and the .o file:
	(read_dbx_symtab): Record OSO_MTIME from the N_OSO stab.
	(open_bfd_from_oso): Check time stamp.

	* gdbtypes.c (smash_types)L Don't delete the chain when you smash types.
	You will need to fix up the other elements on it.
	(make_qualified_type): Handle the case where both TYPE & STORAGE
	may have qualified elements already.
2005-09-06  Klee Dienes  <>

	* Remove the code to hard-code long double support
	to "no" on all platforms.  Add code to default long double support
	to "yes" on Mac OS X.

2005-09-06  Klee Dienes  <>

	* config/i386/xm-i386-macosx.h (HOST_LONG_DOUBLE_FORMAT): Only set
	this if we are compiling with gcc-4.0 or above.

2005-09-06  Klee Dienes <>

	Restore patch by Jim Ingham <> from 2003-03-03
	that was lost in a subsequent merge.  Includes the following
	additional changes:

	* breakpoint.c (bpstat_stop_status): Properly resume the inferior
	and step over the catchpoint if we stop at a catchpoint for which
	the condition doesn't hold.
	(mention): MI-ify the catchpoint output.

	Added the OBJFILE parameter to all instances of
	Original ChangeLog by Jim:

	This set of changes updates the "catch catch" and "catch throw".
	The output is mi-ified, the object type being thrown is added,
	you can set a regexp for which objects to stop on both for
	catches & throws.  It adds one target-vector entry to the
	catchpoint support: to_find_exception_catchpoints.  This
	just splits out the "enabling" and the "setting breakpoints
	on catchpoints" parts of the target catchpoint support.

	* breakpoint.c: Define enabled flags & regexp strings.
	(print_it_typical): MI-ify the catchpoint printing info.
	(print_catch_info): New function, for printing info.
	(bpstat_stop_status): Only process the "catch" breakpoint
	that matches the stop address.  Check the catch regexp
	to see if we should stop here.  MI-ify the catch stop
	(update_exception_catchpoints): New function, more convenient
	client function than target_enable_exception_callback/
	(current_exception_should_stop): New function.
	(catch_exception_command_1): use update_exception_catchpoints.
	(exception_catchpoints_enabled): New function, needed for the mi 
	(disable_exception_catch): New function, so you don't have to 
	remove all the catch breakpoints by hand.
	(_initialize_breakpoint): Add set commands for the exception
	type regexp's.
	* breakpoint.h: Add declarations for new functions.
	* inftarg.c (child_enable_exception_callback): No longer return
	the SALS, this is done by child_find_exception_catchpoints.
	(child_find_exception_catchpoints): stubbed out version of this.
	(init_child_ops): add child_find_exception_catchpoints.
	* stack.c (catch_info): Still does nothing, but in the new form.
	* symtab.h: Add exception_type to exception_event_record & accessor
	* target.c: Add to_find_exception_catchpoints everywhere necessary.
	* target.h: ditto.

	* infcmd.c (_initialize_infcmd): String constants can't have
	un-backslashed newlines.  gcc-3.3 actually makes this an error
	so we ought to fix it...

2005-09-06  Jim Ingham  <>

	* stabsread.c (process_symbol_types_only): Missing break.
	(find_name_end): Add the "correct" algorithm for names that
	have "::" in them.  But the correct version is #if 0'ed because
	it makes stabs reading ~6% slower without corresponding benefit.
2005-09-01  Klee Dienes  <>

	* disasm.c (fprintf_null): New function.
	(gdb_disassemble_info_null): New function.  Returns a struct
	disassemble_info that generates no output.
	(gdb_disassembly): Don't pass in file_string and line_num; they
	weren't used anyway.
	(find_pc_offset): New function.

	* disasm.h (gdb_disassembly): Update prototype.

	* cli/cli-cmds.c: Update call to gdb_disassembly.

2005-08-19  Jim Ingham  <>

	* dbxread.c (open_bfd_from_oso): Handle the case where
	the file path of an OSO stab has a "()" in the name.
2005-08-15  Jim Ingham  <>

	* buildsym.c (end_symtab): Call cleanup_undefined_arrays.
	* gdbtypes.c (add_undefined_arrays): New function.
	(cleanup_undefined_arrays): New function.
	(create_array_type): Call add_undefined_arrays.
	* gdbtypes.h: Declare cleanup_undefined_arrays.
	* stabsread.c (read_struct_type): Take out the 
	code that adjusts the length of variants.  This is now
	redundant, and is done in dbx_fixup_variants.

2005-08-14  Jim Ingham  <>

	* buildsym.c (end_symtab): Call cleanup_undefined_fields.
	* stabsread.c (dbx_fixup_variants): New function.
	(read_type): Call dbx_fixup_variants on all the newly defined
        (add_undefined_field): New function.
	(cleanup_undefined_fields): New function.
	(adjust_field_bitsize): New function.
	(read_one_struc_field): Use adjust_field_bitsize.
	(attach_fields_to_type): If field type is undefined, add it to
	the undefined fields for fixup.

	* stabsread.h: declare cleanup_undefined_fields

2005-08-12  Jim Ingham  <>

	* dbxread.c (read_ofile_symtab_from_oso): Thinko in how we rewind
	past the SO stabs when we seek for the right SO section.

2005-08-11  Jim Ingham  <>

        * dbxread.c (read_ofile_symtab_from_oso): Handle the case where
	one OSO file might have more than one N_SO section in it.
	* stabsread.c (cleanup_undefined_types): Don't complain about
	the type being undefined unless it actually is still undefined.
	* (read_type): Set the "type" variable to the value of dbx_fixup_type,
	since it might be used later on in read_type.

2005-08-10  Jason Molenda  (

	* stabsread.c (cleanup_undefined_types): Remove extra "." at end
	of complaint.

2005-08-02  Jim Ingham  <>

	* dbxread.c (dbx_psymtab_to_symtab_1): Remove a debugging
2005-08-01  Jim Ingham  <>

	* stabsread.c (dbx_fixup_type): New function.
	(read_type): Fix the type in the slot for a given typenumber,
	don't just replace it with the new type.  Otherwise the 
	references to it won't get fixed up.
2005-07-28  Jim Ingham  <>

	* dbxread.c (read_dbx_symtab): We recognize the symbol 
	separation file from the N_OSO name, not the N_SO name.
	(read_ofile_symtab_from_oso): Read over the stabs from
	coalesced functions and extract the types.
	* stabsread.c (process_symbol_types_only): New function,
	the parsing side of extracting types from a stab.
2005-07-27  Jim Ingham  <>

	This set of changes implements keeping debug information
	in the .o file, and mapping the addresses from there using
	a minimal set of debug information in the final linked image.

	* dbxread.c: (read_ofile_symtab_from_oso, 
	stabsect_read_strtab_from_oso, open_bfd_from_oso, 
	cleanup_oso_data, lookup_psymbol_from_namestring,
	New functions.
	(fill_symbuf): If using stabs_data, don't bother copying it
	into the symbuf, just use it out of stabs_data.
	the N_SECT flag was set on the external nlist.
	(set_namestring_1): New function, read the namestring without
	using the objfile directly.
	(set_namestring): Change to use set_namestring_1.
	(read_dbx_symtab): Process the N_OSO stab.  
	Also, if we saw an N_OSO, then build up a queue of static symbols 
	so we can map them back when reading in the .o file.
	Don't read symbols from the SYMBOL_STUB section, they just confuse us.
	Add symbol separation files to the dependency list by hand.
	Don't duplicate the code for handling 'F' and 'f' FUN stabs.
	Read in the N_OPT symbols when reading the psymtab.  ld64 doesn't
	give addresses to ANY N_SO stabs, and that confuses us if we don't
	know we are processing gcc compilations in the psymtab.
	(start_psymtab): Null out OSO name and OSO statics.
	Record the language in the psymtab, we will need it.
	(dbx_psymtab_to_symtab_1): Add support for reading out of the .o.
	(process_one_symbol): Remove compiler warning.
	* symtab.h: Add language to psymtab.
	* config/tm-macosx.h: change INTERNALIZE_SYMBOL to take sect_p.
	* event-top.c (async_request_quit): Check for immediate_quit.

	* symfile.c (open_bfd_matching_arch): Make a common idiom into a 
	Also use it where needed.
	* symfile.h: declare open_bfd_matching_arch.
	* exec.c: use open_bfd_matching_arch.

	* stabsread.c (read_type): Obvious merge goof.
	Also check for ERROR and don't continue processing array type.

	* symtab.c (lookup_partial_symbol): Fix thinko in looking up 
	with both demangled & mangled names.

2005-06-30  Jim Ingham  <>

	* symtab.c (rbreak_command): Add -shlib to the case where
	we only found minsymbols as well, so we don't set all the
	rbreak breakpoints on the same symbol.
2005-06-23  Jim Ingham  <>

	* valops.c (value_of_this): Use get_selected_frame rather
	than accessing the deprecated_selected_frame directly.
2005-06-20  Jim Ingham  <>

	* c-exp.y (yylex): Look up symbol as ObjC class even if
	we don't have debug info for it.  We don't need that to
	call a method on the object.
	* objc-lang.c (print_object_command): If the class has
	an unknown type, cast it to id before calling po.

2005-06-14  Jim Ingham  <>

	* defs.h: Add a declaration of get_scheduler_lock_ptid.
	* infrun.c (get_scheduler_lock_ptid): New function.
	(set_schedlock_helper): Use scheduler_run_this_ptid instead
	of setting scheduler_lock_ptid by hand.
	(resume): Ditto.
	(init_wait_for_inferior): Ditto

	* objc-lang.c (print_object_command): Make the unsafe call
	a warning not an error.  Otherwise you can't use po in a
	breakpoint command without aborting the command...

	* thread.c (switch_to_thread): Move the code to switch the
	locked thread if the scheduler locking is on from
	do_captured_thread_select to here, this is a more basic

2005-06-07  Jason Molenda  (

	* i386-tdep.c (i386_frame_setup_skip_insns): Add instructions
	found in prologues on a Red Hat FedoraCore2 system.

2005-09-12  Jason Molenda  (

        * objc-lang.c (print_object_command): Revert last patch until
        I have a chance to look into why it caused regressions. 

2005-09-12  Eric Albert  (

	* objc-lang.c (print_object_command): Add support for calling
	CFPrintForDebugger() if the dylib with NSPrintForDebugger() isn't 

2005-09-01  Klee Dienes  <>

	* disasm.c (fprintf_null): New function.
	(gdb_disassemble_info_null): New function.  Returns a struct
	disassemble_info that generates no output.
	(gdb_disassembly): Don't pass in file_string and line_num; they
	weren't used anyway.
	(find_pc_offset): New function.

	* disasm.h (gdb_disassembly): Update prototype.

	* cli/cli-cmds.c: Update call to gdb_disassembly.

2005-08-09  Klee Dienes  <>

	* varobj.c (struct value_rtti_args): Remove.
	(wrapped_value_rtti_target_type): Remove.
	(safe_value_rtti_target_type): Fix exception-handling.

2005-08-09  Klee Dienes  <>

	* objc-lang.c (struct selector_entry): VAL should be a CORE_ADDR,
	not an int (since it's used to store the address of the selector
	in memory).

2005-08-03  Klee Dienes  <>

	* breakpoint.c (print_it_typical): Use async_reason_lookup.

2005-08-02  Klee Dienes  <>

	* findvar.c (extract_unsigned_integer): Use
	extract_unsigned_integer_with_byte_order, not

2005-08-02  Klee Dienes  <>

	* config/powerpc/ (NATDEPFILES): Include gcore.o.

2005-07-26  Stan Shebs  <>

	* breakpoint.c (_initialize_breakpoint): Restore a missing
	line in command help.
	* infrun.c: Bring back HP-era macros TARGET_DISABLE_HW_WATCHPOINTS
	(handle_inferior_event): Use them.
	* ppc-sysv-tdep.c (ppc_darwin_abi_return_value): Use a ULONGEST
	to work around truncation problem in 32-bit mode.
	* config/nm-macosx.h (HAVE_NONSTEPPABLE_WATCHPOINT): Re-enable.

2005-07-11  Klee Dienes <>

	* ppc-sysv-tdep.c (do_ppc_sysv_return_value): Use

2005-07-11  Klee Dienes <>

	* breakpoint.c (break_command_2): Propagate the entire exception
	upward, instead of just the reason.
	* thread.c (gdb_thread_select): Pass the address of the entire
	args struct, not just the string.
2005-07-07  Klee Dienes <>

	* varobj.c: Clean up various merge messes.

2005-07-07  Klee Dienes <>

	* interps.c (current_interp): Restore; was omitted from interps.c.
	* event-loop.c (start_event_loop): Set the global uiout to the
	uiout for the current interpreter.  This is necessary because the
	interpreter-switching code is now wrapped in a cleanup handler
	that resets the uiout.  We should clearly come up with a better
	way of managing the global interpreter and uiout, in any event,
	but this appears to work for now.

2005-07-07  Stan Shebs  <>

	* eval.c (evaluate_subexp_standard): Resolve a merge
	standard, fix some local markers.
	* infcall.c (hand_function_call): Set values_type from
	check_typedef call.
	* infcmd.c (default_print_registers_info): Fix a merge mess.
	* ppc-sysv-tdep.c (ppc_copy_into_greg): Use new API.
	(ppc_push_argument): Similarly.
	* printcmd.c (print_formatted): Tweak local markers.
	* procfs.c: Revert to FSF version.
	* valops.c (hp_som_som_object_present): Delete leftover decl.

2005-07-05  Stan Shebs  <>

	* frame.c (frame_debug): Make globally visible.

2005-06-28  Stan Shebs  <>

	* arch-utils.c: Remove our size/offset caching code, now handled
	in generic machinery.
	(reg_cache_hack__architecture_changed_hook): Delete.
	(generic_register_size): Revert to FSF version.
	(generic_register_byte): Likewise.
	* arch-utils.h (reg_cache_hack__architecture_changed_hook):
	Delete decl.
	* bcache.h: Add a local marker.
	* breakpoint.c: Likewise.
	* breakpoint.h: Likewise.
	* completer.c: Add local markers.
	* completer.h: Likewise.
	* frame.c (deprecated_frame_next_hack): Rename to
	(deprecated_frame_cache_hack): Similarly.
	(default_print_extra_frame_info): Remove, no longer used.
	* frame.h: Adjust decls to match.
	* rs6000-tdep.c: Reduce FSF discrepancies.
	(_initialize_rs6000_tdep): Make usable for non-Darwin
	* solib.c (symbol_add_stub): Fix merge mess.
	* solib.h: Reduce FSF discrepancy.
	* somread.c: Revert to FSF version.
	* stack.c (frame_info): Revive extra frame info
	printing, using macro instead of gdbarch.
	* config/nm-macosx.h (CHILD_PREPARE_TO_STORE): Delete,
	no longer needed.

2005-06-23  Stan Shebs  <>

	* breakpoint.c: Add some local markers.
	(break_at_finish_command, etc): Delete some old
	dead code.
	(condition_command): Clean up merge conflicts.
	(condition_command_1): Likewise.
	(do_captured_breakpoint): Likewise.
	(disable_exception_catch): Likewise.
	(catch_command_1): Fix FSF discrepancy.
	* breakpoint.h: Add local markers.
	* buildsym.c (record_line): Add local marker.
	* c-exp.y: Add local markers.
	* frame.c: Add local markers.
	* frame.h: Delete decls of deleted functions.
	* infcmd.c: Add local markers.
	(jump_command): Fix async patch.
	(print_return_value): Fix FSF discrepancies.
	(_initialize_infcmd): Fix attach's completer.
	* infrun.c (handle_inferior_event): Recover
	local patches in disappeared handle_step_into_function.
	* inftarg.c: Add local markers.
	* interps.h: Delete unused decl.
	* linespec.c: Add local markers.
	(symtab_from_filename): Fix merge mess.
	(decode_variable): Likewise.
	(minsym_found): Likewise.
	* linespec.h: Add local marker.
	* stack.c: Add local markers.
	* target.c: Add local markers, delete
	unused decls.

2005-06-21  Klee Dienes  <>
	* breakpoint.c (do_captured_parse_breakpoint): Now returns void.
	(watchpoint_equal): Convert to use gdb_byte.
	(break_command_2): Convert to use the new exception handling

2005-06-21  Klee Dienes  <>

	* cli/cli-setshow.c (do_setshow_command): Re-merge the "always
	show the options for an enumerated value" patch originally done by
	Jim.  Revert our removal of an extra declaration, to match the FSF
	sources.  Add APPLE_LOCAL marker.

2005-06-21  Klee Dienes  <>

	* minsyms.c (prim_record_minimal_symbol_and_info): Re-factor the
	mst_file_text check up one level.  Don't modify the symbol name
	when checking it against __gcc_compiled.  Update comments.
	(Restoring a patch originally done by Jim that somehow got lost in
	the merge.)

2005-06-21  Klee Dienes  <>

	* infcall.c (hand_function_call): Complete the merge.  Rename
	value_type to values_type, to avoid name conflict.  Replace
	CHECK_TYPEDEF with check_typedef.  Update comments.

2005-06-21  Klee Dienes  <>

	* wrapper.c: Convert entire file to the new exception-handling
	code.  Move Apple-specific #includes to end of the #include list.
	Remove all wrap_* prototypes and functions.
	(struct gdb_wrapper_arguments): Remove.
	(struct captured_value_struct_elt_args): Remove.
	(gdb_parse_exp_1): Convert to TRY_CATCH.
	(wrap_parse_exp_1): Remove.
	(gdb_evaluate_expression): Convert to TRY_CATCH.
	(wrap_evaluate_expression): Remove.
	(gdb_print_expression): Convert to TRY_CATCH.
	(wrap_print_expression): Remove.
	(gdb_evaluate_type): Convert to TRY_CATCH.
	(wrap_evaluate_type): Remove.
	(gdb_value_fetch_lazy): Convert to TRY_CATCH.
	(wrap_value_fetch_lazy): Remove.
	(wrap_value_equal): Remove.
	(wrap_value_subscript): Remove.
	(wrap_value_ind): Remove.
	(wrap_value_cast): Remove.
	(wrap_parse_and_eval_type): Remove.
	(gdb_value_struct_elt): Convert to TRY_CATCH.
	(do_captured_value_struct_elt): Remove.
	(gdb_varobj_get_value): Convert to TRY_CATCH.
	(wrap_varobj_get_value): Remove.
	(wrap_value_objc_target_type): Remove.
	(safe_value_objc_target_type): Convert to TRY_CATCH.

2005-06-20  Stan Shebs  <>

	* config/powerpc/ Use DEPRECATED_TM_FILE
	instead of TM_FILE for the target header.
	* config/i386/ Likewise.

2005-06-17  Stan Shebs  <>

	Reduce hair-tearing differences between Apple and FSF versions
	of symbol_file_add* functions.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Rename to
	symbol_file_add_name_with_addrs_or_offsets and fix callers.
	(symbol_file_add_bfd_with_addrs_or_offsets): Rename
	to symbol_file_add_with_addrs_or_offsets.
	(symbol_file_add_bfd): Remove, redundant with
	(symbol_file_add_from_bfd): Call symbol_file_add_with_addrs_or_offsets.
	(symbol_file_add): Call symbol_file_add_name_with_addrs_or_offsets.
	(symbol_file_add_main_1): Call
	* symfile.h (symbol_file_add_bfd): Remove decl.

2005-06-17  Klee Dienes  <>

	symfile.c (reread_symbols): Fix up the Apple-local patches to
	the stat check --- the FSF folks added their own check, but it's not
	quite right.

2005-06-15  Klee Dienes  <>

	* configure: Regenerate.

2005-06-07  Jason Molenda  (

        * i386-tdep.c (i386_frame_setup_skip_insns): Add instructions
        found in prologues on a Red Hat FedoraCore2 system.

2005-06-04  Jason Molenda  (

	* i386-tdep.c: A little merge cleanup.  Haven't tried compiling yet,
	just eyeballing.

2005-05-30  Stan Shebs  <>

	* block.c (blockvector_for_pc_sect): Note a mysterious
	* breakpoint.c (insert_bp_location): Mark local changes.
	(insert_breakpoints): Likewise.
	(software_breakpoint_inserted_here_p): Likewise, remove
	if 0 block.
	(print_it_typical): Mark local change.
	(watchpoint_equal): Note as Apple-only.
	(watchpoint_check): Mark local changes.
	(bpstat_stop_status, print_one_breakpoint,
	user_settable_breakpoint, resolve_pending_breakpoint,
	disable_breakpoints_in_shlibs, mention,
	delete_breakpoint, delete_command,
	breakpoint_re_set_one, save_breakpoints_command): Mark
	local changes.
	* breakpoint.h: Likewise.
	* buildsym.c (add_symbol_to_list, finish_block,
	make_blockvector, start_subfile): Likewise.
	(end_symtab): Remove if 0 block.
	* buildsym.h: Mark local change.
	* c-typeprint.c (cp_type_print_method_args): Likewise.
	(c_type_print_args): Likewise.
	* cli-out.c: Likewise.
	* completer.c: Tweak FSF discrepancy.
	* corelow.c (core_close): Mark local change.
	* cp-abi.c, cp-abi.h, cp-namespace.c: Likewise.
	* stabsread.c (read_member_functions): Remove
	long if 0 block.
	* symfile.c, symfile.h, symtab.h: Tweak cosmetic FSF
	* cli/cli-cmds.c, cli/cli-cmds.h, cli/cli-decode.c,
	cli/cli-script.c: Likewise, and mark local changes.

2005-05-27  Klee Dienes  <>

	* minsyms.c (prim_record_minimal_symbol_and_info): Don't build
	the equivalent symbol table here; these symbols are going to get freed
	and replaced by versions on the obstack.
	(install_minimal_symbols): Instead, build them here, by
	calling the new function equivalence_table_build().

	* symmisc.c (equivalence_table_build): New function.  Based on the
	original code from prim_record_minimal_symbol_and_info.

	* symtab.h (equivalence_table_build): Add prototype.
	(equivalence_table_add): If the table hasn't been allocated,
	something has gone very wrong --- issue an internal error, instead
	of just covering it up.
2005-05-27  Klee Dienes  <>

	* linespec.c (decode_variable): Add new boolean argument
	EQUIVALENCIES, to determine if decode_variable should look up
	equivalent symbols.
	(minsym_found): Ditto.  Also, when returning the canonical names,
	single-quote them so they won't be re-evaluated for equivalent
	symbols later.
	(decode_line_one): If we are parsing a single-quoted string, tell
	decode_variable not to look up equivalent symbols.
	(decode_dollar): Tell minsym_found not to look up equivalent
	(decode_variable): Propagate CANONCIAL through to minsym_found.
2005-05-27  Klee Dienes  <>

	* breakpoint.c (bpstat_copy): Release the copy of the value in
	the bpstat, so it doesn't get freed out from underneath us.

2005-05-27  Klee Dienes  <>

	* frame.c (get_prev_frame): Allow a single duplicate frame in the
	stack (generating a warning), but generate an error if there are
	two or more duplicates in a row.  This allows us to recover from a
	minor prologue parsing error, but still prevents an infinite loop
	from spamming the user.

2005-05-26  Stan Shebs  <>

	* arch-utils.c, arch-utils.h (generic_dynamic_trampoline_nextpc):
	(show_endian): Tweak local markers.
	* blockframe.c (deprecated_inside_entry_file): Likewise.
	(inside_main_func): Likewise.
	* breakpoint.c: Add some local markers.
	* breakpoint.h: Likewise.
	* c-valprint.c: Likewise.
	* corefile.c: Tweak local markers.
	*, gdbarch.c, gdbarch.h: Remove
	dynamic_trampoline_nextpc bits.
	* hpread.c (hpread_alloc_type): Revert local change.
	* utils.c: Whack a newline.
	* value.h: Tweak whitespace and local markers.
	* varobj.c: Add some local markers.
	* wrapper.c: Likewise.

2005-05-26  Jason Molenda  (

	* serial.c (serial_open): Comment fix.

2005-05-25  Stan Shebs  <>

	* breakpoint.c, c-typeprint.c, cli/cli-out.c, eval.c,
	event-top.c, fork-child.c, frame.h, infcmd.c, inftarg.c,
	jv-exp.y, main.c, maint.c, minsym.c, objc-lang.c,
	ppc-tdep.h, remote.c, source.c, stabsread.h, stack.c,
	symfile.c, target.h, thread.c, top.c, ui-out.c,
	cli/cli-decode.h, cli/cli-script.c, mi/mi-cmd-break.c,
	mi/mi-cmd-file.c, mi/mi-cmd-var.c, mi/mi-main.c: Cosmetic
	changes to reduce discrepancy with FSF versions.
	* corefile.c (memory_error): Remove use of always-zero
	* defs.h: Remove redundant include of ansidecl.h, remove
	junk cygwin and NeXT_PDO passes.
	* elfread.c (elf_symtab_read): Remove old PDO bit.
	* eval.c (evaluate_subexp_standard): Remove reference
	to undefined variable symbol_generation.
	* gdb_locale.h: Remove include of ansidecl.h and
	undef of _.
	*, gdbarch.c, gdbarch.h: Remove clear_gdbarch_swap,
	declarations of swapout_gdbarch_swap and swapin_gdbarch_swap,
	all unused.
	* macosx/macosx-nat-dyld.c: Likewise.
	* jv-lang.c: Remove unused static class_symtab_space.
	* m2-exp.y: Remove unused NOTUI.
	* minsym.c (lookup_minimal_symbol_text): Remove local #if 0 bit.
	(lookup_minimal_symbol_by_pc_section_from): Likewise.
	(lookup_minimal_symbol_by_pc): Remove #if O FSF bit, risky
	for bad patching in merges.
	* objfiles.c (objfile_purse_solibs): Remove local commented-out
	* rs6000-tdep.c: Add a local marker.
	* serial.h, serial.c, ser-pipe.c, ser-tcp.c, ser-unix.c,
	macosx/macosx-nat.c: Don't use altered names for open,
	close, and write fields of struct.
	* stabsread.c: Don't include limits.h.
	(os9k_stabs): Remove.
	* symtab.c (gdb_mangle_name): Remove local #if 0 code.
	* target.c (debug_to_core_file_to_sym_file): Likewise.
	* gdbtk-cmds.c, gdbtk-hooks.c: Add local markers.

2005-05-22  Stan Shebs  <>

	* whack old nindy bits left over from merge.
	* dbxread.c (unparse_stabtype): Remove, never used.
	* arch-utils.c, cp-namespace.c, symfile.c: Add a newline.
	* bcache.c: Lose a newline.

2005-05-19  Jim Ingham  <>

	* varobj.c: Added "lookup_dynamic_type" variable to the
	value_of_child ftype.
	(value_of_child): Pass this in.
	(c_value_of_child): Set it properly.
	(java_value_of_child): Ditto
	(cplus_value_of_child): Ditto, plus make sure if we are
	a baseclass, we use TYPE_PTR if our parent was a pointer
	to the object.
	(cplus_type_of_child): Again, base-classes need to be
	pointers to base-class if their parents were as well.
	(cplus_path_expr_of_child): Need to use the dynamic child
	for the cast if it is available.

2005-05-19  Stan Shebs  <>

	* coffread.c, event-loop.c, exec.c, fork-child.c,
	gdbarch.h,, gdbcore.h, hpux-thread.c,
	i386-tdep.c, infcall.c, infcmd.c, memattr.c, objfiles.c,
	objfiles.h, solib.c: Clear random small differences
	from FSF versions, cosmetic or unused code.

	* defs.h (Debugger_state): Remove, not needed.
	(state_change_hook): Likewise.
	* top.c (state_change_hook): Remove.
	(quit_target): Remove use of state_change_hook.
	* infcmd.c (run_command, continue_command,
	signal_command): Likewise.
	* inflow.c (kill_command): Likewise.
	* infrun.c (handle_inferior_event): Likewise.
	* main.c (main): Likewise.
	* symfile.c (symbol_file_clear, symbol_file_command):

2005-05-19  Jason Molenda  (

	* i386-tdep.c (i386_frame_setup_skip_insns): Add xorps.

2005-05-18  Stan Shebs  <>

	Remove cached symfile machinery.
	* Remove reference to cached-symfile.o.
	* jv-lang.c (get_dynamics_objfile): Only use Apple version of
	* objfiles.c: Restore to layout more like to FSF code,
	remove FSF_OBJFILES stuff since diverged from FSF, merge
	cached symfile commands from removed files for compat (but
	they are no-ops).
	* objfiles.h (OBJF_MAPPED): Remove.
	(allocate_objfile): Remove excess decl.
	* symfile.c (MAPPED_SYMFILES): Remove.
	(symbol_file_add_bfd_with_addrs_or_offset): Only use Apple version of
        allocate_objfile, prune out mapped symfile code.
	(add_symbol_file_command): Remove -mapped option.
	(reread_separate_symbols): Remove use of OBJF_MAPPED.

2005-05-16  Jason Molenda  (

	* fix-and-continue.c (update_picbase_register): Add a debug printer.
	* i386-tdep.c (i386_find_picbase_setup): i386_frame_setup_skip_insns
	now skips over the picbase register call, so look for that in the 
	matched insns.

2005-05-12  Jim Ingham  <>

	* dwarf2read.c: Add the dwarf_*_vma values to the dwarf2_pinfo
	structure.  Add accessor macros.
	(dwarf2_build_psymtabs_hard): Store our hacky
	dwarf_*_vma addresses in the pst.
	(psymtab_to_symtab_1): reset the dwarf_*_vma addresses out of
	the pst.
2005-05-10  Jim Ingham  <>

        * breakpoint.c (breakpoint_create): Don't let the condition setting
        for a pending breakpoint "error", catch the error and issue a warning

        * objc-exp.y: Use find_template_name_end to step over a template 
        rather than doing it by hand.

2005-05-09  Klee Dienes <>

	* stabsread.c (define_symbol): Add support for
	CodeWarrior-style boolean constants.

2005-05-09  Klee Dienes <>

	* dbxread.c (end_fun_absolute_p): New variable.
	(process_one_symbol): Add support for absolute-address N_FUN
	(_initialize_dbxread): Add "function-end-absolute" GDB variable.

2005-05-09  Jason Molenda  (

	* i386-tdep.c (i386_analyze_frame_setup): Remove FIXME comment
	I'd added - I believe I was mistaken.

2005-05-03  Ronnie Misra  (
        Edited by Jason Molenda (

	* remote.c (remote_ops): Make global so we can access it from
	* serials.c (serial_open): Recognize "unix" style serial connections
	(socket connections).

2005-05-02  Jim Ingham  <>

	* breakpoint.c (tell_breakpoints_objfile_changed): Always check the
	bp_objfile against the one passed in, regardless of whether the 
	breakpoint is set or not.
2005-04-29  Klee Dienes  <>

	* valarith.c (value_subscripted_rvalue): Fix comparison
	against upper bound.

2005-04-29  Jason Molenda  (

	* i386-tdep.c (i386_find_esp_adjustments): New function, necessary
	for finding our way in -momit-leaf-frame-pointer frames.
	(i386_frame_cache): Add new case to handle genuinely frameless

2005-04-29  Klee Dienes  <>

	* infrun.c: Include "ppc-macosx-regnums.h" when necessary.
	(handle_inferior_event): If we are doing a metrowerks-step,
	use ($pc == $lr) to determine if we have just returned from a
	function, since we won't have any other symbol information

2005-04-29  Klee Dienes  <>

	* eval.c (evaluate_subexp_with_coercion): Don't coerce vectors to
	pointers, even though they are nominally arrays.

	* gdbtypes.c (use_stride): New variable.
	(create_range_type): Add new 'stride' field.
	(get_array_bounds): New function.
	(_initialize_gdbtypes): Add 'use-array-stride' GDB variable.

	* gdbtypes.h (TYPE_STRIDE): New accessor.
	(get_array_bounds): Add prototype.

	* stabsread.c (read_type): Add support for the @T= (stride)
	parameter.  Set the stride to -1 if we notice the @V (vectory)
	parameter on an Intel target.

	* valarith.c (value_subscripted_rvalue): No longer pass the lower
	bound explicitly; we can calculate it from the range type.  Add
	support for reverse array strides.
	(value_subscript): Use get_array_bounds and the new prototype for
	value_subscripted_rvalue.  Pull in the change from FSF that
	doesn't print a "out of range" warning if the array is declared to
	be of unspecified size.  Add support for reverse strides.

	* valprint.c (val_elt_addr):  New function.
	(val_print_array_elements): Update to use val_elt_addr.

2005-04-29  Jim Ingham  <>

	* valops.c (value_cast): Don't COERCE_REF a reference type, since
	that turns it into a struct and then when we go to cast it back
	to a reference, we cast the value not the address.
2005-04-26  Jim Ingham  <>

	* breakpoint.c (resolve_pending_breakpoint): Pass a choices array
	with -1, so if there are multiple hits we will choose all the
	(re_enable_breakpoints_in_shlibs): catch errors from 
	* stabsread.c (read_struct_type): If we see a redefined type,
	read the new stab in.  Otherwise we may miss some in-line
	type definitions that we might need.
	(find_name_end): gcc emits some ObjC++ symbol names with the ObjC bit
	AFTER the _ZWhatever.  find_name_end should skip over the ObjC part
	of these symbols.
	* valops.c (check_field): If "this" is not a aggregate, warn and return
	not a member of this, rather than error-ing.  Otherwise you will halt 
	searches whenever you are in a frame with bad stabs for "this".

2005-04-26  Jason Molenda  (

	* printcmd.c (decode_format): Recognize "T".
	(print_formatted): Call print_ostype for "T".
	(print_scalar_formatted): Ditto.
	(do_examine): Recognize "T".
	(_initialize_printcmd): Add "T" to "help x" documentation.
	* valprint.c (print_ostype): Print out an OSType variable's contents.
	* valprint.h (print_ostype): Add prototype.
	* varobj.c (varobj_format_string): Add "unsigned" and "OSType".
	(format_code): Matching update.
	(varobj_set_display_format): Handle FORMAT_OSTYPE.
	* varobj.h (enum varobj_display_formats): Add FORMAT_OSTYPE.

2005-04-25  Jason Molenda  (

	* target.c (debug_check_is_objfile_loaded): A "debug target" printer
	(setup_target_debug): Add it to the vector.

2005-04-21  Jim Ingham  <>

	* breakpoint.c (resolve_pending_breakpoint): move the 
	delete_breakpoint call into this function, it's much
	cleaner that way.
	(re_enable_breakpoints_in_shlibs): Take delete_breakpoint
	out of here.
	(do_enable_breakpoint): Ditto
	(create_breakpoints): Swap the resolved breakpoint for
	the pending breakpoint in the list (if there is only one
	resolved breakpoint.)
2005-04-20  Jason Molenda  (

	* i386-tdep.c (i386_match_insn): New parameter, to indicate that
	we should avoid matching a prologue instruction or not.
	(i386_frame_setup_skip_insns): Add all the instructions that
	were scheduled into prologues in any dylib/framework on a gcc 3.3
	compiled system.
	(i386_analyze_frame_setup): Return the instruction following the
	last frame-setup instruction we saw.  Update call of i386_match_insn.
	(i386_find_picbase_setup): Update calls to i386_match_insn.
	(maintenance_i386_prologue_parser): Look 48 bytes into the function
	before giving up, by default.  Fix status printing statements a bit.

2005-04-18  Klee Dienes  <>
	* minsyms.c (lookup_minimal_symbol): Don't crash if a minsym
	doesn't have filename set in the SOFUN_ADDRESS_MAYBE_MISSING

2005-04-18  Klee Dienes  <>

	* arch-utils.c (show_endian): Add MI support.

2005-04-15  Jason Molenda  (

	* i386-tdep.c (maintenance_i386_prologue_parser): Add a new maint
	command to run gdb's prologue analyzer on a selected address/function
	and report how far it got.

2005-04-14  Jason Molenda  (

	* i386-tdep.c (i386_analyze_frame_setup): Don't scan into the
	following function by accident.
	(i386_frame_cache): Detect frames that cannot possibly be frameless,
	so we can make assumptions about the stack setup, regardless of our
	ability to parse the function's prologue.

2005-04-14  Jason Molenda  (

	* i386-tdep.c (i386_analyze_frame_setup): Recognize the push $0x0
	as an alternative to push %ebp in a prolgoue.

2005-04-14  Jason Molenda  (

	* i386-tdep.c (i386_frame_setup_skip_insns): Add instructions
	found in hand-written assembly in objc_msgForward.
	(i386_analyze_frame_setup): Allow for any of the non-prologue
	instructions to occur before push %ebp.

2005-04-09  Jason Molenda  (

        * fix-and-continue.c (redirect_old_function): Write an x86
        Fix and Continue trampoline.
        (decode_fix_and_continue_trampoline): Recognize an x86 F&C trampoline.
        (update_picbase_register): CAll out to i386_find_picbase_setup() (new
        function) to find the picbase for a function, if any is used.
        (fix_and_continue_supported): F&C is now supported on x86.

        * i386-tdep.c (I386_MAX_INSN_LEN, struct i386_insn, i386_match_insn,
        i386_frame_setup_skip_insns, i386_analyze_frame_setup):  Import FSF
        gdb TOT sources for these structs/variables/functions (2005-04-07).
        I ended up modifying all of these with minor Apple Local changes.
        (i386_frame_setup_insns): New array, a list of instructions that
        are expected in a function prologue.
        (i386_find_picbase_setup): New function; skip over instructions that
        are expected in a prologue, and instructions that sometimes get
        scheduled into a prologue, looking for the CALL insn that will set up
        the PIC base for this function.
        * i386-tdep.h: Prototype for i386_find_picbase_setup.

2005-04-06  Klee Dienes  <>

        * findvar.c (extract_signed_integer_with_byte_order): Construct
        from extract_signed_integer.
        (extract_signed_integer): Update to use
        (extract_unsigned_integer_with_byte_order): Ditto.
        (extract_unsigned_integer): Ditto.
        (extract_long_unsigned_integer_with_byte_order): Ditto.
        (extract_long_unsigned_integer): Ditto.
        (store_signed_integer_with_byte_order): Ditto.
        (store_signed_integer): Ditto.

        * gdbtypes.h (struct main_type): Use the last two bits of the
        'type' field, for the new field 'byte_order', to store the byte
        order of the given type.
        (TYPE_BYTE_ORDER): Add accessor for 'byte_order'.

        * gdbtypes.c (alloc_type): Initialize the byte order to

        * i386-linux-nat.c (swap_fpxregs): New function.  Byte-reverses
        the xmm register sections of a fxsave region.
        (fetch_fpxregs): Call swap_fpxregs on the xmm data.
        (store_fpxregs): Call swap_fpxregs on the xmm data.

        * i386-tdep.c (builtin_type_vec128i_big): New type, for big-endian
        128-bit vectors (used by the XMM register store).
        (init_vector_type): Taken from gdbtypes.c.
        (build_builtin_type_vec128i_big): Create the big-endian XMM
        register type.
        (i386_register_type): Return builtin_type_vec128i_big for XMM
        (_initialize_i386_tdep): Call build_builtin_type_vec128i_big.

        * i387-tdep.c (i387_swap_fxsave): New function.  Byte-reverses the
        xmm register sections of a fxsave region.

        * i387-tdep.h (i387_swap_fxsave): Add prototype.

        * valprint.c (val_print_type_code_int): Update to use the
        _with_byte_order variants of the print/extract functions.
        (print_hex_chars_with_byte_order): Construct from print_hex_chars.
        (print_hex_chars): Update to use print_hex_chars_with_byte_order.
        (print_char_chars_with_byte_order): Ditto.
        (print_char_chars): Ditto.

        * valprint.h (print_hex_chars_with_byte_order): Add prototype.
	(print_char_chars_with_byte_order): Add prototype.

        * values.c (unpack_long): Update to use the _with_byte_order
        variants of the print/extract functions.

2005-03-31  Jim Ingham  <>

	* i386-tdep.c (i386_analyze_frame_setup): Really look for
	    mov $XXX, reg
	rather than just doing it when reg == %ecx
	* fork-child.c (_initialize_fork_child): Typo in the help string.
2005-03-30  Jim Ingham  <>

	* fix-and-continue.c (decode_fix_and_continue_trampoline): Make this 
	a no-op for anything other than PPC.

	* i386-tdep.c (i386_analyze_frame_setup): Add cmpl to the list of
	instructions we might find after the push %ebp, since the compiler
	sometimes puts it there.

	* config/i386/tm-i386-macosx.h: Remove definitions for the
	skip_trampoline functions - they are now generic macosx functions.
2005-03-24  Jason Molenda  (

        * Force AC_FUNC_MMAP's result to 'yes' - it
        needs to run a test case to say 'yes' so cross-host builds
        end up with mmap support turned off.
	Replaced the configdirs variable with separate invocations of
        AC_CONFIG_SUBDIRS as the new autoconf wants to have done.
	(matches FSF TOT)
        * acloal.m4, configure, */configure: Regenerated.

2005-03-18  Jim Ingham  <>

	* remote.c (init_remote_ops): Make sure that the asyn_mask_value
	is 0 for asynchronous remote target.
	* target.c (update_current_target): Inheriting data values doesn't
	work with the INHERIT method, since 0 means "doesn't provide a

2005-03-18  Jason Molenda  (

	* objfiles.c (_initialize_objfiles): Don't put the 
	auto-raise-load-levels in a #if HAVE_MMAP section of code.

2005-03-11  Jason Molenda  (

	* i386-tdep.c (i386_frame_cache): Revert a bit of Klee's 2005-02-23
	patch that was causing problems with source-level 'next'ing.

2005-03-11  Jason Molenda  (

	* symfile.c (symfile_bfd_open): Mark symbol files as cacheable so
	we don't fill the bfd cache.

2005-03-04  Jim Ingham  <>

	* objfiles.c (objfile_name_set_load_state): New function.
	* objfiles.h: declare objfile_name_set_load_state.
	* breakpoint.c (breakpoint_re_set_one): If a shlib is specified
	for the breakpoint, raise it's load level here just to make sure
	that someone hasn't downgraded it between the time you first
	set the breakpoint and now.
2005-03-02  Jim Ingham  <>

	* breakpoint.c (gnu_v3_update_exception_catchpoints): If the library
	in which we are setting the exception breakpoint hasn't been loaded
	yet, set the bp_waiting_load state.
	(breakpoint_re_set_one): Also reset exception breakpoints that are 
	waiting load.
	(breakpoint_update): The check for breakpoint type is bogus, don't set
	the waiting state if you don't intend the breakpoint to be updated.
2005-02-24  Jim Ingham  <>

	* objfiles.c (objfile_set_load_state): Add the force parameter
	and obey it.
	(pc_set_load_state): Ditto.
	(_initialize_objfiles): Add the "set auto-raise-load-levels" flag.
	* objfiles.h: Change the declarations of objfile_set_load_state
	and pc_set_load_state.
	* breakpoint.c (parse_breakpoint_sals): Pass force parameter.
	* fix-and-continue.c (raise_objfile_load_level): Ditto.
	* infrun.c (handle_step_into_function): Ditto
	* stack.c (print_frame_info): Ditto
	* frame.c (frame_id_equal): Turn off the code_addr = 0 means wildcard
	behavior altogether.

	* stack.c (symbol_file_add_main_1): Obey the load rules for the
	main executable.

	* thread.c (thread_apply_all_command): Don't report the thread switch
	back to the original thread, it is just confusing spam.
2005-02-23  Klee Dienes  <>

	* i386-tdep.c (i386_frame_cache): Use 0(%ebp) as the default value
	for the previous %ebp when not on the top of the stack.  Don't try
	to be too clever about deciding a function is frameless, or
	partially constructed, unless we were able to parse the prologue.
	(i386_frame_this_id): Truncate the backtrace when we reach a NULL
	%ebp for the previous frame.

2005-02-23  Klee Dienes  <>

	* corefile.c (captured_read_memory_integer_arguments): Allow
	either a signed or unsigned result.  Add 'signedp' to determine
	which field to use.
	(do_captured_read_memory_integer): Honor the value of 'signedp'.
	(safe_read_memory_integer): Update to set signedp, and retrieve
	the signed value.
	(safe_read_memory_unsigned_integer): New function.

	* gdbcore.h (safe_read_memory_unsigned_integer): Add prototype.
2005-02-21  Jason Molenda  (

	* fix-and-continue.c (fix_and_continue_supported): New function
	to determine if F&C is supported for the given executable or not.
	* defs.h: Prototype for above.

2005-02-18  Klee Dienes  <>

	* symfile.c (symbol_file_add_main_1): Check the load rules when
	loading symfile_objfile as well.

2005-02-17  Jim Ingham  <>

	* breakpoint.c (insert_bp_location): Breakpoints that
	are pure address breakpoints, with no associated objfile
	should always be inserted.  We assume the user knew what
	she was doing in this case.
	(breakpoint_re_set_one): Ditto.
	(breakpoint_update): Ditto.
	* linespec.c (decode_line_2): Obey funfirstline for
	symbols which are in objfiles with no debug info as 
	(decode_objc): Ditto.

2005-02-10  Jim Ingham  <>

	* breakpoint.h: Add the bp_set_state enum, use it
	for the bp_set_state element of struct breakpoint.
	* breakpoint.c: First, revert the changes of 
	2005-01-21, this is a better way to do it.
	Second, everywhere bp_set_p appears, convert to
	bp_set_state, and use the enum.
	(breakpoint_re_set_one): If we fail to set the breakpoint
	all the way because it's objfile isn't loaded yet,
	don't delete it, mark it as bp_state_waiting_load.
	(breakpoint_update): If there are any bp_state_waiting_load
	breakpoints, try to set them in the objfile they were found
2005-02-01  Jim Ingham  <>

	* ppc-sysv-tdep.c (ppc_push_argument): Follow the 
	Mac OS X ABI and don't 8-byte align long long's.
	* breakpoint.c (breakpoint_re_set_all): Continue after
	deleting longjmp breakpoint.
2005-02-01  Jason Molenda  (

        * fix-and-continue.c (check_restriction_cxx_zerolink): Correct
        error message syntax.

2005-01-31  Jim Ingham  <>

	* printcmd.c (address_info): Check for a NULL block before
	accessing it.
2005-01-28  Jim Ingham  <>

	* objfiles.c (objfile_set_restrict_list): New function.
	(objfile_matches_name): Return different values for an
	exact match & a basename match.
	(make_cleanup_restrict_to_objfile_list): New function.
	(make_cleanup_restrict_to_shlib): If you have multiple
	basename only matches, then look in all those matches.
	* objfiles.h: def'n of objfile_matches_name_return enum.
2005-01-25  Jim Ingham  <>

	* breakpoint.c (breakpoint_re_set_all): Delete the
	old longjmp breakpoints before making them again.
	FIXME: Probably should just flag whether we have done 
	this once, and not do it again.
2005-01-21  Jim Ingham  <>

	* breakpoint.c (set_bp_objfile): New function.
	(set_raw_breakpoint): use set_bp_objfile.
	(create_breakpoints): Ditto.
	(breakpoint_re_set_one): If we can't set the 
	breakpoint because it's objfile isn't loaded yet
	return 1 to indicate this to our callers.
	Also use set_bp_objfile.
	(breakpoint_re_set_all): Pass up the return value
	from breakpoint_re_set_one.
	(breakpoint_update): If we couldn't reset the breakpoint
	because a library hadn't loaded yet, don't reset the
	symbol & breakpoint generations, so we will retry setting
	the breakpoint again next time around.
2005-01-13  Jason Molenda  (

	* symfile.h: Include symtab.h to pick up domain_enum decl.

2005-01-13  Jason Molenda  (

	* jv-lang.c (get_dynamics_objfile): Proper # of args to 
	* objfiles.h: Add prototype for cached symfile version of
	allocate_objfile() so all callers are using the right prototype.
	* symfile.c: Don't include macosx/cached-symfile for allocate_objfile
	(TEXT_SEGMENT_NAME): Provide default for non-macosx platforms.

2005-01-12  Jason Molenda  (

	* objfiles.h (struct objfile): New field, syms_only_objfile.
	* objfiles.c (allocate_objfile): Set SYMS_ONLY_OBJFILE field of
	struct objfile to 0 by default.
	* symfile.c (add_symbol_file_command): Mark objfile that we add
	via add-symbol-file as such so breakpoint insertion isn't confused.

2005-01-12  Jason Molenda  (

	* fix-and-continue.c (fix_command_1): Raise the load level of
	the original dylib AFTER we tell zerolink to page it in, not

2005-01-11  Jason Molenda  (

        * symfile.c (syms_from_objfile): Use the text segment name,
        not the text section name, to find the load address of the 
        (add_symbol_file_command): Ditto.
        * config/tm-macosx.h (TEXT_SEGMENT_NAME): Define.

2005-01-04  Jason Molenda  (

	* breakpoint.c: Don't include macosx-nat-dyld-process.h here any
	more; we're going through the target vector as of 2004-12-22.

2005-01-04  Jason Molenda  (

	* breakpoint.c (insert_bp_location): Skip objfile-loaded check if
	we're evaluating a watchpoint.  Those are considerably more complicated
	to handle correctly.
	(set_raw_breakpoint): Find the appropriate objfile for a breakpoint
	and stash that away for the is-objfile-loaded check in 
	* objfiles.c (objfile_purge_solibs): Revert 2004-12-21 change and 
	#if 0 out the code that clears the object_files chain when we
	mourn the inferior.

2004-12-22  Jim Ingham  <>

       * target.h: Add to_check_is_objfile_loaded to target vector.
       * target.c: INHERIT & de_fault to_check_is_objfile_loaded. 
       * breakpoint.c (insert_bp_location): Switch to using

2004-12-21  Jason Molenda  (

	* objfiles.c (objfile_purge_solibs): Remove Apple Local #if 0 around the
	purgy bits of this function.

2004-12-17  Jason Molenda  (

	* breakpoint.c: Conditionally include macosx-nat-dyld-process.h at the
	top of the file.
	* infcall.c: Ditto.
	* objfiles.c: Ditto.

2004-12-15  Jim Ingham  <>

	* objfiles.c (free_objfile): Move the call to
	delete_objfile_from_ordered_sections to before we close the bfd.
	We use the bfd sections in that call...

	* minsyms.c (lookup_minimal_symbol_by_pc_section_from_objfile): If
	we don't find a minsym in the correct section, return NULL rather
	than the last minsym we looked at.
2004-12-14  Jason Molenda  (

	* fix-and-continue.c (do_final_fix_fixups_static_syms): This func does
	nothing if oldobj is null; skip out early.
	(check_restrictions_locals): Move expensive loop invariant out of
	the loop.

2004-12-13  Jim Ingham  <

	* cli/cli-cmds.c (ambiguous_line_spec): Handle the case where
	one of the line specs has a NULL symtab.
	* source.c (ambiguous_line_spec): This copy of the function is
	never used, and is gone from the FSF tree.  Delete it from here
	so we don't waste time maintaining it...
2004-12-09  Jason Molenda  (

	* fix-and-continue.c: Move macosx-nat-dyld-process.h inclusion to
	the right spot.

2004-12-08  Jason Molenda  (

	* fix-and-continue.c (get_fixed_file): Include macosx-nat-dyld-process.h	
	to get prototype.
	* infcall.c (hand_function_call): Include macosx-nat-infthread.h to 
	get prototype.
	* objfiles.c (objfile_purge_solib): Add comment.
	(objfile_set_load_state): Include macosx-nat-dyld.h to get prototype.
	* breakpoint.c (insert_bp_location): Re-enable code to check if an
	objfile is actually resident in memory; use the NM_NEXTSTEP conditional
	to suppress the macosx/ function call when we're building host x host
	w/o the dyld interface code.

2004-12-06  Jason Molenda  (

	* breakpoint.c (insert_bp_location): This won't work for host x host
	builds where we don't have any of the macosx-nat-dyld* files build. :/
	Comment it out for tonight's submission so I can find another way to do
	this somehow.

2004-12-06  Jason Molenda  (

	* breakpoint.c (insert_bp_location): Check if the objfile is resident
	in memory before we insert the breakpoint.

2004-12-04  Eric Albert <>

	* config/i386/ (MACOSX_FILES): Add macosx-nat.o to match
	a change from 2003-03-13. [3677049]

2004-11-30  Jason Molenda  (

	* i386-tdep.h (struct gdbarch_tdep): Add a 'wordsize' field so the
	macosx-nat-dyld.c code doesn't need ppc vs x86 ifdefs.
	* i386-tdep.c (i386_gdbarch_init): Set wordsize to 4.

2004-11-30  Jason Molenda  (

	* main.c (captured_main): Call source_file () instead of 
	source_command () when we have a pathname for a file to source and
	we don't want that pathname going through the argv parser and messing
	things up.
	* top.h (source_file): Prototype.
	* cli/cli-cmds.c (source_command): Move the actual sourcing over
	to source_file ().  This function now handles the argument parsing.
	(source_file): New function, which handles the sourcing.

2004-11-24  Jim Ingham  <>

        * breakpoint.c (break_command_2): Make sure the index 
	is in range before looking up the sal with it.
	(breakpoint_re_set_one): Don't use the osect if we 
	failed to find it.
	* ppc-sysv-tdep.c (ppc_push_argument): If we are passed
	a 8 byte value that comes from a register (value->regno != -1)
	and we are running a 32 bit app, then artificially strip
	the upper 4 bytes.
2004-11-23  Jim Ingham  <>

	* breakpoint.c (safe_breakpoint_sals_to_pc): New
	(wrap_breakpoint_sals_to_pc): New function.
	(break_command_2): Use safe_breakpoint_sals_to_pc.
2004-11-15  Jim Ingham  <>

	* defs.h: Backport the def'n of return_value enum from
	the current gdb.
	* infcmd.c (print_return_value): Ditto.
	* values.c (using_struct_return): adjust test for the
	new return values.
	* ppc-sysv-tdep.c (ppc_darwin_abi_return_value): Fetch the
	struct return from r3 so we can display the value.
2004-11-12  Jim Ingham  <>

	* ppc-sysv-tdep.c (ppc_copy_into_greg): New function.
	(ppc_copy_from_greg): New function.
	(ppc_push_argument): Use ppc_copy_into_greg.
	(ppc_push_arguments): ditto.
	(do_ppc_sysv_return_value): Use ppc_copy_from_greg.
2004-11-05  Jim Ingham  <>

	* gdbtypes.c (init_type): If we are defining a long double type
	whose length is not the standard length, then make an explicit
	floatformat for it so we won't get confused.
	* ppc-sysv-tdep.c (ppc_push_argument): Don't assume floating point
	numbers are only 4 & 8 bytes.  Also don't cast a 16 byte long double
	down to an 8 byte one.
	* (do_ppc_sysv_return_value): A 16 byte long double is passed back
	through $f1 & $f2.
	* stabsread.c (define_symbol): When we go to name a previously unnamed
	symbol, if is not the same length as the canonical long double, make 
	a floatformat for it.
2004-11-04  Jim Ingham  <>

	* objc-lang.c (find_implementation_from_class): Handle the mlist
	being NULL, and the CLS_NO_METHOD_ARRAY case, where the method list
	is an array of methods, rather than a pointer to the first chunk.

2004-11-02  Jason Molenda  (

	* arch-utils.c: Add two small caches of the size of registers and
	the offsets of registers, to speed up the (vastly common) computation
	of these.
	(reg_cache_hack__architecture_changed_hook): Reset the caches on
	arch change.
	(generic_register_size): Set cache if not initialized; use cache if 
	(generic_register_byte): Ditto.
	* arch-utils.h: Prototype for reg_cache_hack__architecture_changed_hook.
	* gdbarch.c (deprecated_current_gdbarch_select_hack): Call reg cache

2004-10-26  Jim Ingham  <>

	* breakpoint.c (print_one_breakpoint): Print the shared
	library the breakpoint was set in if we are using the MI.

	* breakpoint.c (break_command_2): Add "indices" parameter,
	and if we are using the MI and have multiple hits, use this
	to determine which of the hits we should accept.
	* (resolve_pending_breakpoint): Pass indices parameter.
	* (re_enable_breakpoints_in_shlib): Ditto
	* (create_breakpoints): Ditto
	* (gdb_breakpoint): Ditto, also add an indices parameter 
	so the MI can provide the indices.
	* gdb.h: Change declaration of gdb_breakpoints

	* infcmd.c (continue_command): If you aren't at a breakpoint,
	we weren't handling the ignore argument to continue properly
	because we didn't remember that bpstat_num returns -1 for 
	no breakpoint...

	* linespec.c (minsym_found): Add "canonical" argument.
	* (decode_variable): Pass canonical to minsym_found.
	* (minsym_found): Look for an "equivalent symbol" if this
	objfile has them.  Set the canonical name as well.
	* minsyms.c (prim_record_minimal_symbol_and_info): Build the
	table of "equivalent symbols".
	* objfiles.c (allocate_objfile): Hacky way to get us to check for
	equivalent symbols in libSystem only.  FIXME: find some target
	way to do this.
	* (free_objfile): Delete the equivalence table if needed.
	* objfile.h: Add equivalence table pointer to the objfile.
	* symfile.c (reread_symbols): Clear out the equivalence table.
	* symmisc.c (equivalence_table_initialize): New function.
	* (equivalence_table_delete): New function.
	* (equivalence_table_add): New function.
	* (find_equivalent_msymbol): New function.
	* symtab.h: Declare the public functions above.
2004-10-26  Jason Molenda  (

	* eval.c (evaluate_subexp_standard): Look in the objc runtime
	to see if a method is defined for an object directly, instead of
	making a couple calls into the inferior to ask the objc runtime
	the same thing.  Stub out the FSF code in a vain attempt to avoid
	extraneous conflicts.
	* objc-lang.c (find_implementation): Make extern, for above.
	* objc-lang.h (find_implementation): Add prototype.
	* objc-exp.y: I don't believe this code to look up a symbol
	as a class is ever correct, so prefix it with a symbol name
	lookup first.  This means that a class name w/o debug info
	(that previously was looked up by this code) will be skipped,
	but I am doubtful this is used for anything, and the symbol
	lookup is cheap.  (and the objc runtime call we were previously
	making all over the place was expensive.)

2004-10-13  Jim Ingham  <>

	* thread.c (thread_apply_all_command): Use "safe_execute_command"
	rather than execute command so we will traverse ALL the threads
	even if there is an error in one thread.

2004-10-12  Jim Ingham  <>

	* config/tm-macosx.h: Define SOFUN_ADDRESS_MAYBE_MISSING
	since gcc 4.0 on Darwin has started always setting it to 0.
	* minsyms.c (lookup_minimal_symbol_text): #ifdef'ing out a
	copy & paste error.
2004-10-10  Klee Dienes  <>

	* dbxread.c: Many reversions to FSF sources. Revert
	dbx_symfile_read to FSF sources; moved the Mach-O specific version
	to machoread.c.  Moved mmap_strtabflag to machoread.c. Move the
	TEXT_SECTION_NAME / DATA_SECTION_NAME stuff to machoread.c.  Don't
	just store the bfd from which we are reading symbols for
	fill_symbuf; store the entire objfile (so we know the symbol
	stride) (i.e., processing_objfile instead of symfile_bfd).  Revert
	the calls to stabsect_build_psymtabs to the FSF sources.  Lots of
	whitespace reversions to the FSF sources.
	* nlmread.c (nlm_symfile_read): Revert to original call to stabsect_build_psymtabs.
	* stabsread.c (define_symbol): Take 'prefix' as a const string.
	* stabsread.h (define_symbol): Ditto.

2004-10-08  Jason Molenda  (

	* corefile.c (reopen_exec_file): Call 
	tell_objc_msgsend_cacher_objfile_changed notifier func.
	* symfile.c (reread_symbols, remove_symbol_file_command): Ditto.
	* objc-lang.c (find_objc_msgsend): If we've already cached the
	locations of the method call funcs and the cache is not stale,
	don't recompute them.
	(tell_objc_msgsend_cacher_objfile_changed): Invalidate the
	method call function address cache.
	* objc-lang.c: Add prototype.

2004-10-07  Jason Molenda  (

	* fix-and-continue.c (fix_command_1):  Further fixes to
	output of realpath().

2004-10-06  Jason Molenda  (

	* fix-and-continue.c (fix_command_1): Be more suspcicious about
	the filenames provided to F&C.  There's apparently a failure mode
	given a bad filename where gdb can crash but I forgot the exact
	details so I didn't repo.

2004-10-04  Jim Ingham  <>

	* symtab.c (search_symbols): If the symbol & the msymbol
	don't have the same address, they probably aren't the
	same symbol.
2004-09-29  Jim Ingham  <>

	* breakpoint.c (describe_other_breakpoints): Call 
	breakpoint_address_is_meaningful before mentioning a
	breakpoint as a duplicate.
2004-09-28  Jim Ingham  <>

        * infcmd.c: Make pid_info non-static.
	* inferior.h: Export it.
	* utils.c: remove the exec save & restore.  These HAVE to
	be done when the continuation is run, so you can't split
	the exec_error_chain across a catcher call.
	* (do_exec_cleanups): Check for the case where the
	exec_cleanup_chain is NULL, but the old_chain is not.  Don't
	crash, but just return silently.  This is probably because an
	error wiped out the exec_cleanup_chain.
	* defs.h: remove the definition of exec save & restore.
2004-09-27  Jim Ingham  <>

	* utils.c: remove the exec_error save & restore.  The async
	execution code relies on these getting run inside the catcher
	in complete_execution, so setting them aside won't work.
	* top.c: Ditto
	* defs.h: Ditto
2004-09-24  Jim Ingham  <>

	* utils.c (save_exec_cleanups, save_exec_error_cleanups,
	restore_exec_cleanups, restore_exec_error_cleanups): New functions.
	* defs.h: Declare the above.
	* top.c (catcher): Save off the exec & exec_error cleanup 
	chains, as well as the standard cleanup chain.
	(throw_exceptions): Add comment explaining that if you
	do all cleanups on any chain here, you have to preserve it in
	the catcher function.
2004-09-23  Jason Molenda  (

	* fix-and-continue.c (fix_command): Move argument expansion
	into fix_command_1().
	(fix_command_1): New function, called from CLI and MI front ends,
	formerly fix_command_helper().
	(get_fixed_file): Raise struct objfile's symbol reading level
	after the new bundle has been loaded.
	(pre_load_and_check_file): Ditto, for the pre-loaded bundle.
	(raise_objfile_load_level): Function to raise the symbol reading
	level of a given struct objfile.
	* defs.h: New prototype for fix_command_1().

2004-09-23  Klee Dienes  <>

	* i386-tdep.c (i386_analyze_frame_setup): Recognize 'mov $1, %edx'
	in function prologue (patch from Eric Albert).

2004-09-20  Jim Ingham  <>

	* stabsread.c (attach_fields_to_type): Since the type length was 
	moved out of main_type, we need to update it here for all the
	types in the type chain.
2004-09-16  Jim Ingham  <>

	* eval.c (eval_subexp_standard): Don't set a type for the
	objc_msgSend call.  This ends up getting used by some twisted
	logic as the type OF the method call if we can't find the debug
	info for it.  The twisted logic should be cleaned up, but this
	will do for now.
2004-09-15  Jason Molenda  (

	* linespec.c (decode_objc): Fix number mash-up from merging of
	muon-branch code to TOT.

2004-09-15  Jim Ingham  <>

	* varobj.c (c_value_of_variable): Pass 0 for the deref_ref parameter
	of val_print.  You never want to have the dereferenced value in the 
	varobj's value, that's what the children are for.
2004-09-14  Jim Ingham  <>

	* language.c (make_cleanup_restore_language): New function.
	(do_set_langauge): New function.
	* language.h: declare make_cleanup_restore_language.
	* linespec.c (find_methods): Since this is a C++ specific function,
	set the language to C++ before searching for the methods.
2004-09-10  Jim Ingham  <>

	* infrun.c (init_execution_control_state): reset the ws->code to -1.
	(handle_inferior_event): Print the extra info from target_waitstatus
	if available.
	* target.h: Add code & address fields to the target_waitstatus.
2004-09-09  Jason Molenda  (

	* Test for libxml2 header files/libraries/settings.
	Define LIBXML2_IS_USABLE if everything appears to be in order.
	* configure: Regenerated.
	* Regenerated.

2004-09-09  Jim Ingham  <>

	* linespec.c (symtab_from_filename): The "No symbols loaded"
	error was not respecting the not_found_ptr.
2004-09-08  Jim Ingham  <>

	* breakpoint.c (print_one_breakpoint): Since we keep the breakpoint
	condition around to see if we can parse it once we are running,
	we need to print the not-yet parsed condition string.
2004-09-08  Jason Molenda  (

        * cli/cli-script.c (read_next_line): Accept zero or more whitespace
        chars after 'if' or 'while' commands in user-defined commands.
	Submitted to the FSF 2004-09-08.

2004-09-07  Jim Ingham <>

	* breakpoint.c (break_command_1): Fix a bug with quoted filenames.
	* symtab.c (rbreak_command): Pass the shared library name from the
	symtab down to break_command using the -shlib argument.
2004-09-07  Jason Molenda  (

	* c-exp.y (OBJC_SELECTOR): Add semicolon at end of grammar rule
	for compatability with some versions of bison.

2004-09-02  Jason Molenda  (

	* completer.h (gdb_completer_command_word_break_characters,
	gdb_completer_quote_characters): These now have static linkage;
	don't list them in a header file.
	* cp-abi.h (switch_to_cp_abi): Ditto.
	* (target_byte_order, target_byte_order_auto): Ditto.
	* gdbarch.h: Regenerated.
	* gdbtypes.c (cplus_struct_default): Remove const qualifier because
	of the NONULL macros in gdbtypes.h
	* gdbtypes.h (cplus_struct_default): Ditto.
	* stabsread.h (add_undefined_type): Function no longer has extern 
	* target.h (cleanup_target): Ditto.

2004-08-31  Jason Molenda  (

	* breakpoint.c (parse_breakpoint_sals): OK, this change
	should be correct now.
	(break_command_2): Don't output the error message buffer when we're 
	doing a pending breakpoint and a shlib was specified.

2004-08-30  Jason Molenda  (

	* breakpoint.c (parse_breakpoint_sals): Back out previous
	change; it just moves the error over to linespec.c.

2004-08-30  Jason Molenda  (

	* breakpoint.c (parse_breakpoint_sals): Don't issue error msg
	about solib not found if we're setting a pending (aka future)

2004-08-26  Jason Molenda  (

        * dbxread.c (objfile_contains_objc): Simplfy ObjC check.

2004-08-26  Jim Ingham  <>

	* dbxread.c: Switch the default for mmap-string-tables
	to on.
2004-08-25  Jason Molenda  (

	* dbxread.c (read_dbx_symtab): Pass in the # of nlist stab
	records instead of getting it from the objfile.  
	(dbx_symfile_read): Set the offset/number of stab symbol
	table entries depending on whether this is a load-rules
	extern/container or not.  
	(dbx_symfile_init): Duplicate initialization of
	in (stabsect_build_psymtabs).
	(coffstab_build_psymtabs): For safe keeping, initialize
	the DBX_LOCAL_STAB_* and DBX_NONLOCAL_STAB_* structure
	members to 0.
	(elfstab_build_psymtabs): Ditto.
	(objfile_contains_objc): New function, to check for telltale
	BFD sections that indicate we're working with an ObjC objfile.
	* objfiles.h: Add an Apple Local marker.

2004-08-24  Jason Molenda  (

	* dbxread.c (stabsect_build_psymtabs):  Look for
	the local_stab_name and nonlocal_stab_name BFD sections
	and record the #'s from those sections in the objfile if
	they're present, else record 0's.
	* gdb-stabs.h (struct dbx_symfile_info): New fields
	to record local/non-local nlist stab records if that 
	information is available to us.
	DBX_NONLOCAL_STAB_COUNT): Accessor macros.
	* minsyms.c: Two small typeos in comments.
	* nlmread.c (nlm_symfile_read): Update call to stabsect_build_psymtabs
	to provided NULL values for new arguments.
	* stabsread.h (stabsect_build_psymtabs): Update prototype to list
	new arguments.

2004-08-24  Jason Molenda  (

	* eval.c (evaluate_subexp): Make prototype and func defn match.
	* Define USE_MMALLOC to 1.
	* configure: Regenerate.

2004-08-26  Jim Ingham <>

	* igore errors if _objcInit isn't in gdb when we go
	to run strip.  It was removed late in Tiger.

	* dbxread.c (stabsect_read_psymtabs): Use
	bfd_get_section_contents_in_window_with_mode so we can pass the
	read-only flag.

	*infrun.c (handle_step_into_function): Try to up the debug level
	to OBJF_SYM_ALL before testing for presence of source line info.

2004-08-10  Jim Ingham  <>

	* breakpoint.c (parse_breakpoint_sals): If requested_shlib is set
	then ensure the symbol load level is all before setting the
	* dbxread.c (read_dbx_symtab): Immediately skip over stabs if we
	aren't reading them in.  Also added a comment.
	* objfiles.c (objfile_set_load_state): New function.
	(pc_set_load_state): New function.
	* objfiles.h: declare these.
	* stack.c: Make sure any objfiles on the stack are fully loaded.
2004-08-09  Jim Ingham  <>

	* cp-namespace.c ((cp_lookup_transparent_type_loop): Fix recursion
	bug.  Applying patch from D. Carlton on 2004-03-05.
2004-08-09  Jason Molenda  (

        * dbxread.c (read_so_stab_language_hint): New function.
        (read_dbx_symtab): Prefer language from SO stab's desc field
        over language based on the suffix of the source filename.
        (start_psymtab): Only use the source filename suffix if the
        language hasn't been already set.
        (process_one_symbol): When expanding psymtab to symtab, use the
        desc field to set the language if it contains anything meaningful.

2004-08-09  Klee Dienes  <>

	* gdb/gdb.1: Replace the hard-coded pathname with
	GDB_DOCUMENTATION_DIRECTORY (see change to the top-level

2004-07-30  Klee Dienes  <>

	* exec.c (exec_file_attach): Remove extraneous check for 'osabi <= 0'.
	* symfile.c (symfile_bfd_open): Deduce the osabi if not
	already set, using the same logic as exec_file_attach.  Don't
	error out if a member of an archive isn't an executable; just
	continue scanning.

2004-07-29  Klee Dienes  <>

	* dbxread.c (stabsect_build_psymtabs): Warn, not error, if there
	is no data section.

2004-07-28  Klee Dienes  <>

        * corefile.c (core_file_command): Split into core_file_attach.
        * gdbcore.h (core_file_attach): Add prototype.
        * main.c (quote_string): Remove (it was unused).
        Call core_file_attach in place instead of core_file_command.

2004-07-21  Klee Dienes  <>

	* exec.c (exec_file_attach): Use the osabi code to select the
	correct version of the archive file.
	* symfile.c (symfile_bfd_open): Ditto.
	(reread_symbols): Ditto.

2004-07-21  Klee Dienes  <>

	* top.c (_initialize_symread): Remove.

2004-07-21  Klee Dienes  <>

	* valops.c (value_ind): Use value_as_address, not
	value_as_long, to get the value of the address when implicitly
	using an int as a pointer in a c-style deference.

2004-07-21  Jim Ingham  <>

	* interps.c (set_interpreter_cmd): "set interpreter"
	to the current interpreter should be a no-op.
	* symfile.c (add_symbol_file_command): If we got no
	offset addresses, pass a NULL section_addrs rather
	than a section_addrs with 0 num_sections.  The former
	is what the code below us is expecting.
2004-07-16  Jason Molenda  (

	* gdb.1: Update path to full gdb documentation.

2004-07-13  Jim Ingham  <>

	* linespec.c (decode_variable): Treat the case were no
	symbols are found as a "file not found" error.  This will
	allow future break to work in a ~/.gdbinit file.
2004-06-18  Jim Ingham  <>

	* dummy-frame.c: Add the frame's ptid to the dummy
	(find_dummy_frame): Match the ptid as well.
	(pc_in_dummy_frame): Ditto.
	(generic_push_dummy_frame): Ditto, also record the
	ptid for the new frame.
	(discard_innermost_dummy): Only discard the innermost
	frame for the current ptid.
	(generic_pop_dummy_frame): Pass in the current ptid.
2004-06-17  Jason Molenda  (

	* config/powerpc/ Don't ref ppc-macosx-frameops.c.

2004-06-17  Jason Molenda  (

	* dbxread.c (set_namestring): Add objfile prefix regardless of
	whether symbol starts with the expected prefix or not.

2004-06-15  Jim Ingham  <>

	* infrun.c (handle_inferior_event): Adopt Daniel
	Jacobowitz's patch of 2004-03-09, remove special
	case code for signals to another thread.
2004-06-08  Jim Ingham  <>

        * objfiles.c (objfile_matches_name): A better way to
        handle caches symfiles is to use the bfd name if there
        is a cached symfile.
2004-05-28  Jim Ingham  <>

	* (breakpoint.c): break_command_2: If the interpreter is mi, then
	just return all the matches, don't set them.
	* linespec.c (decode_line_2): Add another parameter - the
	number of symbol-full matches.  Then print the matches from
	non-debugging symbols more helpfully.
	(decode_objc): Pass in the new argument to decode_line_2.
	(find_method): Ditto.
2004-05-27  Klee Dienes  <>

	* frame.c (deprecated_frame_next_hack): New function.
	(deprecated_frame_cache_hack): New function.
	(default_print_extra_frame_info): New function.
	* frame.h (deprecated_frame_next_hack): Add prototype.
	(deprecated_frame_cache_hack): Add prototype.
	(default_print_extra_frame_info): Add prototype.
	* gdbarch.c: Re-generate.	
	* gdbarch.h: Re-generate.	
	* stack.c (frame_info): Restore call to PRINT_EXTRA_FRAME_INFO.
2004-05-26  Jason Molenda  (

	* completer.c (gdb_completer_command_word_break_characters):
	Add APPLE LOCAL comment about the change here.
	* language.c (default_word_break_characters): Update this
	copy of the gdb_completer_command_word_break_characters
	strings so that it matches the completer.c version; add
	APPLE LOCAL marker.

2004-05-26  Jim Ingham  <>

	* objc-lang.c: Add _objc_msgSend_rtp to objc_methcall array.
	(find_objc_msgsend): If the symbol is the last symbol in the
	objfile, get its end address from the end address of
	the section containing the symbol.
2004-05-21  Jim Ingham  <>

        * objfiles.c (objfile_matches_name): Consider the names a
        match if the objfile has a ".syms" on the end.

2004-05-21  Jason Molenda  (

	* dwarf2read.c: Change DWARF segment names APPLE LOCAL
	modification to look for segment name gcc'll be emitting
	as of this weekend.

2004-05-21  Jason Molenda  (

	* infcmd.c (print_return_value): Correct error string printing
	to include the type in question when struct/unions are used.
	* typeprint.c (type_sprint): Make comment a bit more explicit;
	note APPLE LOCALness.

2004-05-19  Klee Dienes  <>  

	* Re-arrange order of library inclusion, to deal
	with monolithing libSystem.dylib on Tiger (cribbed from Jim's patch
	for an earlier Tiger submission).

2004-05-18  Stan Shebs  <>

       * dwarf2read.c (dwarf_info_vma, dwarf_abbrev_vma, dwarf_line_vma,
       dwarf_str_vma): New globals.
       (INFO_SECTION, ABBREV_SECTION, etc): Set to names reported by BFD.
       (dwarf2_locate_sections): Set dwarf_info_vma and friends from bfd
       (read_comp_unit_head): Adjust abbrev offset by vma, comment out
       nonstandard extension.
       (read_file_scope): Adjust offsets by vma.

2004-05-15  Jim Ingham  <>

	* varobj.c (varobj_create): Handle static & global varobj's which
	have no set frame.
	* varobj.h: Add NO_FRAME_NEEDED to the varobj_type.

2004-05-14  Jim Ingham  <>

	These changes are just a scrub of uses of language_cplus to
	see places where we should also be accepting language_objcplus.
	* objc-lang.c (objcplus_demangle): New function.
	Use this for the language demangle for ObjC++.  It tries the
	ObjC demangler, and if that fails, tries the C++ one.
	* symtab.c (symbol_find_demangled_name): ObjC++ names can be
	mangled too...
	(symbol_natural_name): Ditto.
	* buildsym.c (add_symbol_to_list): ObjC++ has namespaces...
	(finish_block): ObjC++ has same scoping rules as C++
	(start_subfile): Don't demote ObjC++ to C for subfiles.
	* c-exp.y: ObjC++ & C++ share template true, false & other keywords.
	(c-typeprint.c): ObjC++ uses void, etc, like C++ does.
	* objc-exp.y: Ditto.
	* dbxread.c (read_dbx_symtab): Don't demote ObjC++ to C.
	* eval.c (evaluate_subexp_standard): Do overload resolution
	in ObjC++ as well as C++.
	* language.c (lang_bool_type): ObjC++ has the bool type like 
	C++ does.
	* stack.c (print_frame_info): ObjC++ names can be C++ mangled names.
	(frame_info): Ditto
	(get_frame_language): Update a comment.
	* symfile.c (symbol_find_demangled_name): This should work with
	ObjC++ as well.
2004-05-14  Jason Molenda  (

	* target.c (update_current_target): Remove some unnecessary
	deltas from the FSF version.  Add APPLE LOCAL comment around
	remaining diff.
	(push_target): Don't call setup_target_debug() here; document

2004-05-13  Jason Molenda  (

	* frame.c (get_prev_frame): Revert the two-identical-frames
	back to a warning from an error.  It's rarely an unrecoverable
	error so it's better to try than to give up.

2004-05-13  Jason Molenda  (

	* objfiles.c (use_mapped_symbol_files): Set default value
	to 0 -- don't try to use cached symfiles until Klee has a
	chance to make it work again with newly merged sources.

2004-05-12  Jim Ingham  <>

        * gdbtypes.c (make_cv_type): We may be resolving an opaque
	type as well as a stub type.  So include that in the assert 
	when we are copying over a type from one objfile to another.
	* frame.c (refine_prologue_limit): Don't reset prev_line
	to the prologue value every time round the loop!
2004-05-11  Jim Ingham  <>

	* breakpoint.c (breakpoint_re_set_all): Don't need to call
	re_enable_breakpoints_in_shlibs.  We will already know to
	reset them from tell_breakpoints_objfile_changed, so this is
	not necessary, and as long as PC_SOLIB doesn't work this will
	end up disabling ALL breakpoints.
2004-05-10  Jim Ingham  <>

	* breakpoint.c (disable_breakpoints_in_shlibs): Comment out the
	test for PC_SOLIB till it works on Mac OS X.
	(re_enable_breakpoints_in_shlibs): Ditto.

	* dbxread.c (record_minimal_symbol): Look both in the straight
	text section and the coalesced text section when assigning a
	symbol to a section.
	(dbx_symfile_init): Look up the coalesced text section as well
	as the straight text section.
	(stabsect_build_psymtabs): Add a coalesced text section name.
	* gdb-stabs.h: Change declaration of stabsect_build_psymtabs.
	Also add coalesced text addresses to the stabs_symfile_info.
	* nlmread.c (nlm_symfile_read): Mutatis mutandi for above.
	* config/tm-macosx.h: Add COALESCED_TEXT_SECTION_NAME.
2004-05-06  Klee Dienes <>

	* ppc-sysv-tdep.c (ppc_darwin_abi_return_value): New function.
	(ppc64_darwin_abi_push_dummy_call): New function (currently
	stubbed out, final code to go in later).
	(ppc64_darwin_abi_return value): New function (currently
	stubbed out, final code to go in later).
	* ppc-tdep.h (ppc64_darwin_abi_push_dummy_call): Add prototype.
	(ppc64_darwin_abi_return_value): Add prototype.
	(ppc_darwin_abi_return_value): Add prototype.

2004-05-06  Jim Ingham  <>

	* dbxread.c (read_dbx_symtab): Strip the leading character
	right when we read in the symtab.
	* minsyms.c (lookup_minimal_symbol): The change above meant
	we successfully demangle minsyms when we read in the symtab,
	so we don't need to do it here.
	(objfile_demangle_msymbols): No longer needed.
	(install_minimal_symbols): Don't strip the leading character
	here, since we already did it in dbxread.c.
	* objfiles.h: delete objfile_demangle_msymbols.
	* symtab.c (search_symbols) Don't need objfile_demangle_msymbols.
	* maint.c (maintenance_demangle): Revert to the older behavior
	rather than call language_demangle.  It is stupid that you have
	to be currently in a C++ file for maint demangle to work.

2004-05-05  Jason Molenda  (

	* stabsread.c: Revert Apple Local changes to support very
	large non-negative enum values.  We don't have any occurences
	of this in our libraries any longer and the contemporary gcc 
	makes it hard to write them.

2004-05-05  Jason Molenda  (

        * inflow.c (kill_command): Don't query for confirmation if
        we're MIish.

2004-04-29  Jason Molenda  (

	* symtab.c (rbreak_command): Correct the canonicalization of
	strings so decode_line_1 can spot the ObjC method calls correctly.

2004-04-29  Jim Ingham  <>

	* objfiles.c (number_of_dots): New function
	(objfiles_add_to_ordered_sections): Don't add the bfd sections
	that correspond to the Mach-O segments to the ordered sections
	(objfile_delete_from_ordered_sections): Don't try to remove them
2004-04-28  Jason Molenda  (

	* ppc-tdep.h: Add prototype for rs6000_fetch_pointer_argument.
	* rs6000-tdep.c (rs6000_fetch_pointer_argument): Change to non-static
	so ppc-macosx-tdep.c can get at it.

2004-04-28  Jason Molenda  (

	* blockframe.c (inside_main_func): Don't restrict search for main()
	to just the main symbol file - not valid if ZeroLink'ed.
	Short-circuit symbol lookups; new sources will search for main()
	two times for each frame in a backtrace.

2004-04-28  Jim Ingham  <>

	* breakpoint.c: Refactor break_command_1 so that we
	could use it in gdb_breakpoints.  Refactor condition_command
	for the same reason.  Also get create_breakpoints to keep
	track of the breakpoints that it makes and pass them back
	to the caller.

	* tui/tui-interp.c (_initialize_tui_interp): Don't force
	the tui interp in place of the console interp.  The tui
	interp is not as well tested, and should not be the default!
2004-04-27  Jason Molenda  (

	* objfiles.c (sanity_check_symtab_obsoleted_flag): Use the
	ALL_SYMTABS_INCL_OBSOLETED iterating macro so we don't
	re-call this sanity_check function.
	(sanity_check_psymtab_obsoleted_flag): Ditto.
	(symtab_get_first, symtab_get_next): Only do the sanity
	checks on 'obsolete' boolean if we're skipping obsolete
	(psymtab_get_first, psymtab_get_next): Ditto.
	* symfile.h (ALL_PSYMTABS_INCL_OBSOLETED): Add macro.

2004-04-22  Jim Ingham  <>

	This is more merge of our breakpoint changes to the
	FSF TOT.  This adopts the gnu_v3 exception catching
	to Mac OS X, adds "break -shlib" and the code to be 
	more discriminating about when we reset breakpoints
	in shared libraries.

	* breakpoint.c: Too many to list separately...
	* breakpoint.h: Add bp_gnu_v3_catch_catch and
	bp_gnu_b3_catch_throw breakpoint types.
	* inftarg.c: Change def'n of enable_exception_callback
	target vector back to the FSF version.
	* stack.c (catch_info): Ditto.
	* target.c: Ditto.
	* mi/mi-cmd-break.c (mi_cmd_break_catch): Ditto.
	* linespec.c (decode_all_digits): Renamed 
	(minsym_found): Pass the section to find_pc_sect_line
	if we have it.
	* objfiles.c (make_cleanup_temporarily_restrict_to_objfile):
	(objfile_matches_name): New function.

	* symtab.c (find_pc_sect_psymtab): If you are given a 
	non-null section, don't look in objfiles that are not
	in the bfd for that section.
	(find_pc_sect_symtab): Ditto.

2004-04-19  Klee Dienes  <>

	* symfile.c (symfile_bfd_open): Use current_gdbarch to determine
	which subfile to load from a fat binary (instead of using

2004-04-15  Jim Ingham  <>

	* breakpoint.c: More pending breakpoint notification
	changes.  Decided to make a separate resolve notify
	event rather than routing it through mention.
	* Ditto.

2004-04-15  Jason Molenda  (

	* infrun.c: Add APPLE LOCAL markers around our changes.
	A few minor reorgs to make future merges easier.
	Removal of some old FSF code that slipped in.
	(process_event_stop_test): Reinstate local mod to use value

2004-04-14  Jim Ingham  <>

	This is the first set of changes merging our changes to
	breakpoint.c from the muon branch to TOT.
	* breakpoint.c: Too many to list individually...
	* breakpoint.h: ditto
	* Need to pass the parent pending breakpoint
	into the notify events, so we can tell clients that the
	new breakpoints are related to it.
	* gdb-events.c: regenerate
	* gdb-events.h: regenerate
	* symfile.c (reread_symbols): Restore a local mod that
	bypasses the file pointer cached in the objfile's bfd
	and goes to the actual file on disk when we want the
	mtime of the file. 
2004-04-13  Jason Molenda  (

	* infrun.c (follow_fork): Remove unused variable.
	(handle_step_into_function): Remove some Apple local code that
	is no longer necessary (and causes a few problems as-is).

	* fix-and-continue.c (struct active_func): Instead of keeping a
	copy of the frame, let's just save the information we need and print
	it ourselves.
	(free_active_threads_struct): Free new struct active_func fields.
	(create_current_active_funcs_list): Initialize new struct active_func
	(print_active_functions): Print new struct active_func fields.

2004-04-09  Jason Molenda  (

	* top.c (_initialize_fix): Remove stubbed out routine.
	* symtab.c (lookup_block_symbol): Remove obsolete checks from lookup.
	* fix-and-continue.c: First set of changes to work in the post-merge
	world.  Still a bunch of failures to fix.

2004-04-09  Jason Molenda  (

	* minsyms.c (lookup_minimal_symbol_by_pc_section_from): Move pc_section
	variable from here...
	(lookup_minimal_symbol_by_pc_section): To here.

2004-04-09  Klee Dienes  <>

	* minsyms.c (lookup_minimal_symbol_by_pc): Don't use
	find_pc_section; trust lookup_minimal_symbol_by_pc_section to do
	the right thing.
	(lookup_minimal_symbol_by_pc_section_from_objfile): Remove the
	find_pc_section check for symbols after the last section.
	(lookup_minimal_symbol_by_pc_section): Add the check here.
2004-04-09  Klee Dienes  <>

	* frame.c (frame_unwind_address_in_block): Don't subtract 1 from a
	0 address.
	(frame_id_eq): Don't treat a 0 code-address as a wild-card.

2004-04-06  Jason Molenda  (

	* gdb.1: Update pointer to Apple local documentation.

2004-03-30  Klee Dienes  <>

	* symfile.c (add_symbol_file_command): Update help text.
2004-03-29  Jim Ingham  <>

	* varobj.c (varobj_pc_in_valid_block_p): Don't go through
	a frame-id to an address to get the frame, just call frame_from_id.
2004-03-29  Klee Dienes  <>

	* breakpoint.c (watchpoint_equal): Re-add.
	(watchpoint_check): Re-add call to watchpoint_equal.

2004-03-29  Klee Dienes  <>

	* symfile.c (add_symbol_file_command): Add syntax for specifying
	text address without a -s option.  Update usage string.  Fix crash
	when passing section offsets.

2004-03-29  Jason Molenda  (

	* cli/cli-setshow.c (do_setshow_command): Update error message
	to match current FSF error message.

2004-03-26  Jason Molenda  (

	* breakpoint.c (future_break_command, 
          restore_saved_pending_break_support): Re-add future-break command,
	using the new pending_break_support that came with the merge.
	(_initialize_breakpoint): Register it.

2004-03-26  Jason Molenda  (

	* buildsym.c (end_symtab): Move symtab obsolete flag setting from
	* symfile.c (allocate_symtab): here.  So we don't miss any
	possible symtab allocations.

2004-03-26  Klee Dienes  <>

	* infcall.c (hand_function_call): Don't stomp value_type by
	calling find_function_addr() twice.

2004-03-26  Jim Ingham (

	* breakpoint.c (print_it_typical): Add back in the printing
	of the "commands" field for breakpoint hits.
2004-03-25  Jason Molenda  (

	* configure: Regenerated with updated ../gettext.m4.
	* defs.h: Don't include "tui.h".
	* main.c: Use ifdef, not if, for USE_MMALLOC.
	* macosx/macosx-nat-dyld.c: Ditto.

2004-03-01  Jim Ingham   <>

	* linespec.c (decode_all_digits): Pass in funfirstline, and
	move past the prologue if it is set.
2004-03-01  Klee Dienes  <>

	* ppc-sysv-tdep.c: Move the calls to set $sp and $lr, and call
	target_store_registers, into the *_push_dummy_call functions
	* ppc-tdep.h: Add prototype for ppc_darwin_abi_push_dummy_call.

2004-02-27  Jim Ingham  <>

        * printcmd.c (print_address_symbolic): If the target
	address size is greater than the size of a CORE_ADDR,
	undo the sign extension that might have occured when 
	we read in the address.
	These changes are needed to implement the mi command
	* breakpoint.c (find_breakpoint): New function.
	(breakpoint_add_commands): New function.
	(breakpoint_print_commands): New function.
	(commands_command): refactor to use breakpoint_add_commands.
	* breakpoint.h: Added new functions.
	* defs.h: added read_command_lines_1.
	* cli/cli-script.c: get_command_line: Pass the CLI read_next_line
	into recurse_read_control_structure.
	(read_next_line) Now return char * & just read, don't process.
	(process_next_line): New function, separates reading & processing.
	(recurse_read_control_structure): take a function pointer to the
	read function.
	(read_command_lines): Use read_command_lines_1 and the CLI
	read_next_line function.
	(read_command_lines_1): New function.
2004-02-03  Jim Ingham  <>

        * objc-lang.c (find_methods): If matching an objc function
	name, make sure the whole name matches, not just the part that
	parse_method recognizes.

	* objc-lang.c (print_object_command): Check that it is safe
	to call functions on this thread before running the printForDebugger.
	(_initialize_objc_lang): Add the set variable to turn off the
	behavior above.
	target.c (update_target, cleanup_current_target): Handle new
	check_call_safe entry.
	target.h: Add check_call_safe entry.
	* dbxread.c (process_one_symbol): Add a hack to work around the
	fact that gcc3 doesn't emit LBRAC/RBRAC stabs for functions with
	no locals at the function scope.

2004-01-30  Jim Ingham  <>

	* objc-lang.c (find_implementation_from_class): The end of method
	list marker in the ObjC runtime is EITHER a 0 method, or a -1
	method pointer.
	(value_objc_target_type): pass in the block so we don't accidentally
	find another struct with the same name as our class.
	* objc-lang.h: mutatis mutandi for value_objc_target_type.
	* varobj.c (varobj_fixup_value): Pass the block down so we can
	get it to value_objc_target_type.
	(variable_language): Use C++ for the language for objects made in
	ObjC++ files.
	(value_of_child): pass block to varobj_fixup_value.
	(c_value_of_root): ditto.
	* wrapper.c (safe_value_objc_target_type): pass down the block again.
	* wrapper.h: mutatis mutandi for safe_value_objc_target_type.
2003-12-03  Jim Ingham  <>

	* stack.c (get_frame_language): Make sure the function sym is
	not null before getting its language.

2003-11-20  Jim Ingham  <>

	* breakpoint.c (re_enable_breakpoints_in_shlib): Add a call
	to check_duplicates.  You should always do this whenever you
	enable a breakpoint!

2003-11-14  Klee Dienes  <>

	* target.c (push_target): Move the cleanup_target and target
	debugging code from here ...
	(update_current_target): ... to here.
	(unpush_target): Remove call to cleanup_target ().
	* symfile.c (add_symbol_file_command): Update the section tables, and any breakpoints.

2003-11-14  Jim Ingham  <>

	* eval.c (evaluate_subexp_with_coercion): Add in a missing
	check_typedef (present in the FSF version).
	* varobj.c (create_child): Same mistake repeated here.

2003-11-13  Jim Ingham  <>

	* varobj.c (c_value_of_variable): Use the accessor function to
	get the number of children of an array variable.  If you just
	use the structure member, the value may not have been set yet.

2003-11-12  Jim Ingham  <>

	* breakpoint.c (breakpoint_re_set_one): When we successfully reset
	a breakpoint, reset the bp_objfile.

	* varobj.c (varobj_create): If we can't get either the value OR the
	type from the parsed expression, discard it.  We will then reparse it
	later and maybe we will be in the right scope to do it correctly.
	* (varobj_type_is_equal_p): Don't return true if both inputs are NULL.
	* (value_of_root): Don't try to get the value if the type is NULL, even
	if the expression is not, as this is unlikely to work.

2003-11-03  Jim Ingham  <>

	* cli/cli-setshow.c (do_setshow_command): Replace fprintf_unfiltered
	with fputs_unfiltered to avoid compiler warnings.

2003-10-31  Jason Molenda  (

	* fix-and-continue.c (load_fixed_objfile): Don't pass 
	NSLINKMODULE_OPTION_BINDNOW to NSLinkModule() if the inferior
	is a ZeroLinked app.

2003-10-30  Jim Ingham  <>

	* stack.c (return_command): Add a call to the stack_changed
	hook at the end of the command.

2003-10-28  Jim Ingham  <>

	* breakpoint.c (bpstat_stop_status): Wrap the call to parse_exp_1 in a
	catch_errors.  If the expression parse raises an error for some reason,
	then we will blow past the code which reinserts the instruction under
	the breakpoint, which is not good.
	(condition_command): Wrap the call to parse_exp_1.  For now, we handle
	errors in parsing the expression in the same way (leaving the condition
	in place in the hopes that when you hit the breakpoint it will be 
	successfully parsed.  But this will allow us to be more discriminating
	if we want to.
	(set_raw_breakpoint): Initialize the breakpoint's objfile field.
	(create_breakpoints): Set the breakpoint's objfile when the breakpoint
	is set.
	(tell_breakpoints_objfile_changed): Only unset a set breakpoint if it 
	was set IN the objfile that has changed.
	* breakpoint.h: Add bp_objfile to the breakpoint structure.
	* objc-lang.c (find_imps): coding convention cleanup.

	* cli/cli-setshow.c (do_setshow_command):  Give the valid options for
	all error messages for enum type commands.

2003-10-22  Jason Molenda  (

	* infcmd.c (pid_info): New function, to return the process id
	of the inferior.
	(_initialize_infcmd): Register "info pid" command.

2003-10-21  Jason Molenda  (

	* fix-and-continue.c (struct fixedobj): Drop symtab and objfile
	pointers; in some circumstances objfiles can be copied around and
	freed so these pointers are not guaranteed to persist.
	(build_list_of_current_objfiles, find_newly_added_objfile): Use the
	names of objfiles from now on, so finding the struct objfile just
	added is not necessary.
	(find_symtab_by_name): A new convenience function.
	(mark_previous_fixes_obsolete): Find fixed file's objfile pointer
	when needed.  A not mark globals as obsolete; this should be done
	by redirect_statics().  I missed a spot in the Sept 25 change.
	(get_fixed_file): Updated for new struct fixedobj layout.
	(do_final_fix_fixups): Updated to get objfile ptr when needed.
	(find_orig_static_symbols): Ditto.
	(find_and_parse_nonlazy_ptr_sect): Ditto.
	(build_list_of_objfiles_to_update): Ditto.
	(force_psymtab_expansion): Use PSYMTAB_TO_SYMTAB macro.
	(expand_all_objfile_psymtabs): Ditto.
	(find_original_object_file_name): Ditto.

2003-10-18  Jim Ingham  <>

	* frame.c (refine_prologue_limit): Don't advance the prologue sal unless
	we actually cross a boundary between two different source lines.
2003-10-17  Jim Ingham  <>

	* breakpoint.c (set_raw_breakpoint): Initialize requested_shlib field.
	* (create_breakpoints): Set requested_shlib field.
	* (make_cleanup_restrict_search_to_shlib): New function.
	* (parse_breakpoint_sals): If requested_shlib is set, then restrict
	the search to that objfile.
	* (break_command_1): Pass requested_shlib to do_captured_breakpoint.
	* (do_captured_breakpoint): Accept & use requested_shlib.
	* If the interpreter is mi-like and we get multiple breakpoint choices,
	then just report all the hits but don't set any breakpoints.
	* (gdb_breakpoint): Handle the requested_shlib.
	* (delete_breakpoint): Free the requested_shlib string.
	* (breakpoint_re_set_one): Restrict search to the requested_shlib if
	it has been set for the breakpoint.
	* breakpoint.h: Add requested_shlib to struct breakpoint.
	* gdb.h: Add requested_shlib to gdb_breakpoint declaration.
	* linespec.c (decode_objc): If ui is mi-like tell select_symbols to 
	select all hits.
	* (select_symbols): Listen to the "all" parameter, and don't query the 
	* objfiles.c: (objfile_restrict_search): return old restrict value.
	* (do_cleanup_temporarily_restrict_objfile): New function.
	* (make_cleanup_temporarily_restrict_to_objfile): New function.
	* objfiles.h: export make_cleanup_temporarily_restrict_to_objfile.

	* breakpoint.c (save_breakpoints_command): Handle save files with spaces
	in the path.
	* cli/cli-cmds.c (cd_command): Handle paths with spaces.
	* (source_command): Ditto.
2003-10-16  Jason Molenda  (

	* linespec.c (select_symbols_args): Correct 'canceled' spelling.

2003-10-03  James Ingham  <>

	* eval.c (evaluate_subexp_standard): Add a check for
	deprecated_selected_frame not NULL before calling
	value_of_register.  This wart is the result of not getting the
	complete register unwind implementation, and should go away when
	we do our next complete merge.

2003-09-29  Jason Molenda  (

	* utils.c (internal_error_problem, internal_warning_problem): Do not
	prompt the user "Create a core file of GDB? (y or n)" when we get
	an internal error.  It's really annoying, and no one wants to.

2003-09-29  Klee Dienes  <>

	* symfile.c (symbol_file_add_bfd_with_addrs_or_offsets): Check for
	symfile_objfile != NULL, not have_symbols.
	(symbol_file_clear): Ditto.
	(reread_symbols): Move the "#if 0" outside the entire test for
	have_symbols, not just the inner part.

2003-09-26  Jim Ingham  <>

        * interpreter.c (gdb_new_interpreter): Accept and set the
	(gdb_interpreter_complete): New function.
	* interpreter.h: Add the complete_proc.
	* cli/cli-cmds.c (cli_interpreter_complete): New function.
	(complete_command): Recast to use cli_interpreter_complete.
	* cli/cli-cmds.h: Add cli_interpreter_complete.
        * cli-out.c (_initialize_cli_out): add cli_interpreter_complete.
2003-09-25  Jason Molenda  (

	* fix-and-continue.c (struct fixedobj): Retain pointer to the symtab
	for the source file being replaced in thix fix object.
	(mark_previous_fixes_obsolete): Don't mark file static/global data
	obsolete -- leave that for redirect_statics() to do.
	(get_fixed_file): Initialize new symtab pointer in fixedobj.
	(find_orig_static_symbols): Instead of looking for file static data
	in just the original object file, search the original object file
	and every fixed objfile we've added so far.  So if a new global var
	is added in the 5th fix of a file, the 6th and 7th fixes will all
	have that global var pointing to the 5th fix where it originated.

2003-09-24  Jim Ingham  <>

	* completer.c (complete_line): For filename completions,
	when you look for the last word before the cursor, actually
	start from the cursor & work backwards, rather than starting
	from the word you were handed.  Starting from the word
	doesn't work if the input contains more than one word - as
	it does in the complete command.

2003-08-22  Jim Ingham <>

	* objc-lang.c (value_objc_target_type): Add a check for the
	base type of the value passed in being null, and for a
	structure that has no elements.  The latter can happen, for
	instance, if we get a C++ object with a base class but no
	data in the class of the static type.

2003-09-19  Jason Molenda  (

	* fix-and-continue.c (fix_command_helper): Ask ZeroLink to load
	an object file before we search for the original source file.

2003-09-18  Jim Ingham  <>

	* cli/cli-setshow.c (do_setshow_command): Don't just dump the
	doc line to gdb_stdout, it won't show up in the console-quoted
	interpreter then...

2003-09-16  Jason Molenda  (

	* objfiles.c (sanity_check_symtab_obsolete): Try to find the
	objfile that contains the bad symtab -- chances are all fields
	of the symtab will be 0 if we hit this function, including the
	(sanity_check_psymtab_obsolete): Ditto.

2003-09-09  Jason Molenda  (

	* symtab.c (rbreak_command): Revert last.  Works correctly with
	TOT FSF sources, but not our current sources.

2003-09-09  Jason Molenda  (

	* symtab.c (rbreak_command): Change quoting of canonicalized
	filename:function-name arguments for easier parsing of ObjC
	method names.

2003-09-09  Klee Dienes  <>

	* breakpoint.c (break_command_1): Only store the breakpoint as a
	future-break if it has a valid address string.  Use catch_errors
	for all breakpoint setting, even if we aren't going to bother
	doing anything if it fails.

2003-09-02  Klee Dienes  <>

	* gdbtypes.c (check_typedef): Only modify TYPE_LENGTH if it
	actually needs changing, in case the symbol data is in a read-only
	* source.c (open_source_file): Only modify s->fullname if we
	successfully open the file.
	* symfile.c (symbol_file_add_bfd_with_addrs_or_offsets): If we are
	relocating a cached symbol file, make the pages writable when
	calling objfile_relocate.
2003-08-27  Jason Molenda  (

	* objc-lang.c (find_methods): Make static.  Move prototype
	here from objc-lang.h so linespec.c can include objc-lang.h
        without a conflict with its find_methods function.
	* objc-lang.h (find_methods): Move prototype to objc-lang.c.

2003-08-26  Jason Molenda  (

	* Update mi-main.c's dependencies.

2003-08-22  Jason Molenda  (

        * stack.c (backtrace_command_1): Save and restore current source
        line value around the backtrace cmd.

2003-08-22  Jim Ingham <>

	* blockframe.c (inside_entry_file, inside_entry_func,
	inside_main_func): Don't treat a pc of 0 as the bottom of
	the stack.  Otherwise you won't be able to backtrace past
	a call through a NULL function pointer.
	* frame.c (get_prev_frame): Don't treat a pc value of 0 in
	the bottom-most frame as an error.  It is much more likely
	the user has called through a NULL pointer.

	* value.h: Turn off the METHOD_PTR_IS_VIRTUAL macro for
	now, it makes no sense on Mac OS X (or most modern systems
	for that matter...)

2003-08-08  Jason Molenda  (

        * event-loop.c (use_poll): Don't use poll() just because the
        poll() wrapper is present in the system library--stick with select()
        for now.

2003-08-06  Jim Ingham  <>

	* symfile.c (reread_symbols): Call objfile_relocate on the new
	objfile.  Since you are keeping the old offsets you have to reapply
	them, or the new objfile won't get properly slid.  In the longer term,
	we probably ought to let the solib layer handle symbol rereading, since
	it knows where things land.

	* cli-setshow.c (do_setshow_command): Don't print the doc string if the
	interpreter is mi_like.  The mi uses the cli show command to report gdb
	variable values, and is not expecting the doc string.

2003-08-06  Klee Dienes  <>

	* objfiles.c (_initialize_objfiles): Add aliases for
	generate-cached-symfiles and use-cached-symfiles.

2003-08-05  Jim Ingham  (

	* inflow.c (terminal_inferior, terminal_ours_2, child_terminal_info): 
	check that inferior_ttystate is not null before passing it on to 
	functions that will crash if it is null.

	* objc-lang.c (find_methods): Use find_pc_function_sect instead of 
	find_pc_function.  Since we know the section here, this will find the 
	correct sym if we are looking up a pc before we run, and have a shared
	libraries that overlap each other.

	* cli-decode.c (print_doc_line): Use the stream we have been passed in
	rather than calling ui_out_text to print the doc line.

2003-08-04  Jason Molenda  (

	* objfiles.c (sanity_check_symtab_obsoleted_flag): Update comment.	
	(sanity_check_psymtab_obsoleted_flag): Ditto.

2003-08-04  Jason Molenda  (

	* fix-and-continue.c (check_restriction_cxx_zerolink): New function
	to see if the file being fixed is C++, and if so, whether the inferior
	is using ZeroLink.
	(do_pre_load_checks): Run this new check.

2003-07-31  Jim Ingham  <>

        * breakpoint.c (bpstat_do_actions): Copy the bpstat passed in and
	use that in the loop that actually does the actions.  This way we
	don't have to worry that somebody might have freed the bpstat
	(always stop_bpstat) our from under us.

2003-07-31  Klee Dienes  (

	* objc-lang.c (lookup_child_selector): Rename to
	(selector_entry): New struct.
	(SELECTOR_HASH_SIZE): New define.
	(selector_hash_generation): New variable.
	(reset_child_selector_cache): New function.
	(lookup_child_selector): New function; uses the selector cache.

2003-07-31  Jim Ingham  (

	* symfile.c (add_symbol_file_command): Fix a misplaced "?" in the
	prompt string.  This was causing suprious testsuite failures in

2003-07-31  Jason Molenda  (

	* fix-and-continue.c (struct fixinfo): Store the name of the
	original executable/dylib as well as the name of the original
	source file, instead of pointers to the objfile/psymtab.
	(fix_command_helper): Find original object file at this level.
	(mark_previous_fixes_obsolete): Update to use accessor functions
	to get original symtab/psymtab.
	(free_half_finished_fixinfo): Free new xstrdup'ed memory of original
	executable's filename.
	(find_orig_static_symbols): Use accessor function to find
	original objfile/symtab.
	(redirect_statics): Properly cast NULLs to avoid warnings with 
	64-bit CORE_ADDR.
	(build_list_of_objfiles_to_update): Use accessor function to get
	original objfile.
	do_final_fix_fixups_static_syms): Ditto.
	(pre_load_and_check_file): Properly cat NULL to avoid warnings
	with 64-bit CORE_ADDR.
	(pre_load_and_check_file): Hoist original objfile from here
	to fix_command_helper().
	(do_pre_load_checks): Sanity check the new names.
	(check_restrictions_globals): Use accessor functions to get
	original objfile.
	(check_restrictions_statics): Ditto.
	(find_original_objfile): This function removed, but really transformed
	into ...
	(find_original_object_file_name): This function added.  Much similarity
	to the old find_original_objfile().
	(find_original_object_file): Accessor function to get the original
	object file.
	(find_original_symtab): Similar.
	(find_original_psymtab): Similar.

2003-07-29  Jim Ingham  (

	* breakpoint.c (print_one_breakpoint): replace calls to
	print_expression with gdb_print_expression, which is the safe
	version.  Also, when printing the breakpoint condition, if 
	print_expression fails, just print the cond_string.
	* (breakpoint_1): replace call to ui_out_table_begin with
	make_cleanup_ui_out_table_begin_end, and do_cleanups to close
	the table.  Also replace a few more print_expression calls
	with the safe version.
	* ui-out.c (do_cleanup_table_end): New function.
	(make_cleanup_ui_out_table_begin_end): New function
	* ui-out.h: declare make_cleanup_ui_out_table_begin_end.
	* wrapper.c (wrap_print_expression): New function.
	(gdb_print_expression): New function.
	* wrapper.h: declare gdb_print_expression.

	* varobj.c (varobj_create): use get_selected_frame, not
	get_current_frame to get the saved frame id.  The latter
	returns the currently executing frame, not the currently
	selected frame, which is not what we want here.  Also if
	we aren't using varobj_runs_all_threads, make a null_cleanup
	for the schedlock_chain cleanup.
2003-07-25  Jim Ingham  (

	* objfiles.c (objfile_delete_from_ordered_sections): Don't add
	1 to the section begin to find the to-be-deleted section index.
	This will fail for sections that are only one byte long.

2003-07-24  Jason Molenda  (

	* fix-and-continue.c (get_fixed_file): Only call 
	remove_objfile_from_dyld_records in a native gdb.

2003-07-24  Klee Dienes  <>

	* objfiles.c (link_objfile): Check to see that the objfile hasn't
	already been linked, before linking.

2003-07-24  Jason Molenda  (

	* fix-and-continue.c (load_fixed_objfile): Return a result
	code if NSLinkModule fails.
	(get_fixed_file): When load_fixed_objfile fails, find objfile for
	aborted file and remove it from gdb's global linked list structures.
	* objfiles.c (free_objfile): Add two APPLE LOCAL markers.
	* (fix-and-continue.o): Add dependency on 

2003-07-24  Jim Ingham (

	This patch adds an "ordered_sections" lookup table to objfiles.c
	so that the pc->obj_section lookup can be done with a binary search
	rather than a linear search.

	* minsyms.c (lookup_minimal_symbol_by_pc_section_from_objfile): Delete 
	the call to find_pc_section just to check that the pc is actually in
	a known section.  Since this routine often gets called in a loop with
	the same pc it is more efficient for the callers to do this check.
	(lookup_minimal_symbol_by_pc_section): Use the ordered_sections lookup
	to find the minsym.  If it fails we still fall back on the old search.
	* objfiles.c (backward_section_compare): New function.
	(forward_int_compare): New function
	(objfile_delete_from_ordered_sections ): New function.
	(get_insert_index_in_ordered_sections): New function.
	(objfile_add_to_ordered_sections): New function.
	(find_in_ordered_sections_index): New function.
	(find_pc_sect_in_ordered_sections): New function.
	(build_objfile_section_table): Add the new sections to the 
	ordered_sections table.
	(free_objfile): remove the sections from the ordered_sections table.
	(objfile_relocate): remove the obj_sections from their old locations
	in the ordered_sections table, and move them to their relocated
	(find_pc_sect_section): Use the ordered_sections table.  If this fails
	fall back on the original ALL_OBJSECTIONS search.
	* objfiles.h: Add declarations to the new exported functions.
	* symfile.c (reread_symbols): Clear the old objfile's obj_sections from
	the ordered_sections array.

	* eval.c (evaluate_subexp_standard): Fix little goof, funaddr was used
	before being set.
	* symtab.h: Cast the -1 error return to CORE_ADDR.  This removes a
	bunch of warnings from objfiles.c.

2003-07-09  Jim Ingham (

	* breakpoint.c (insert_breakpoints): Revert the change that called
	error_stream if there was an error in setting a breakpoint.  The
	upstream code actually can handle the return value, but was not 
	expecting an actual error (i.e. longjmp).

	* printcmd.c (print_frame_args): Work around a problem with
	f2c'ed C code where the debug info says it is a .f file,
	but it is actually C so the variable names are case sensitive.
	gdb would assume a lookup_symbol never fails, and crash
	when it did.

2003-07-08  Jason Molenda  (

	* cli-out.c (cli_interpreter_resume): Clear print_frame_more_info_hook
	when returning to a console interpreter.
	(cli_quoted_interpreter_resume): Ditto.

2003-06-30  Jason Molenda  (

	* fix-and-continue.c (load_fixed_objfile): Clarify 
	NSCreateObjectFileImageFromFile failure error message (tell user
	to retry fix).

2003-06-20  Jason Molenda  (

	* fix-and-continue.c (create_current_active_funcs_list): Make
	struct symbol copy deeper.
	(free_active_threads_struct): Free deeper struct symbol copy.

2003-06-19  Jason Molenda  (

	* fix-and-continue.c (load_fixed_objfile): Wrap error message prettily.
	(create_current_active_funcs_list): Copy the symbol we find, instead
	of saving a pointer to it.  They can sneakily move around, it seems.
	(free_active_threads_struct): Free the copied symbol.

2003-06-19  Jason Molenda  (

	* fix-and-continue.c (fix_command_helper): Mark previous fixes,
	and the original source file, obsolete only after the new bundle
	has successfully been loaded.
	(mark_previous_fixes_obsolete): Don't mark the newest bundle
	as obsolete.

2003-06-19  Jason Molenda  (

	* fix-and-continue.c (find_objfile_by_name): If we fail to find
	an objfile by a given name, search the objfile's bfd structures;
	when cached-symfiles are being used, the objfile->name member is
	the cached-symfile name.

2003-06-18  Jason Molenda  (

	* fix-and-continue.c (load_fixed_objfile): Expand on error message
	a bit.
	(create_current_threads_list): Don't issue warning message when
	we can't change to a thread.  Will revisit this later.
	(check_restrictions_statics): Don't include EOL at end of warning()

2003-06-17  Jason Molenda  (

	* fix-and-continue.c (load_fixed_objfile): Include return value
	from NSCreateObjectFileImageFromFile in error message.
	(find_orig_static_symbols): Add a debug warning for set debug

2003-06-17  Jason Molenda  (

	* fix-and-continue.c (create_current_threads_list): If we are unable
	to switch to a thread, skip that thread instead of aborting fix.
	A call to prune_threads() before I step through the list, but I
	think that function is intended to be static to thread.c, so we'll
	go with this for now.

2003-06-17  Jason Molenda  (

	* fix-and-continue.c (check_restrictions_statics): If gdb has an
	incomplete type for a static, either the old or the new, skip the
	checks.  They won't be meaningful, and we'll probably abort the
	fix needlessly.

2003-06-13  Jim Ingham (

	* utils.c (make_cleanup_set_restore_scheduler_locking_mode): Change
	function to actually set up a locking mode restore cleanup.

2003-06-11  Jason Molenda  (

	* fix-and-continue.c (redirect_statics): Don't redirect static
	if we can't find symbol OR msymbol for it.

2003-06-03  Jason Molenda  (

	* fix-and-continue.c (fix_command_helper): Add cleanup
	to set/restore the current language settings based on the fix file
	(tell_zerolink): Don't assume an object filename was provided
	if the inferior is a ZL app.
	(load_fixed_objfile): Check return value of NSLinkModule() and
	give an error about failure.  More work needed here in the future
	to catch the failing NSLinkModule instead of letting it SIGABRT
	the inferior.
	(find_orig_static_symbols): Add case to find coalesced symbols.
	(do_final_fix_fixups_static_syms): Ditto.
	(check_restrictions_statics): If we can't find the symbol we're
	looking for, probably a mangling problem -- report failure as such.
	Add case to find coalesced symbols.  Allow addition of
	static symbols, will doc restriction that static initialization
	won't happen automatically.
	(check_restrictions_locals): Use linkage name instead of source name;
	needed for languages where these are different.  Add case to find
	coalesced symbols.
	(expand_all_objfile_psymtabs): New function.
	(find_original_objfile): When searching for a source filename,
	don't accidentally match the pre-loaded F&C bundle.
	(search_for_coalesced_symbol): New function.
	(restore_language): New function.
	(set_current_language): New function.
	(find_original_objfile): Make error message a little more

	* symfile.c (deduce_language_from_filename): This function uses
	its arg const-correctly.
	* symtab.h (deduce_language_from_filename): Correct prototype.
	* (fix-and-continue.o): Add dependency on language.h

2003-06-01  Jason Molenda  (

	* fix-and-continue.c (check_restrictions_statics): Skip the
	_OBJC_* symbols used by the ObjC runtime -- the simplistic
	handling of them as if they were normal statics is not correct.
	Also, remove a chunk of #if 0'ed code.

2003-06-01  Jim Ingham  (

	* symtab.c (find_line_pc_range): If we know we have asked for
	the pc by line number, once we have found the line, just report
	the pc, don't go back to the minsyms and look again.  That part
	of the code is ONLY to handle some cases where we asked by

	* inf-loop.c (handle_inferior_event): If fetch_inferior_event
	errors out, then set target_executing to 0.  We don't really
	know, but this is the best guess of what is going on.

	These changes add internal control over the scheduler mode,
	and then uses that in the varobj code to stop other threads
	from running while we evaluate variable objects.

	* defs.h: Add def'ns for the scheduler_locking functions.
	* infcmd.c (run_stack_dummy): Signal a premature return if
	we stopped in a different thread from the one we tried to
	run the function.
	* infrun.c (scheduler_lock_on_p): New function.
	(scheduler_run_this_ptid): New function.
	(set_schedlock_helper): New function.
	(set_scheduler_locking_mode): New function.
	(set_schedlock_func): Use the new set_schedlock_helper.
	(init_wait_inferior): Clear the scheduler_lock_ptid.
	(resume): If you have the schedlock_mode on, resume the 
	scheduler_lock_ptid if that thread still exists.
	* thread.c (do_captured_thread_select): If the scheduler locking 
	is on, then switch the scheduler_locking_ptid to the newly 
	selected thread.
	* utils.c (do_set_schedlock_mode, 
	make_cleanup_set_restore_scheduler_locking_mode): New functions.
	* varobj.c (varobj_create): Lock the scheduler while we create 
	the variables.
	(varobj_set_value): and when we update the value.
	(c_value_of_root): and when we update the root variable.
	(_initialize_varobj): Add a variable: varobj-print-object to control
	whether to lock the scheduler for updating varobj's.

	* objc_lang.c (value_objc_target_type): Fix the warning message.
	* wrapper.c (safe_value_objc_target_type): Suppress error messages.

	* symtab.c (find_line_pc_range): If we know the line was specified by
	line number not address, then don't look it up in the minimal tables.
	We found it already, use the linetable entry we just got instead.
2003-05-30  Jason Molenda  (

	Support for Fix and Continue to interoperate with ZeroLink.

	* fix-and-continue.c (struct fixinfo): Rename "obj_filename" to 
	bundle_filename to more accurately represent what it is.  
	Add "object_filename" variable.  All users updated.
        (struct fixedobj): Change "object_filename" to "bundle_filename" to
	correctly reflect what it is.  Callers updated.
	(fix_command): Record the 3rd argument of an object filename if 
	(fix_command_helper): Accept and record a third argument of an object
	filename.  Call tell_zerolink() at the correct place.
	(tell_zerolink): New function (previously a placeholder stub).
	(inferior_is_zerolinked_p): New function (previously a placeholder stub)
2003-05-21  Jason Molenda  (

	* fix-and-continue.c (fix_command_helper): Return error if a bundle
	filename is reused.
	(find_objfile_by_name): New helper func.
	(mark_previous_fixes_obsolete): Check for NULL objfile ptr; issue
	warning but continue on if we find one.  This should not happen.
	(get_fixed_file): Don't hook new fixedobj structure on to the
	fixed_object_files linked list until we've successfully loaded it
	via dyld.
	(load_fixed_objfile): Change error message to be less amusing.

2003-05-16  Jim Ingham  <>

	* varobj.c (c_type_of_child): Call TYPE_TARGET_TYPE when getting
	the type of an array element.  This preserves the typedef info,
	which is useful.

2003-05-13  Jim Ingham  <>

	* varobj.c (varobj_create): Never hold onto struct frame *'s
	across calls that might run the inferior (in this case
	gdb_parse_expression).  Hold onto frame_id's instead.

2003-05-12  Jim Ingham  <>

	This set of changes adds support in the varobj system for
	getting the dynamic type of ObjC objects.
	* objc-lang.c (value_objc_target_type): New function, return
	the dynamic type of a value pointing to an ObjC object.
	* objc-lang.h: declare value_objc_target_type.
	* varobj.c (varobj_fixup_value): If you don't find a C++ dynamic
	type, look for an ObjC one.  FIXME - this should be abstracted
	(c_type_of_child): Call get_type, not just check_typedef to get
	the parent's type.  Needed to use dynamic types.
	* wrapper.c (wrap_value_objc_target_type,
	safe_value_objc_target_type): A safe interface to
	* wrapper.h: Declare safe_value_objc_target_type.

	* infcmd.c (run_command): Handle the case there 
	target_create_inferior actually fails to run the inferior at all.
	Reset target_executing, and get control of stdin back.

2003-05-07  Jim Ingham  <>

	* valops.c (hand_function_call): On Mac OS X, call a function
	to prepare the thread before saving away register state.  We
	need to call thread_abort_safely to coax the thread out of the
	kernel before we can get its state or safely call functions on

2003-05-08  Jason Molenda  (

	* symtab.c (lookup_symbol_aux_symtabs): Iterate over obsoleted
	objfiles--there may be non-obsoleted symbols contained therein.
	(lookup_transparent_type): Ditto.

	* fix-and-continue.c (struct file_static_fixups): Change member names.
	(find_new_static_symbols): Record the new minsym as well.
	(find_orig_static_symbols): Record the original minsym as well.
	(redirect_statics): Add sanity checks for the minsyms.  Actually
	update the nl_symbol_ptr section so references go to the right place.
	(find_and_parse_nonlazy_ptr_sect): Initialize new minsym members.

2003-05-07  Klee Dienes <>

	* symfile.c (reread_symbols): Use stat() on the file when we
	have a filename, not bfd_get_mtime().

2003-05-07  Jim Ingham  (

	* varobj.c: Turn varobj_use_dynamic_type default back to 1.

2003-05-07  Jason Molenda  (

	* stabsread.c (scan_file_globals): Scan for the matching minsym for
	a symbol in the current objfile before looking at the main application.
        That SVR4 assumption doesn't play well with F&C (and most likely
        two level namespaces, as well.)

	* fix-and-continue.c (struct file_static_fixups): Structure to
	record locations of file global/static data.
	(redirect_file_statics): Top-level function to redirect file
	static variables to the original version's addresses.
	(find_orig_static_symbols, redirect_statics, 
	find_and_parse_nonlazy_ptr_sect): Support functions.

2003-05-07  Jim Ingham  <>

	* wrapper.c: (gdb_evaluate_type, wrapped_evaluate_type): evaluate_type 
	returns a value, not a type, dummy!
	* varobj.c (varobj_create): use gdb_evaluate_type correctly.
2003-05-06  Klee Dienes  <>

	* fix-and-continue.c (update_picbase_register): Wrap with
	TARGET_POWERPC as a temporary measure to allow building on

2003-05-06  Jim Ingham  (

	* varobj.c (varobj_create): Use a wrapped version of evaluate_type,
	since even finding the type of an objc method call can sometimes 
	crash.  Then handle the case where we get this error.
	(varobj_get_value): Handle the case where the value is NULL even if
	the expression is good.
	(value_of_root): If the type is NULL, then we just need to recreate
	the varobj to get it into a good state.
	(c_number_of_children): Handle the case where the type is NULL.
	* wrapper.c (wrap_evaluate_type): New function.
	(gdb_evaluate_type): A wrapped version that also sets unwind_on_signal.
	* wrapper.h: declare gdb_evaluate_type.

2003-05-05  Jason Molenda  (

	* fix-and-continue.c (fix_and_continue_debug_flag): New global flag.
	(fix_command): Only print debug messages if fix_and_continue_debug_flag.
	(do_final_fix_fixups_static_syms): Ditto.
	(_initialize_fix): Add 'set debug fix-and-continue' setting.
	* Makefile (fix-and-continue.o): Update dependencies.

2003-05-02  Jason Molenda  (

	* fix-and-continue.c (do_final_fix_fixups_global_syms): Initialize
	oldsym before it is used.  Use paddr_nz for printing CORE_ADDRs.
	(do_final_fix_fixups_static_syms): Ditto.
	(update_picbase_register): New function to divine and set
	the picbase register and address for a function we're about to 
	execute mid-way through.
	(print_active_functions): Change result message from file-fix-file
	to format its output more in the correct MI style.
	* (fix-and-continue.o): Update dependencies.
	* defs.h: Add prototype for update_picbase_register.

	* objfiles.h (ALL_SYMTABS_INCL_OBSOLETED): New macro for iterating
	over all objfiles + symtabs, including any obsoleted symtabs.
	* symtab.c (lookup_symbol_aux_block): Allow this function to match
	a symtab marked obsolete.
	(find_pc_sect_symtab): Ditto.

2003-05-01  Jim Ingham (

	* symmisc.c (print_symbol): Trap the case where the block for a symbol
	is null.
	* dbxread.c: Initialize the context stack to null so the trap above
	will work if the block never gets set.

	* utils.c (do_restore_uiout_cleanup, make_cleanup_restore_uiout): Add
	cleanups to restore a given uiout.
	* defs.h: declare make_cleanup_restore_uiout.

	* defs.h: declare gdb_quitting
	* top.c (quit_force) set gdb_quitting if we are really quitting.
	* corefile.c (reopen_exec_file): Don't reread the file if we are 

2003-05-01  Jason Molenda  (

	* fix-and-continue.c (fix_command): Accept and ignore third argument.
	(mark_previous_fixes_obsolete): Use INCL_OBSOLETED iterator for symtabs;
	mark old symtabs/psymtabs as obsolete.
	(do_final_fix_fixups): Use INCL_OBSOLETED iterator.
	(do_final_fix_fixups_global_syms): Ditto.
	(do_final_fix_fixups_static_syms): Ditto.
	(check_restrictions_globals): Ditto.
	(check_restrictions_statics): Ditto.
	(check_restrictions_locals): Ditto.
	(force_psymtab_expansion): Ditto.
	* objfiles.c (sanity_check_symtab_obsoleted_flag): Temporary debug
	(sanity_check_psymtab_obsoleted_flag): Temporary debug function.
	(symtab_get_first): Initial iterator for symtab structures with
	obsolete markers.
	(symtab_get_next): Continuing iterator for symtab structures with
	obsolete markers.
	(psymtab_get_first): Initial iterator for partial_symtab structures 
	with obsolete markers.
	(psymtab_get_next): Continuing iterator for partial_symtab structures 
	with obsolete markers.
	* objfiles.h: Prototypes for above functions.  Use them in 
	* buildsym.c (end_symtab): Initialize symtab obsolete flag.
	* coffread.c (coff_symfile_read): Use ALL_OBJFILE_SYMTABS to iterate.
	* dbxread.c (end_psymtab): Initialize partial_symtab obsolete flag.
	* mdebugread.c (parse_partial_symbols): Initialize partial_symtab
	obsolete flag.
	* source.c (select_source_symtab): Use ALL_OBJFILE_SYMTABS iteartor.
	(select_source_symtab): Ditto.
	(forget_cached_source_info): Ditto.
	* symfile.c (symbol_file_add_bfd_with_addrs_or_offset): Use
	(allocate_psymtab): Initialise partial_symtab obsolete value.
	(cashier_psymtab): Use ALL_OBJFILE_PSYMTABS iterator.
	* symmisc.c (dump_objfile): Use ALL_OBJFILE_PSYMTABS iterator.
	* symtab.h (struct symtab): Add obsolete flag.  Add
	SYMTAB_OBSOLETED macro for selecting.
	(struct partial_symtab): Add obsolete flag.  Add PSYMTAB_OBSOLETED
	macro for selecting.

2003-04-30  Jim Ingham (

	* varobj.c (c_value_of_root): Move the call to release value INSIDE
	the test for gdb_evaluate_expression passing.  Otherwise we might try
	to release a null value.

2003-04-29  Jim Ingham (

	* wrapper.c (gdb_evaluate_expression): Set unwindonsignal when you do
	evaluate_expression here.  We don't want to leave a crash on the stack
	when we are updating varobj's that contain functions, since that would
	mess up evaluating the next one.

2003-04-25  Jim Ingham (

	* event-top.c (handle_sigint): Have to set quit_flag here, or we won't
	quit till we get back to the event loop, which is not good.
	(async_request_quit): Don't set quit_flag here, but rather assume whoever
	queued you up set it, and if it got unset that means a call to
	QUIT has already handled the signal, and you don't need to.

	linespec.c (select_symbols): Add a call to QUIT to the symbol iteration
	loops - in some cases there could be quite a few matching symbols.

2003-04-24  Klee Dienes  <>

	* (COMMON_OBJS): Remove version.o.
	(gdb): Add version.o explicitly to the link line; build
	version.o as part of the target rule.

2003-04-23  Jason Molenda  (

	* fix-and-continue.c (create_current_threads_list): Fix call
	to gdb_thread_select.
	* Update dependencies for fix-and-continue.c.

2003-04-23  Jim Ingham (

	* gdb.h: declare make_cleanup_restore_current_thread, add print
	argument to gdb_thread_select.
	* thread.c (make_cleanup_restore_current_thread, restore_current_thread):
	add a "print" argument so you can restore the current thread quietly.
	* (gdb_thread_select): Add a "print" argument so you can set the current
	thread quietly.

	* ui_out.c (ui_out_is_mi_like): Check for the impl being null,
	and call a null uiout NOT mi-like.

2003-04-23  Jason Molenda  (

	* fix-and-continue.c (hi16, lo16): Rename to encode_{hi16,lo16}.
	Update callers.
	(decode_hi16_lo16): New function.  
	(decode_fix_and_continue_trampoline): New function, previously
	in macosx/ppc-macosx-tdep.c.  Entirely arch specific, but all the
	other arch specific functions are in f-and-c.c right now anyway
	so I'll keep them together.  Fix a couple of bugs while moving it.
	* defs.h: Add prototype for decode_fix_and_continue_trampoline.
	* symtab.c (search_symbols): Don't match obsolete syms/msyms.

2003-04-22  Jim Ingham (

	This change adds a "console-quoted" interpreter, so that from
	the mi you can run a console-like interpreter, the difference
	being that all the output comes in mi console wrapping.

	* cli-out.c (cli_quoted_out_new): New function.
	(cli_quoted_interpreter_resume): New function.
	(_initialize_cli_out): Create the console-quoted interpreter.

2003-04-22  Jason Molenda  (

	* objfiles.c (objfile_remove_from_restrict_list): Remove objfile
	from restrict list at the same time as we remove it from objfile

2003-04-21  Jason Molenda  (

	* objc-lang.c (find_methods): Don't match obsoleted symbols.

2003-04-18  Jason Molenda  (

	* gdbtypes.c (lookup_struct_elt_type): Use type_sprint() for printing
	a type.
	* varobj.c (varobj_get_type): Ditto.
	(varobj_get_dynamic_type): Ditto.

2003-04-17  Klee Dienes  <>

	* symfile.c (reread_symbols): Remove call to flush the bfd cache.
	This was used earlier to make sure that any cached mtimes on bfd
	files got reset, but now we just make sure the mtimes are never
	cached in the first place.
	(symbol_file_add_bfd_with_addrs_or_offsets): Properly relocate a
	cached symfile that has been read in.

2003-04-17  Jason Molenda  (

	* fix-and-continue.c (check_restrictions_locals): Skip non-function 
	blocks.  Use SYMBOL_MATCHES_NAME to check function name equivalency.
	(check_restrictions_globals): Change type checking to use new type 
	(check_restrictions_statics): Ditto.
	(check_restrictions_function): Rewrite.
	(sym_is_argument, sym_is_local): New helper functions.
	* typeprint.c (type_sprint): New func.
	* value.h: Prototype.

2003-04-17  Jim Ingham (

	* gdbtypes.c (lookup_struct_elem_type): Replace the lame error
	reporting (some to stderr, some to the error call) with a real
	error message passed to error.  Otherwise the mi gets a useless
	error return value.

2003-04-15  Jason Molenda  (

	* fix-and-continue.c (check_restrictions_statics): Only check static
	functions for now.  Use found sym's namespace when searching for old
	version; a few other small corner cases.
	(check_restrictions_locals): Fill in stub with content to iterate
	over local blocks of fix file.
	(check_restrictions_function): First version of function to check
	for invalid changes to functions in a fix.
	(in_active_func): Use SYMBOL_MATCHES_NAME.
	(remove_type_prefix): Removed.

2003-04-14  Jim Ingham (

	This set of changes implements two features:
	1) When resetting breakpoints, the ALL_OBJFILES macro is restricted
	to ONLY those files that have been added since the last time 
	breakpoint_update was called.  When breakpoint_re_set is called
	you pass in the objfile that has changed, and these form the list
	of changed objfiles.
	2) Once a breakpoint is set, it is not reset till the objfile it was
	set in is changed.  When objfiles change, you must call the new
	function tell_breakpoints_objfile_changed.

	* breakpoint.c (create_internal_breakpoint): set bp_set_p.
	(create_breakpoints): Ditto.
	(watch_command_1): Ditto.
	(breakpoint_re_set_1): Ditto.
	(breakpoints_update): Handle catchpoint resetting here, with
	the restricted search in place.
	(breakpoint_re_set): Take an objfile as argument, and add it
	to the restrict list.	
	(breakpoint_re_set_all): use the objfile_restrict_search for
	bp_breakpoint type breakpoints.
	(tell_breakpoints_objfile_changed): New function.
	* breakpoint.h: Add bp_set_p to the breakpoint structure.
	Change def'n of breakpoint_re_set.
	Add def'n of tell_breakpoints_objfile_changed.
	* objfiles.c (objfile_relocate): Mutatis mutandi for 
	breakpoint_re_set change.
	* rs6000-nat.c: Ditto.
	* symfile.c (new_symfile_objfile): Ditto.
	(clear_symtab_users): Ditto.
	* corefile.c (reopen_exec_file): Mark all breakpoints as
	unset, since who knows what may happen next.
	* symfile.c (reread_symbols): Call tell_breakpoints_objfile_changed.
	(remove_symbol_file_command): Ditto.

	* exec.c (exec_close): Don't call macosx_init_dyld_symfile
	on close.  It is not necessary.

	* objfiles.c (objfile_restrict_search): New function.
	(objfile_add_to_restrict_list): New function.
	(objfile_clear_restrict_list): New function.
	(objfile_get_first): New function.
	(objfile_get_next): New function.
	* objfiles.h: Fix ALL_OBJFILES to use the iterators above,
	and declare the other restrict list helper functions.
	* infrun.c (lookup_minimal_symbol): Use the objfile_get_first
	and objfile_get_next iterators.
	(lookup_minimal_symbol_text): Ditto.
	* source.c (select_source_symtab): Ditto.
	(forget_cached_source_info): Ditto.
	* symfile.c (reread_symbols): Ditto.	

2003-04-11  Jim Ingham (

	* exec.c (exec_file_attach): On MacOSX, if you didn't find the
	exec file with the given name, see if the name you were given
	points to an app bundle.
	* symfile.c (symfile_bfd_open): Ditto.
	Also, add a mainline parameter, so you only do the app bundle
	check if this is indeed the main executable.
	(safe_symfile_bfd_open): Mutatis mutandi for mainline parameter
	to symfile_bfd_open.
	(symfile_bfd_open_helper): Ditto.
	* symfile.h: Ditto.
	* fix-and-continue.c (pre_load_and_check_file) Ditto.
	* somread.c (som_symfile_read): Ditto.
2003-04-10  Jason Molenda  (

	* fix-and-continue.c (check_restrictions_globals): Tidy up.
	Don't check the blockvectors of symtabs who are referencing another
	symtab's blockvector.  Use proper type code for detecting functions.
	(check_restrictions_statics): Initial version.
	(in_active_func): Match either mangled or demangled names.

2003-04-08  Jason Molenda  (

	* fix-and-continue.c (file_exists_p): Check if a file exists
	before we try to fix it.
	(fix_command_helper): Call file_exists_p.
	(inferior_is_zerolinked_p): Placeholder stub.
	(do_pre_load_checks): Add calls to restriction check functions.
	(check_restrictions_globals): Initial checks on global symbols.
	(check_restrictions_statics): Placeholder stub.
	(check_restrictions_locals): Placeholder stub.

2003-04-03  Jason Molenda  (

	Back out change to avoid updating old fix objfiles - I couldn't
	cover all the BFD/dyld layers like this.

	* fix-and-continue.c (mark_previous_fixes_obsolete): Don't change
	old fix objfiles' mtime to LONG_MAX.
	* symfile.c (reread_symbols): Revert change to ignore objfiles with
	newer timestamps than the actual files.

2003-04-02  Jason Molenda  (

	* fix-and-continue.c (build_list_of_objfiles_to_update): Helper
	func; build up a list of all object files we need to update when
	a new fix comes in.
	(do_final_fix_fixups): Change to use build_list_of_objfiles_to_update.
	(get_fixinfo_for_new_request): Fix a little buglet.

2003-04-02  Jason Molenda  (

	* fix-and-continue.c: Revert most of the previous change (the bit
	about hiding the objfiles.)  It didn't work out after all.

2003-04-02  Jason Molenda  (

	* fix-and-continue.c (pre_load_and_check_file): Zero out
	addrs struct.

	Try hiding earlier versions of fixed objfiles so the same objfile
	name can be used for several different files.
	(get_fixed_file): Instead of full objfile list, remove the objfiles
	with the same name from the master object_files list, to be restored
	after the new objfile is loaded.
	(build_list_of_current_objfiles): Rewritten as 
	(restore_hidden_objfiles): New func.
	(find_newly_added_objfile): Simplified.

2003-04-01  Jason Molenda  (

	* fix-and-continue.c (mark_previous_fixes_obsolete): Fill out
	stubbed function.
	(get_fixed_file): Mark fixedobj->next with NULL for clarity.
	(build_list_of_current_objfiles): Fix typeo.
	* symfile.c (add_symbol_file_command): Clean up output for simple
	(reread_symbols): Modify objfile re-loading slightly so multiple
	fixes to the same objfile don't trigger auto-reloading and updating
	of old versions.

2003-03-31  Jason Molenda  (

	* fix-and-continue.c (struct active_func): Also record the frame_info
	for the function that we found, for later reporting via MI.
	(create_current_active_funcs_list): Allocate it.
	(free_active_threads_struct): Free it.
        (print_active_functions): Print the "replaced-functions" message
        if uiout is MI-like.

2003-03-31  Jason Molenda  (

	* objc-lang.c (print_object_command): Set unwindonsignal 
	unconditionally while print-object'ing.

2003-03-27  Klee Dienes <>

	* infrun.c (handle_inferior_event): Revert the change from
	2002-11-07 in the MI case, as CodeWarrior was depending on the extra

2003-03-25  Jason Molenda  (

        * fix-and-continue.c (load_fixed_objfile): Add

2003-03-25  Jim Ingham (

	* interpreter.c (gdb_set_interpreter): Don't run do_all_continuations
	here, since that may run a continuation from the enclosing interpreter
	in the wrong context.

	* breakpoint.c (breakpoint_re_set_one): Don't try to set the overlay
	breakpoint.  It is bogus that this is attempted unconditionally, so 
	I am removing it unconditionally.

2003-03-25  Jason Molenda  (

	* defs.h: Include prototype for make_cleanup_ui_out_delete.
	* fix-and-continue.c (fixedlib): Rename structure to "fixedobj" -
	a more descriptive name.
	(fix_command): Print a little status message when completed and 
	using CLI.
	(get_fixinfo_for_new_request): Fix mistake when fixing an objfile
	more than once.
	(get_fixed_file): Initialize tail of objfile linked list to NULL.
	(create_current_threads_list): Turn off output while switching
	threads around; save the current thread before we start switching
	through all the threads.

2003-03-18  Jason Molenda  (

	* Default is --with-mmalloc on MacOS X.
	* configure: Regenerated.

2003-03-18  Jason Molenda  (

	* fix-and-continue.c: New file.
	* Build it.
	* buildsym.c (add_symbol_to_list): Mark sym as not obsolete.
	* minsyms.c (lookup_minimal_symbol): Ignore syms not marked obsolete.
	(lookup_minimal_symbol_text): Ditto.
	(prim_record_minimal_symbol_and_info): Mark as not obsolete.
	(install_minimal_symbols): Ditto.
	* symtab.h: Add obsolete flag to ginfo; SYMBOL_OBSOLETED and
	* symtab.c (lookup_symbol_aux): Skip obsolete syms.
	(lookup_symbol_aux_block): Ditto.
	(lookup_symbol_aux_symtabs): Ditto.
	(lookup_symbol_aux_psymtabs): Ditto.
	(lookup_symbol_aux_minsyms): Ditto.
	(lookup_transparent_type): Ditto.
	(lookup_block_symbol): Ditto.
2003-03-18  Jim Ingham <>

	* cli/cli-script.c (execute_control_command): call the mi interpreter
	through the mi_interpreter_exec_bp_cmd function, which will keep 
	the mi from registering two continuations, one for the original
	command that set the target going, and one from the interpreter
	exec command.

2003-03-13  Klee Dienes <>

	* osabi.c (gdb_osabi_names): Rename "Darwin 64-bit" to "Darwin64",
	to avoid whitespace-parsing hassles.
	* config/powerpc/ (MACOSX_FILES): add macosx-nat.o.

2003-03-07  Jim Ingham <>

	* dbxread.c (read_dbx_symtab): Revert the change that peeked at
	the stab after a BINCL stab, and would discard the pair if the
	next one was an EINCL.  This throws off the include file
	numbering, and the type symbols no longer match up correctly.
	* (process_one_symbol): restore a fix to the fake line record
	created when we see a new FUN stab.  This change was accepted
	by the FSF on 2-26-03, so we can retire the APPLE LOCAL marker
	* stabsread.c (read_type): Restore a fix for handling embedded
	built-in type definitions that somehow got lost in the latest
	* (read_member_functions): Stub out Daniel.J.'s code to fix up
	some constructor & destructor def'ns.  This did very little for
	gcc-3 and was very slow.
2003-03-03  Jim Ingham <>

	This set of changes updates the "catch catch" and "catch throw".
	The output is mi-ified, the object type being thrown is added,
	you can set a regexp for which objects to stop on both for
	catches & throws.  It adds one target-vector entry to the
	catchpoint support: to_find_exception_catchpoints.  This
	just splits out the "enabling" and the "setting breakpoints
	on catchpoints" parts of the target catchpoint support.

	* breakpoint.c: Define enabled flags & regexp strings.
	(print_it_typical): MI-ify the catchpoint printing info.
	(print_catch_info): New function, for printing info.
	(bpstat_stop_status): Only process the "catch" breakpoint
	that matches the stop address.  Check the catch regexp
	to see if we should stop here.  MI-ify the catch stop
	(update_exception_catchpoints): New function, more convenient
	client function than target_enable_exception_callback/
	(current_exception_should_stop): New function.
	(catch_exception_command_1): use update_exception_catchpoints.
	(exception_catchpoints_enabled): New function, needed for the mi 
	(disable_exception_catch): New function, so you don't have to 
	remove all the catch breakpoints by hand.
	(_initialize_breakpoint): Add set commands for the exception
	type regexp's.
	* breakpoint.h: Add declarations for new functions.
	* hppa-tdep.c: I didn't test this, I just did mutatis mutandi
	changes for the changes I made to the rest of the interface.
	* inftarg.c (child_enable_exception_callback): No longer return
	the SALS, this is done by child_find_exception_catchpoints.
	(child_find_exception_catchpoints): stubbed out version of this.
	(init_child_ops): add child_find_exception_catchpoints.
	* stack.c (catch_info): Still does nothing, but in the new form.
	* symtab.h: Add exception_type to exception_event_record & accessor
	* target.c: Add to_find_exception_catchpoints everywhere necessary.
	* target.h: ditto.

	* infcmd.c (_initialize_infcmd): String constants can't have
	un-backslashed newlines.  gcc-3.3 actually makes this an error
	so we ought to fix it...

2003-02-22  Klee Dienes <>

	* objfiles.c (_initialize_objfiles): Rename
	xxx-precompiled-symbol-tables to *-precompiled-symfiles.
	* symfile.c (new_symfile_objfile): Pass prefix to
	* symtab.c (fixup_section): Only modify the bfd_section if it
	actually differs from the value we will be setting it to (prevents
	errors accessing read-protected cached symfiles).

2003-02-16  Jason Molenda  (

	* symmisc.c (print_objfile_statistics): Patch accepted at FSF - use
	the final text that was accepted.

2003-02-12  Jason Molenda  (

        * symmisc.c (print_objfile_statistics): Include information about
        the number of psymtabs and symtabs in each object file.

2003-02-11  Jim Ingham (

	* source.c (add_path): Look for quoted strings in the dir
	list, and ingest the quoted string as a whole.

2003-02-07  Klee Dienes <>

 	* valops.c (hand_function_call): Make sure expected_type is
	non-NULL before calling check_typedef on it.

2003-02-06  Jason Molenda  (

	* breakpoint.c (reset_allow_objc_selectors_flag): Move function from
	* linespec.c (reset_allow_objc_selectors_flag): To here.
	(allow_objc_selectors_flag): Define storage for this global.
	* linespec.h: Add prototype and extern for above.
	* symtab.c (allow_objc_selectors_flag): Don't declare storage here.
	(rbreak_command): When setting breakpoints on matching symbol names,
	disable objc_selectors_flag to avoid ambiguous breakpoint dialogue.

2003-02-03  Jim Ingham (

	* valops.c (hand_function_call): If you were passed in an
	expected_type, remember to call check_typedef on it before
	using it. 

	* c-exp.y: For objc++ member data, look at the language
	of the current function to determine whether to emit OP_THIS
	* stack.c (frame_info): For objc++, try cplus_demangle AND
	(get_frame_language): For objc++, report the function's language,
	not the symtabs, since and objc++ file can be a mix of objc and
	c++ functions.
	* top.c (execute_command): Don't complain if the automatic language
	is objc++, and you see the frame language is c++.  This is fine,
	it just means we detected a c++ function.
	* valops.c (value_of_this): For objc++ use the frame's language
	to determine whether to hang the instance data off of "this" or
	"self".  This last bit is kind of bogus, since we are just checking
	what to do here, and then we have to redo the logic in c-exp.y when
	we actually get around to emitting the opcodes.

2003-01-21  Jim Ingham (

        * varobj.h: declare new function varobj_is_fake_child.
        * varobj.c (varobj_is_fake_child): New function, does what it says.

2003-01-14  Jim Ingham (

	* utils.c (fprintf_symbol_filtered): If the language is objcplus,
	then try both C++ demangling, and if that fails, try ObjC demangling.

2003-01-13  Jason Molenda  (

	* symtab.c (lookup_symbol): Demangle C++ names if ObjC++.
	(lookup_symbol_aux_minsyms): Don't re-invoke lookup_symbol_aux
	with tricky mangled+mangled name.

2002-01-07  Klee Dienes <>

	* Remove i387-nat.o.
	* Revert host/target Makefile fragment configuring
	to FSF sources.  Update to autoconf-2.57.  Add AC_MSG_CHECKING
	commands for the fragment names.
	* configure: Regenerate.
2002-01-07  Klee Dienes <>

	* config/i386/ (TDEPFILES): Add machoread.o,
	symread.o, and pefread.o.

2002-01-07  Klee Dienes <>

	* varobj.c (varobj_use_dynamic_type): Default to zero.

2002-01-06  Klee Dienes <>

	* Update to use AC_CONFIG_COMMANDS, and to stop
	using CONFIG_HEADERS (for autoconf 2.56).
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* Update to use libtool.

2002-01-06  Klee Dienes <>

	* exec.c: Remove UI_OUT conditionals.
	* infrun.c: Remove UI_OUT conditionals.
	* linespec.c (lookup_symbol_linkage): Provide temporary definition.
	(SYMBOL_PRINT_NAME): Provide temporary definition.
	* osabi.c (gdb_osabi_names): Change "Mac OS X" to "Darwin".	
	* defs.h:  Remove UI_OUT conditionals.
	(enum gdb_osabi): Add GDB_OSABI_DARWIN.

2002-12-15  Klee Dienes <>

	* defs.h: Removed the gxmalloc/gxrealloc/etc. redefinitions.
	* utils.c (nomem): Remove FSF whitespace diffs.
	(xfree): Remove; now provided by libiberty.
2002-12-13  Jim Ingham <>

	* breakpoint.c (breakpoint_re_set_one): Use a cleanup to reset
	the allow_objc_selectors_flag.

2002-12-11  Klee Dienes  <>

	* ppc-tdep.h (ppc_sysv_abi_push_arguments): Move prototype to
	ppc-linux-tdep section.
	(ppc_darwin_abi_push_arguments): Add prototype.
	* ppc-sysv-tdep.c (round2): Rename to ROUND_UP.
	(ppc_stack_abi): New struct.  Specifies ABI rules for argument
	(ppc_stack_context): New struct.  Stores register/stack state
	throughout an invocation of ppc_push_arugments.
	(ppc_push_argument): New function.
	(ppc_push_arguments): New function, based on what used to be
	(ppc_sysv_abi_push_arguments): Implement in terms of ppc_push_arguments.
	(ppc_darwin_abi_push_arguments): New function.
2002-12-11  Klee Dienes  <>

	* linespec.c (decode_variable): Skip all the way to the end when
	it's not quoted, not just to the end of the last close-paren.

2002-12-11  Klee Dienes  <>

	* gdbtypes.h (type_code_name): Add prototype.
	* gdbtypes.c (type_code_name): New function.  Returns a
	constant string	containing the ASCII name of the type code.
	(recursive_dump_type): Use type_code_name.

2002-12-07  Klee Dienes  <>

	* (COMMON_OBS): Remove machoread.o, symread.o, and
	* config/powerpc/ (TDEPFILES): add machoread.o,
	symread.o, and pefread.o.
	* config/i386/ (TDEPFILES): add machoread.o,
	symread.o, and pefread.o.

2002-12-06  Klee Dienes  <>

	* dbxread.c (read_dbx_symtab): Ignore BINCLs that are
	immediately followed by EINCLs.

2002-12-06  Klee Dienes  <>

	* dbxread.c (header_file_location): New field 'hash'.
	(add_bincl_to_list): Set the 'hash' field.
	(find_corresponding_bincl_psymtab): Compute the hash of 'name'
	and use that to pre-check the comparison.
2002-12-07  Klee Dienes  <>

	* infrun.c: Replace step_frame_address with step_frame_id.
	Use frame_id_eq to compare frame IDs.

2002-11-30  Klee Dienes  <>

	* stabsread.h (dbx_lookup_type): Add objfile to the signature.
	* bcache.c (bcache_specify_allocation_with arg): Update prototype.
	(bcache_specify_allocation): Update prototype.
	* bcache.h (bcache_specify_allocation_with arg): Update prototype.
	(bcache_specify_allocation): Update prototype.
	* buildsym.c (finish_block): Clear the field structs before using.
	* gdbarch.h (*_gdb_arch_swap): Add prototypes.
	* gdbarch.c (*_gdb_arch_swap): Make statics.
	* gdbtypes.c (check_stub_method_group): Use TYPE_ALLOC to allocate
	* objfiles.h (link_objfile): Add prototype.
	* objfiles.c (link_objfile): New function.
	(allocate_objfile): Update to use linn_objfile.
	(unlink_objfile): Update comment.
	* gdbtypes.h (INIT_CPLUS_SPECIFIC): Use a NULL value to mean "no
	cplus data".
	(HAVE_CPLUS_STRUCT): Update to the new convention.
	(TYPE_CPLUS_SPECIFIC_NONULL): Return a pointer to an empty cplus
	struct if called for a type with a NULL cplus struct pointer.
	* hpread.c (hpread_alloc_type): Rely on alloc_type to leave the
	cplus_specific field set to NULL.
	* mdebugread.c (new_type): Ditto.
	* stabsread.c (rs6000_builtin_type): Pass in an objfile;
	use when allocating new types.
	(dbx_lookup_type): Add objfile to the prototype for use when
	allocating new types.  No longer cache returned types; just create
	a new one on the objfile type obstack for each call --- fix this later.
	(read_cfront_member_functions): Allocate the new physname on the
	type obstack.
	(define_symbol): Update calls to use the new dbx_lookup_type_interface.
	(update_method_from_phsyname): Pass in an objfile; use to store
	the returned method name.
	(read_member_functions): Use obsavestring, not savestring;
	obconcat, not concat; use new signature for
	(read_one_struct_field): Use obsavestring, not savestring.
	(read_cfront_static_fields): Use obsavestring, not savestring.
	(read_args): Use obstack_alloc, not xmalloc for the new field structs.
2002-11-23  Klee Dienes  <>

	* objfiles.c (objfile_relocate): Be smarter about how we sort
	the line-table.

2002-11-23  Klee Dienes  <>

	symfile.c (symbol_file_add_bfd): ANSIfy prototype.

2002-11-23  Klee Dienes  <>

	* objfiles.c: Include buildsym.h.
	(objfile_relocate): Re-sort the linetable after relocating.
	* (objfiles.o): Update dependencies.
	* buildsym.c (compare_line_numbers): Make global.
	* buildsym.h (compare_line_numbers): Add prototype.

2002-11-22  Klee Dienes  <>

	etc., to match the FSF patches.
	* frame.h (frame_type): Remove merge typo.

2002-11-22  Klee Dienes  <>

	* c-exp.y: Convert Obj-C to ObjC in comments.
	to match the FSF patches.
	* defs.h (xrealloc): Define to gxrealloc, not grealloc.
	* stack.c: Merge Jason's fixes to print MI information for
	synthetic stack frames to the FSF sources.

2002-11-22  Klee Dienes  <>

	* thread.c (do_captured_thread_select): Pass the user-visible
	thread-id (1, 2, etc.) to context_hook, not the internal

2002-11-21  Klee Dienes  <>

	* objc-lang.c (print_object_command): Validate the address before
	passing it to the print routine.

2002-11-19  Jason Molenda  (

	* printcmd.c (_initialize_printcmd): Add alias "set var" for
	"set variable" to avoid a few testsuite failures 
	(gdb.c++/anon-union.exp) that depend on "set var" being 
	unambiguous (due to our addition of 'varobj-print-object').

2002-11-15  Jason Molenda  (

        * stack.c (print_frame_info_base): Apply patch submitted to FSF
        to print proper FRAME tuple for synthesized frames (call dummies,
        signal handlers), plus one Apple local change.
	* thread.c (gdb_thread_select): Drop Apple local changed I'd added
	a few weeks back - KeithS fixed it differently in mi/mi-main.c and
	my solution was causing a double-free error when mixed with his.

2002-11-18  Klee Dienes  <>

	* defs.h: Declare gxmalloc/gxrealloc/gxcalloc/gxfree.  Define
	xmalloc/xrealloc/xcalloc/xfree to refer to them (to prevent
	name conflicts with liberty).
	* infrun.c: Use xstrdup instead of strsave.
	* interpreter.c: Use xstrdup instead of strsave.
	* main.c: Use xstrdup instead of strsave.
	* top.c: Use xstrdup instead of strsave.
	* utils.c: Remove NeXT-specific code.o Remove GDB_FILE_ISATTY.
	Convert several functions to ANSI prototypes.  Remove special-case
	for size_t definition.  Remove strsave.  Re-add xmalloc/xmmalloc
	definitions from the FSF sources.
	* config/i386/ Remove special-case of TERMCAP.
	* config/powerpc/ Remove special-case of TERMCAP.
2002-11-16  Klee Dienes  <>

	* jv-lang.c: Use FSF_OBJFILES as the condition to choose FSF
	vs. Apple objfile support.
	* objfiles.c: Ditto.
	* symfile.c: Ditto.

2002-11-15  Klee Dienes  <>

	* Remove MACOSX_NAT_DEPFILES; the four files in
	question should be platform-independent.  Re-add cached-symfile.o,
	machoread.o, symread.o, and pefread.o to COMMON_OBS.
	* No longer default --with-mmalloc to true; it
	should work without it.  Remove OSX-specific config tests.

2002-11-15  Klee Dienes  <>

	* stabsread.c (read_args): Re-write.  Fixed stack underflows
	for 0 or 1 types specified and overflow for > 1024 type specified.

2002-11-15  Klee Dienes  <>

	* config/nm-macosx.h: Define ENABLE...MACOSX...HACKS... .

2002-11-15  Klee Dienes  <>

	* symmisc.c (maintenance_check_symtabs): Also check the mangled
	name when doing the "only found in".  A bit of a hack, but
	pending a fix to lookup_block_symbol, it's the only practical way.

2002-11-15  Klee Dienes  <>

	* symtab.c (symbol_init_demangled_name): Re-write.  Try C++
	demangling for Objective-C++ code as well as C++ code.

2002-11-15  Klee Dienes  <>

	* objfiles.c (allocate_objfile): Initialize symflags to -1 (all
	bits set).

2002-11-15  Klee Dienes  <>
	* buildsym.h (pop_context): Check for stack underflow.
	* dbxread.c (process_one_symbol): Complain and stop processing
	that symbol if we are already at the top of the context stack for
	a function-end N_FUN (this would imply an umatched RBRAC).  Ditto
	when processing N_RBRAC.

2002-11-11  Klee Dienes  <>

	* linespec.c: Remove whitespace diffs from the FSF sources.

2002-11-10  Klee Dienes  <>

	* valarith.c (value_subscripted_rvalue): Set the VALUE_REGNO
	field of the new value to that of the type being subscripted.
	* value.h (struct value): Update comment.

2002-11-10  Klee Dienes  <>

	* c-exp.y (yylex): Store the initial character of the token in
	tokchr.  Use to determine if a string is a string (tokchr is '"')
	or a nsstring (tokchr is '@').
	* linespec.c (decode_objc): No longer pass next_component.
	(decode_line_1): Move the Obj-C selector parsing before the file
	check.  Objective-C functions with a filename:function created by
	a previous canonicalization will already be fully canonicalized;
	we don't support users typing 'break file:selector'.

2002-11-10  Klee Dienes  <>

	* linespec.c (set_flags): Add new parameter, if_pointer;
	returns pointer to the space before the 'if' in an if-clause, if
	(decode_line_1): Factor into decode_line_1 and decode_line_2;
	decode_line_2 contains the "guts"; while decode_line_1 calls
	set_flags, and conceals the trailing 'if'.

2002-11-09  Klee Dienes  <>

	* corelow.c (core_close): Use target_resize_to_sections
	instead of resizing to_sections by hand.
	* exec.c (exec_close): Ditto.
	* defs.h (strsave): Add prototype.
	* symfile.c (syms_from_objfile): Call new_symfile_objfile and
	target_new_objfile_hook even if the symfile had no symbols.
	* target.c (target_info): Display the information for
	current_target in place of the top target-stack entry.
	(target_resize_to_sections): Also update
	current_target.to_sections, if appropriate.
	* cached-symfile.c: Fix a few warnings.

2002-11-08  Klee Dienes   <>

	* breakpoint.c (do_captured_breakpoint): Ignore
	future-breakpoints if no address string is specified.

2002-11-07  Klee Dienes   <>

	* infrun.c (handle_inferior_event): Remove the extra "[Switching
	to ...]" message; just rely on the one from normal_stop.  We had
	used this message as a poor-man's thread-created notification,
	which I'm not sure was ever really all that useful (this is a
	reversion to the FSF sources).

2002-11-07  Jim Ingham   <>

        * varobj.c (value_of_child): If we change the value we get from
	the lang->value_of_child, we need to free the old value, and
	release the new one.

	* varobj.c (value_of_child): Don't apply gdb_value_ind to a 
	base class whose typecode is TYPE_CODE_REF.  You already have
	the address of the class structure, so this is unnecessary.

	* stabsread.c (update_method_name_from_physname): Complain rather
	than erroring here.  The fact that you can't demangle one method
	shouldn't abort the whole symbol parsing.

2002-11-06  Klee Dienes  <>

	* exec.c (exec_close): Only call macosx_init_dyld_symfile if
	we're not quitting.

2002-11-06  Klee Dienes  <>

	* exec.c (exec_close): Call macosx_init_dyld_symfile to notify the
	macosx layer of the exec_bfd change.
	(exec_file_attach): Ditto.

2002-11-01  Klee Dienes  <>

	* utils.c (init_mmalloc_default_pool): Use a page-checked
	allocator instead of malloc as the default allocator if
	GDB_ENABLE_PAGECHECK is set in the environment.  Wrap the default
	allocator with mmalloc_check_create if GDB_ENABLE_MMALLOC_CHECK is
2002-11-01  Klee Dienes  <>

	* cp-abi.c (set_cp_abi_as_auto_default): Alloc (len + 1) when
	allocating a string, not just len.

2002-10-30  Jim Ingham   <>

	Changes to make the varobj variables track the dynamic type
	of C++ class pointers:

	* varobj.c: Added dynamic_type field to the varobj struct.
	* Added a varobj_changelist to hand to clients, instead of 
	handing out an array of varobj's.
	* Added a varobj_type_changed enum to make the type change
	code easier to read.  This also passes through the 
	value_of_{root,child} functions.
	* Added safe versions of value_rtti_type & 
	* (varobj_fixup_value): New function.  This determines the dynamic 
	type from rtti, and fixes up the value to include the dynamic object.
	* (varobj_create): use varobj_fixup_value.
	* (varobj_get_dynamic_type) new function, gets a string representation
	of the dynamic type.
	* (varobj_update): instead of handing back a list of varobj's,
	hand back a token to a changelist, which clients can use 
	varobj_changelist_pop to retrieve the contents.  Handle the case of
	dynamic type changing both for a root variable and its children.
	* (create_child): value_of_child needs a type_changed.
	* (new_variable): initialize dynamic_type.
	* (get_type): use the dynamic type if present.
	* (varobj_changelist_init, varobj_changelist_pop, varobj_add_to_changelist):
	New functions, manipulate the varobj_update changelist.
	* (varobj_type_is_equal_p): New utility function.
	* (value_of_root): handle dynamic type changing.
	* (value_of_child): use varobj_fixup_value, handle dynamic type
	* (type_changeable -> varobj_value_is_changeable_p): Old name was
	confusing, since it has nothing to do with types changing.
	* (c_value_of_root): use varobj_fixup_value, handle type changes.
	* (c_type_of_child): protect against null child.
	* (_initialize_varobj): Add a set variable to turn off dynamic type

	* varobj.h: Added varobj_type_change, opaque reference to 
	varobj_changelist, updated varobj_update, and added 

	* also changed mi-cmd-var.c to match these changes.

2002-10-30  Jason Molenda  (

        * ui-out.c (ui_out_cleanup_after_error): Move table close out of
        levels-loop.  Adjust closing to work for either tuples or lists.

2002-10-30  Klee Dienes  <>

	* exec.c (exec_file_attach): Replace checks for __i386__ and
	__ppc__ with TARGET_I386 and TARGET_POWERPC.  This is still ugly,
	but at least it's not broken when cross-compiling.
	* symfile.c (symfile_bfd_open): Ditto.
	(reread_symbols): Ditto.

2002-10-29  Klee Dienes  <>

	* breakpoint.c (bpstat_copy): Copy the command lines as well
	as the old value, to match what is freed in bpstat_clear.

2002-10-28  Klee Dienes  <>

	* Rename INTL_DEPS to INTL_DEP, to match other variable names.
	Remove the strip-gdb target; integrate into the gdb and
	insight targets themselves.  Add new variables LIBTOOL and
	LINK; use in the gdb and insight link commands.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2002-10-28  Klee Dienes  <>

	* symtab.c (find_line_pc_helper): Remove; integrate
	into find_line_pc_range.
	(find_line_pc): No longer use the value passed in for 'pc';
	set it to zero at the start of the function.
	(find_line_pc_range): Only open the source file if
	lines_are_chars is set.  Integrate find_line_pc_helper.

2002-10-28  Klee Dienes  <>

	* config/nm-macosx.h: Move declarations of functions for
	macros next to the macros that use them.
2002-10-24  Jason Molenda  (

	* (MACOSX_NAT_DEPFILES): New variable to list MacOS X
	specific object files.
	(COMMON_OBS): Don't list MacOS X specific object files here.
	* Only enable mmalloc by default on MacOS X systems.
	(MACOSX_NAT_DEPFILES): List MacOS X specific object files.
	*, configure: Regenerated.
	* gcore.c (derive_heap_segment): Fix up find_function_in_inferior
	call to match new calling convention.
	* objfiles.c: Replace #if 0's with host detection macro.
	(allocate_objfile): Fix up bcache_xmalloc() calls.
	* jv-lang.c (get_dynamics_objfile): On only MacOS X systems, use
	MacOS X specific allocate_objfile() call.
	* symfile.c (symbol_file_add_bfd):  On only MacOS X systems, use
	MacOS X specific allocate_objfile() call.

2002-10-23  Klee Dienes  <>

	* infrun.c (handle_inferior_event): No longer do
	DECR_PC_AFTER_BREAK after a watchpoint, as it breaks
	page-protection watchpoints on i386.  This is likely non-portable;
	my guess is that we will need to add a DECR_PC_AFTER_WATCHPOINT
	target macro.

2002-10-23  Klee Dienes <>

	* config/powerpc/nm-ppc-macosx.h: Remove definition of
	TARGET_NATIVE (it's unused in the current sources).

2002-10-22  Jason Molenda  (

	* varobj.c (varobj_set_display_format): Recognize unsigned setting.

2002-10-21  Klee Dienes  <>

	* c-exp.y ('0' - '9'): Use 'tokchr' for the first character,
	not 'c'.

2002-10-21  Klee Dienes  <>

	* c-exp.y ('0' - '9'): Revert to FSF code; memory leak in
	parse_number has since been fixed.

2002-10-21  Klee Dienes  <>

	* config/nm-macosx.h (macosx_solib_add): Add prototype.
	(macosx_disable_page_protection_events): Add prototype.

2002-10-17  Klee Dienes  <>

	* (version.c): Use the default FSF version if
	$(VERSION) is not set by the Makefile.

2002-10-17  Klee Dienes  <>

	* symfile.c (syms_from_objfile) On macosx systems, call
	macosx_init_dyld_symfile to notify the dyld layer of the
	update to symfile_objfile.
	(new_symfile_objfile): Ditto.

2002-10-16  Jason Molenda  (

	* objc-lang.c (_initialize_objc_language): Remove extraneous \n at
	end of help msg.
	* thread.c (gdb_thread_select): On failure, return GDB_RC_FAIL.

2002-10-16  Jim Ingham   <>

	* configure, Turn off gdbtk by default for
	Mac OS X.

2002-10-16  Klee Dienes  <>

	* stabsread.c (read_tilde_fields): Use name[sizeof(vptr_name)-2]
	to get the last character of a char[] buffer, not

2002-10-16  Klee Dienes  <>

	* dbxread.c (read_type_psym_p): Default to 'set'.

2002-10-14  Klee Dienes  <>

	* c-valprint.c (c_val_print): Print "<unknown type>", not "<error
	type>", for TYPE_CODE_ERROR.  It would perhaps be worth adding a
	new enum to distinguish TYPE_CODE_ERROR from TYPE_CODE_UNKNOWN,
	but for the moment, the "<error type>" is rather confusing to the
	* f-valprint.c (f_val_print): Ditto.
	* p-valprint.c (p_val_print): Ditto.
2002-10-14  Klee Dienes  <>

	* symfile.c (symbol_file_clear): Only clear symfile_objfile, not
	all objfiles, in response to 'symbol-file' with no argument.  Call
	macosx_dyld_init_symfile to properly update the macosx conception
	of the current set of load-state.

2002-10-13  Klee Dienes  <>

	* arch-utils.c (generic_dynamic_trampoline_nextpc): Add.
	* arch-utils.h (generic_dynamic_trampoline_nextpc): Add.
	* gdbarch.c: Regenerate.
	* gdbarch.c: Ditto.
2002-10-06  Klee Dienes  <>

	* rs6000-tdep.c (rs6000_info_powerpc_command): Make global.
	* ppc-tdep.h (rs6000_info_powerpc_command): Add prototype.
	* rs6000-tdep.c (info_powerpc_cmdlist): Make global.
	* ppc-tdep.h (info_powerpc_cmdlist): Add prototype.

2002-10-06  Klee Dienes  <>

	* findvar.c (read_memory_typed_address): New function.
	* gdbcore.h (read_memory_typed_address): Add prototype.
        * blockframe.c (sigtramp_saved_pc): Use
        read_memory_typed_address to read a value destined for a
        CORE_ADDR, not read_memory_integer.
        * f-valprint.c (f77_get_dynamic_upperbound): Ditto.
        (f77_get_dynamic_lowerbound): Ditto.
	* symfile.c (simple_read_overlay_region_table): Revert
	to read_memory_integer (I believe this is incorrect, but the
	code is commented out, and I don't have a good way to test

2002-10-05  Klee Dienes  <>

	* blockframe.c: Revert whitespace changes from the Cygnus sources.
	* gnu-nat.c: Revert to Cygnus sources.
	* i386-tdep.c: Restore read_memory_unsigned_integer to

2002-10-05  Klee Dienes  <>

	* config/xm-aix4.h config/xm-nbsd.h config/alpha/xm-alphalinux.h
	config/alpha/xm-alphaosf.h config/arm/xm-linux.h
	config/i386/ config/i386/nm-fbsd.h config/i386/nm-linux.h
	config/i386/xm-cygwin.h config/i386/xm-i386bsd.h
	config/i386/xm-i386gnu.h config/i386/xm-i386v.h
	config/i386/xm-ptx.h config/i386/xm-symmetry.h
	config/ia64/xm-aix.h config/ia64/xm-linux.h
	config/m68k/xm-apollo68b.h config/m68k/xm-apollo68v.h
	config/m68k/xm-delta68.h config/m68k/xm-dpx2.h
	config/m68k/xm-hp300bsd.h config/m68k/xm-hp300hpux.h
	config/m68k/xm-m68k.h config/m68k/xm-sun2.h config/m68k/xm-sun3.h
	config/mips/xm-irix3.h config/mips/xm-irix5.h
	config/mips/xm-linux.h config/mips/xm-mips.h
	config/mips/xm-mipsm3.h config/mips/xm-riscos.h
	config/pa/ config/pa/tm-hppa.h config/pa/tm-hppah.h
	config/pa/xm-hppab.h config/pa/xm-hppah.h
	config/powerpc/xm-linux.h config/rs6000/xm-rs6000.h
	config/s390/xm-linux.h config/sparc/tm-sparc.h config/vax/xm-vax.h:
	Revert to Cygnus sources.

2002-10-05  Klee Dienes  <>

	* Fold the Apple search-path changes into the target
	for init.c.  This was specifically necessary in order to ensure
	that _initialize_gdbtypes was called first among the init
	functions (see the comment in gdbtypes.c).
	* osabi.h (enum gdb_osabi): Add GDB_OSABI_MACOSX.
	* osabi.c (gdb_osabi_names): Add string for GDB_OSABI_MACOSX.

2002-10-05  Klee Dienes  <>

	* i387-tdep.c (i387_supply_register): When called with NULL as a
	buffer, mark the register as not provided (to mirror the behavior
	of supply_register).
	(i387_supply_fxsave): Ditto.
	(i387_supply_fsave): Ditto (inherits the behavior from i387_supply_register).

2002-10-04  Klee Dienes  <>

	* c-exp.y: Minor stylistic fixes (periods and capitals in
	comments, etc.).
	(yyerror): Remove test for lexptr being non-empty
	(the upstream code now gives the string a correct value even at

2002-10-04  Klee Dienes  <>

	* infcmd.c (default_print_registers_info): Print vectors and
	floats in 'natural' form, followed by the raw contents of the
	register.  Print other types in hex, followed by their natural

2002-10-03  Jason Molenda  (

	* blockframe.c (flush_cached_frames): Drop Apple local change which
	trips up annotate test cases - looks like someone was being overly
	ambitious and trying to avoid unnecessary "frames-invalid" markers
	for annotate consumers.  Innovation in annotate is not a good idea.

2002-09-27  Jason Molenda  (

        * symtab.c (make_symbol_overload_list): Fix thinko that was truncating
        overload-candidate func name.

2002-09-26  Klee Dienes  <>

	* varobj.c (varobj_create): Use warning to report a warning, not

2002-09-24  Klee Dienes  <>

	The basic goal of this patch is to fix some inconsistencies in how
	GDB handles shared libraries.  Previously, the OSX "dyld" shared
	library table was built up using the primary symbol file as a
	base, and section tables were updated using the list of active
	objfiles.  This was not only "intuitively" wrong, it also led to
	errors when the exec file wasn't the same as the symbol file
	(i.e., didn't match it at all, for example because we were loading
	in saved data from a file created using the 'dump' command).  In
	cases like that, the section table would as often as not end up
	pointing to the section from the sybol file, not the file of
	dumped data.  Also, using just 'exec-file' and not 'symbol-file'
	would cause GDB to get into a bad state, and unable to run the
	program.  This patch fixes both problems.  It also has the happy
	side-effect of removing a huge chunk of diffs from objfiles.c
	* objfiles.c (update_section_tables): Remove.
	* objfiles.c (open_mapped_objfile, open_existing_mapped_file,
	add_to_objfile_sections, build_objfile_section_table,
	allocate_objfile): Revert from Cygnus objfiles.c.  Most of these
	functions are not used, but reverting to the Cygnus versions will
	make merges less painful.
        * exec.c (solib_add_stub): Add.
        * exec.c (exec_file_attach): Call
        solib_add_stub after changing the exec file, so the sharedlibrary
        code can update other libraries the new executable might pull in.
        * symfile.c (symbol_file_add_bfd): No longer call update_section_tables ().
	* symfile.c (symbol_file_add_main_1): Add exec_bfd parameter to
	* objfiles.h (update_section_tables): Remove prototype.

2002-09-24  Klee Dienes  <>

	* valops.c: Remove obsolete STACK_ALLOC definitions.

2002-09-24  Klee Dienes  <>

	* Don't create
	$(FRAMEWORK).framework/Versions/Current/Headers/cli twice; it causes
	an error.

2002-09-24  Klee Dienes  <>

	* config/nm-macosx.h: Re-indent.  Pass parameters to
	macosx_add_shared_symbol_files().  Re-define SOLIB_ADD from
	macosx_try_start_dyld to macosx_solib_add; pass all parameters.
	* config/{i386,powerpc}/macosx.{mh,mt}: 
	Convert spaces to tabs in MACOSX_FILES and CFM_FILES.
	* config/powerpc/ Remove definition of NS_TARGET_MAJOR.
	* config/{i386,powerpc}/ Add -Wall -Wimplicit -Wno-long-double to CFLAGS.
2002-09-23  Jim Ingham  (

        * blockframe.c (refine_prologue_limit): moved here from rs6000-tdep.c so
	I could use it in ppc-macosx-tdep.c.  Also pass 
	max_skip_non_prologue_insns as a parameter.
	* frame.h: declare refine_prologue_limit.
	* rs6000-tdep.c: remove refine_prologue_limit, change calls to it to pass
	the max_skip_non_prologue_insns.

2002-09-21  Jason Molenda  (

	* linespec.c (decode_line_1a): Pop over finishing apostrophy character,
	don't let do_captured_breakpoint get confused by it.  Fixes this -
(gdb) break 'inheritance2'
        from gdb.c++/classes.exp.

2002-09-20  Jason Molenda  (

	* rs6000-tdep.c: Make rs6000_pop_frame() externally visible.
	* ppc-tdep.h: Provide prototype for rs6000_pop_frame().

2002-09-19  Klee Dienes  <>

	* valops.c (hand_function_call): Remove errant second call of

2002-09-18  Jason Molenda  (

	* maint.c (_initialize_maint_cmds): Remove mention of 'chill' from
	'help maint' and 'maint demangle'.

2002-09-17  Jim Ingham (

	* infcmd.c (break_command): Don't disable stdin BEFORE asking
	a question!

2002-09-16  Jason Molenda  (

	* top.c (init_main): Remove errant space char in help text.

2002-09-13  Jason Molenda  (

	* symtab.c (make_file_symbol_completion_list): Remove two errant
	exits from function that prevent returning a completion list of
	all symbols. Fixes this failure:

FAIL: gdb.base/completion.exp: (timeout) complete (2) 'p no_var_named_this-'

2002-09-09  Jason Molenda  (

	* breakpoint.c (print_one_breakpoint, breakpoint_1): Revert these
	to the FSF versions--drop additional table columns which worked
	around a now-fixed UI bug.

2002-08-27  Klee Dienes  <>

	* linespec.c (decode_line_2): Prototype.
	(decode_line_1): Rename to decode_line_1a; move has_if support to
	a wrapper function and move out to decode_line_1.

	* rs6000-tdep.c: Hack to allow use as part of the Mac OS X target.
	Define TEXT_SEGMENT_BASE if not already defined; rename
	_initialize_rs6000_tdep to x_initialize_rs6000_tdep so it is not
	called automaticallly (it conflicts with the ppc-macosx-tdep to
	attempt to register and arch handler for powerpc).
	* valops.c (hand_function_call): Revert to Cygnus sources.  Re-add
	the cached value and expected-type support.

	* gdb/config/powerpc/ Add rs6000-tdep.o and ppc-sysv-tdep.o.

2002-08-14  Jason Molenda  (
 	* breakpoint.c (breakpoint_re_set_one): Save recomputed expression
 	in watchpoint.

2002-08-06  Klee Dienes  <kdienes@bluegill.localnet>

	* breakpoint.c (watchpoint_equal): New function.  Like
	value_equal, but arrays only count as "equal" if they have the
	same contents.
	(watchpoint_check): Update to use watchpoint_equal.
	(breakpoint_re_set_one): Remove watchpoints if there is an error
	in setting them.
	(config/nm-macosx.h): Rename
2002-08-09  Jason Molenda  (

	* breakpoint.c (breakpoint_re_set_one): Rewrite last patch by Klee
        to remove unnecessary code from hardware watchpoint resetting.  
	(write_one_breakpoint): Write out watchpoints correctly.
	* wrapper.h: Include varobj.h for its juicy type decls.

2002-07-12  Jim Ingham   <>

	* i386-tdep.c (i386_get_frame_setup): In two places a variable
	(pos) is used to hold an address, but declared int rather than
	CORE_ADDR.  Fixed this.

2002-07-10  Jim Ingham   <>

	* dbxread.c (process_one_symbol): Use last_function_start rather
	than function_start_offset to find the real beginning of the
	current function.  The latter is just the text section offset on
	some systems, the latter is always the real function start...

2002-07-09  Jim Ingham   <>

        * objfiles.h: declare objfile_demangle_symbols since we use
	in in more than one file...

	* symfile.c: Fix the usage message for add-symbol-file.
2002-07-02  Jim Ingham   <>

	* varobj.c (create_child): Move the test for child->value AFTER you
	have created it, dope...

2002-06-12  Klee Dienes  <>

	* config/i386/xm-i386-macosx.h: Remove the definitions for
	(they are in xm-i386.h).

2002-06-12  Klee Dienes  <>

	* i386-tdep.c (i386_skip_prologue): This should take a CORE_ADDR,
	not an int.
	* config/i386/tm-i386.h (i386_skip_prologue): Update prototype.

2002-06-10  Jim Ingham  <>

	* breakpoint.c (breakpoint_stop_status): If we threw away the 
        previous expression for the breakpoint condition, rebuild it here. 
        (breakpoint_re_set_one): Discard & null out the parsed expression,
        but don't try to reparse it here, or we will recurse infinitely
        trying to reset the breakpoint if we need to call into the 
        inferior to parse the expression.
        * minsyms.c (install_minimal_symbols): when we demangle symbols
        for an objfile, set the minimal_symbols_demangled flag so we
        don't do it all over again in objfile_demangle_msymbols.
        FIXME: in the long run, we should see whether we really need to
        do objfile_demangle_msymbols, since the net version doesn't need
2002-06-07  Jim Ingham  <>

	* breakpoint.c (bpstat_do_actions): Notice whether we have run
	any commands, and if so, emit a ui_out "notify" message when
	we are done running them.
	(print_it_typical): add a uiout field to the breakpoint hit
	stopped message saying whether there are any commands associated
	with this stop.
	* ui-out.h: Add notify_begin & notify_end function slots to the
	ui_out_impl structure.  Also declare ui_out_notify_begin & 
	* ui-out.c: Add the default_notify_begin & _end functions to the 
        default impl, and implement the ui_out & uo_out versions.
	Also added a make_cleanup_ui_out_notify_begin_end function,
	for use if you are going to do any work between starting & 
	ending the notify session.
	* cli-out.c: Add NULL's for the cli version of the notify functions.
2002-05-31  Jim Ingham  <>

	* config/powerpc/xm-ppc-macosx.h: Add defines for HOST_*_FORMAT
	for floats, doubles & long doubles.  This will sidestep trying to 
	convert floats from ppc native format to ppc native format, an 
	amusing but pointless exercise...
	* config/i386/xm-i386-macosx.h: ditto.

2002-05-30  Rab Hagy <>

      * varobj.c, varobj.h: added "unsigned" format specification
      * stack.c: added frame pointer to output of a stack frame (for MI only)

2002-05-21  Jim Ingham  <>

	* varobj.c (create_child): Don't do strncmp to set fake_child, or
	you will get false positives...
	(cplus_make_name_of_child): The logic for doing index -> {"public",
	"private", "protected"} was faulty.

2002-05-16  Klee Dienes  <kdienes@bluegill.localnet>

	* no longer define free to xfree; all instances of
	free in the sources should now be converted.

	* xm-macosx.h: ditto.

	* add cached-symfile.{c,o}

	* breakpoint.c: convert instances of free to xfree.
	* expprint.c: convert instances of free to xfree.
	* interpreter.c: convert instances of free to xfree.
	* linespec.c:  convert instances of free to xfree.
	* objc-lang.c: convert instances of free to xfree.
	* core-macho.c: convert instances of free to xfree.
	* macosx-nat-dyld-info.c: convert instances of free to xfree.
	* macosx-nat-dyld-info.c: convert instances of asprintf to xasprintf.
	* macosx-nat-dyld-io.c: convert instances of asprintf to xasprintf.
	* macosx-nat-dyld-path.c: define strsave as xstrdup, not savestring.
	* macosx-nat-dyld-path.c: convert instances of free to xfree.
	* macosx-nat-dyld-process.c: convert instances of free to xfree.
	* macosx-nat-dyld.c: define strsave as xstrdup, not savestring.
	* macosx-nat-info.c: convert instances of free to xfree.
	* macosx-nat-info.c: convert instances of malloc to xmalloc.
	* utils.c (xvasprintf): use xstrdup to malloc the resulting string
	instead of the system malloc, so it can be passed to xfree without

	* mi-main.c: add mi_interpreter_exec; add to the interpreter struct
	(so that interpreter-exec can also run MI commands).

	* dbxread.c: disable mapping string tables (mmap_strtabflag) by

	* defs.h: init_malloc now returns a mmalloc pool, possibly
	different from the one passed in (to support returning a
	mmalloc_check pool based on the pool passed in).

	* doublest.c: define NaN to be 0.0 regardless if it is defined by
	the system, to work around __nan issues on WWDC build.

	* objfiles.c: remove allocate_objfile and all related functions;
	replace with new functions in cached-symfile.c

	* objfiles.c: add new variables	'generate-persistent-symbol-tables'
	and 'use-persistent-symbol-tables'.

	* symfile.c: no longer force HAVE_MMAP to 0.  remove test for
	bfd_supports_mmmap (bfd can simply return error from
	bfd_mmap_file).  add "mapaddr" agrument to add-symbol-file.
	re-enable zeroing of msymbol table hash when creating objfile.
	* thread.c: properly cleanup the ui_out when there is an error
	generating the thread list.

	* utils.c (init_mmalloc_default_pool): create a mmalloc pool that
	defaults to system malloc, using mmalloc_malloc_create.
	(init_malloc): create a mmalloc_checked_malloc zone based on the
	mmalloc zone passed in, rather than modifying it in place using th
	mmcheckf interface.

2002-05-14  Jim Ingham   <>

	* linespec.c (decode_line_1): don't use gdb_completer_word_break_characters 
	when allow_objc_selectors_flag is false.  This only happens when we are
	resetting breakpoints after shared library loads, so it just causes future-break
	to fail on ObjC symbols.
2002-05-03  Jim Ingham   <>

	* objc-lang.c (_initialize_objc_lang): New function, set the 
	* (should_lookup_objc_class): New function, should we look up 
	objc classes as an ordinary part of symbol lookup?
	* c-exp.y: Use should_lookup_objc_class.

2002-05-01  Klee Dienes  <>

	* infcmd.c (do_registers_info): Print only things with type INT
	as both int and hex.

	* infcmd.c (do_registers_info): Don't check AltiVec types;
	instead treat all non-INT registers as "info all-regs" only.

2002-04-24  James Ingham <>

      * varobj.c (varobj_in_scope_p): New function, tell whether a variable is
      in scope.
      (c_type_of_child): A pointer type might point to a typedef, so you have
      to also call check_typedef on the target before creating its children.
      * varobj.h: declare varobj_in_scope_p.

2002-04-24  Klee Dienes  <kdienes@bluegill.localnet>

        * linespec.c (decode_line_1): Ignore most word separators when
        scanning for breakpoint expression, to allow for better Obj-C
        method parsing.

2002-04-23  Klee Dienes  <>

	* infcmd.c (do_registers_info): Check for AltiVec types when deciding 
	whether to print a register as float or int.

2002-04-19  James Ingham <>

	* varobj.c (type_changeable): Another place where we want to protect
	against accessing a NULL type structure in the varobj.

2002-04-18  James Ingham <>

	* varobj.c (varobj_create): Add a real block parameter to varobj_create.
	I was overloading the frame for this case, which is fragile, and broke
	in the latest merge.
	* (c_type_of_child): Call check_typedef on parent->type before using it
	to get the type of the child.
	* varobj.h: mutatis mutandi for varobj_create change.

2002-04-18  James Ingham <>

	(This is from Jason Merrill  <>):

	* gnu-v3-abi.c (gnuv3_rtti_type): If we get confused, just warn
	and return NULL.

2002-04-15  James Ingham <>

	* varobj.c (varobj_create): Make it possible to create a
	USE_SELECTED_FRAME varobj when the variable is not currently
	defined, and defer defining it till it shows up.
	(varobj_get_num_children): if we couldn't parse the expression
	yet, return -1 for number of children.
	(free_variable): Don't free the current expression if it is NULL.
	(variable_language): Punt (say it is C) for variables we couldn't
	find yet.
	(value_of_root): varobj_create can now return a non-null varobj,
	with a NULL exp struct.
2002-04-08  James Ingham <>

	* target.h: Add to_bind_function entry to target_ops.
	* target.c: initialize to_bind_function appropriately.
	* valops.c (create_cached_function): Initialize "bound" flag.
	(lookup_cached_function): bind the function before calling.
	* values.h: Add bound field to the cached_value struct.
2002-04-05  James Ingham <>

	* ui_out.c (ui_out_is_mi_like_p): Check for the uiout being NULL.

2002-04-04  James Ingham <>

	* valarith.c (find_size_for_pointer_math): New function, return
	the size of a pointer's target, or 1 for void *, or error with
	an appropriate message for incomplete types.
	(value_sub, value_add): use find_size_for_pointer_math.

2002-04-04  James Ingham <>

	* varobj.c (cplus_make_name_of_child, cplus_make_path_expr_of_child):
	Don't skip over the vptr entry, that is already taken care of in

2002-04-03  James Ingham <>

	* infrun.c (restore_selected_frame): The code here was misusing
	fr->level, which is an absolute frame (coming from selected_frame_level) 
	and not a relative frame level.
	* varobj.c (c_value_of_root): Restore both the selected_frame and
	the selected_frame_level.

2002-04-02  James Ingham <>

	* symtab.c (make_symbol_completion_list): Don't try to get the
	length of sym_text till after you've made sure it is not NULL.
	(make_symbol_file_completion_list): ditto.

2002-04-01  James Ingham <>

	* linespec.c (decode_line_1): When handling file:line specs,
	if funfirstline is 1, actually move the breakpoint past the
	prologue.  This is done for functions, and the same rationale
	holds for source line specifications.
	* symtab.c (find_pc_line): fix silly bug - NB, this is already
	fixed on the FSF head, but that code relies on some other changes.

	* varobj.c (varobj_update): If selected_frame is NULL, then
	just don't bother with trying to restore it.

2002-03-29  James Ingham <>

	* valarith.c (value_sub): If you are doing pointer - integer,
	and TYPE_LENGTH of the pointer's target comes back 0, set it 
	to 1.  This is what value_add does, and we should be consistent.

2002-03-28  James Ingham <>

	* varobj.c (child_exists): New function.  This is a fast way to
	get the child corresponding to a given index.
	(get_type_deref): Pass out whether the original was a pointer or not.
	(path_expr_of_variable): New function.  This returns the full path
	expression to a variable.  The intent here is that you could use
	this to make a new root varobj corresponding to the child varobj
	whose path expression you are getting.
	(varobj_get_path_expr): New function.  External wrapper for 
	(c_path_expr_of_child, cplus_path_expr_of_child, java_path_expr_of_child):
	New functions, return the path expr of a child in its parent.  Also caches
	the expr for later use.
	(make_name_of_child, c_make_name_of_child,
	cplus_make_name_of_child, java_make_name_of_child):
	"name_of_variable" used to serve both the create name and the
	return name functions.  This was inefficient; since you only need
	to compute the name when you make the variable, you ended up doing a whole
	bunch of work just to do simple lookups.  So I split the two functions, and
	made separate calls for them.  These are the make name calls.
	(name_of_variable): This now just returns the name, it doesn't recompute it.
	(is_root_p): New convenience function, returns whether a variable is a root.
	Then I changed all the uses of var->name to use name_of_variable, and the test
	for is this a root were changed to use is_root_p.

	(varobj_set_value): Remove the baseclass offsetting, since value_cast now
	handles this properly (Keith took this out of the FSF version too).

	* varobj.h: Added def'n of varobj_get_path_expr.
2002-03-27  James Ingham <>

	* config/i386/tm-i386-next.h: Define HAVE_I387_REGS properly so gdb doesn't
	think ALL registers are floating point registers.

2002-03-19  James Ingham  <>

	* defs.h: Add test for gcc 3 to test of whether to use __PRETTY_FUNCTION__.

2002-03-15  James Ingham <>

	*c-exp.y: If you have found a variable that is a field of this, don't ALWAYS
	make it hang off "self" check the language first!

2002-03-12  James Ingham <>

	* cp-abi.c (set_cp_abi_cmd, show_cp_abi_cmd,): New functions, 
	allow you to set & show cplus abi's in case gdb gets it wrong.
	(set_cp_abi_as_auto_default): New function, set the "auto" abi
	to be this abi.
	(is_cp_abi_auto_p): New function, say whether the current abi
	is the default or not.
	(_initialize_cp_abi): Define the cp-abi switching commands.
	* cp-abi.h: declare the new functions.
	* minsyms.c (install_minimal_symbols): don't switch the cp_abi
	unless the current abi is auto.
	* gnu-v2-abi.c (_initialize_gnu_v2_abi): don't switch to gnu-v2,
	but set it as the auto_default instead.	

2002-03-05  James Ingham <>
	* stack.c (print_frame): restore the (local) print_frame_more_info_hook that
	got dropped in one of the merges.

2002-03-05  James Ingham <>

	* target.h: add print_section_info_objfile, it is used in next code.

	* utils.c (error_stream): Don't dump error info to the console for mi-like
	interpreters - it is already added to the command return.

	* valops.c (set_unwind_on_signal): New function, allow C-code to
	set the unwind_on_signal flag.
	* value.h: declare set_unwind_on_signal.

	* mi-cmd-var.c (mi_cmd_var_evaluate_expression): Add -u flag to unwind on
	signal for inferior function execution.
2002-02-21  James Ingham <>

	* valops.c (find_overload_match): remove some useless code that was removed
	from the FSF version but somehow didn't get expunged in the merge.

	* symtab.c (make_file_symbol_completion_list): remembet to set sym_text
	to the place in the input string where we think the symbol begins.

2002-02-20  James Ingham  <>
	* event-top.c (gdb_setup_readline): Don't turn on readline event
	handling if instream is NULL (usually when reading script commands)
	since there is no input to wait on anyway...

2002-02-06  Klee Dienes  <>

	* fork-inferior.c (fork_inferior): Add '!' to the list of
	characters that need to be quoted when building a string for the
	shell.  Quote '!' specifically with a backslash, since CSH chokes
	when trying to evaluate "str!str".

2002-01-29  James Ingham  <>
	* interpreter.c (gdb_interpreter_ui_out): Add accessor function.
	* interpreter.h: declare it.

2002-01-28  James Ingham  <>
	* stabsread.c (read_type): Handle the case where there is a type
	def'n WITHIN the argument list for a class method.  Need to step
	over the ";" that terminates the def'n or read_args will lose it.
	* (read_args): If for some reason you find NO types, return an
	error rather than crashing.

2002-01-25  James Ingham  <>
	Generalize the gdb_event, and allow clients outside of event-loop.c
	to create & queue gdb events.  Also, make sure that the client_data
	that gets passed into fetch_inferior_event makes it down to 
	target_wait, which very well might need it.

	* defs.h: add client_data to target_wait_hook.
	* event-loop.c: export event_handler_func type.
	  generalize the "fd" field of the gdb_event structure - make it
 	  a void *.
	* (gdb_create_event): New internal function, implements the generic
	parts of creating a new event structure.
	* (gdb_queue_event): New function, how clients will create & queue
	a new event.
	* various places - mutatis mutandi for the type changes in the 
	gdb_event structure.
	* event-loop.h: declare gdb_client_data, the event_handler_func
	and gdb_queue_event.
	* infrun.c: Pass NULL (in the non-async case) or the client_data 
	(in the async case) to target wait where appropriate.
	* inftarg.c: add gdb_client_data to child_wait.
	* target.c: add gdb_client_data to debug_to_wait.
	* target.h: fix declaration of to_wait element of the target vector.
	* thread-db.c: add gdb_client_data to thread_db_wait.
	* top.c: fix another call to target_wait_hook.
	* config/nm-nextstep.h: Fix declaration of child_wait.

	* dbxread.c (_initialize_dbxread): Add a flag: read_type_psyms
	to control whether we construct psyms for types.
	* (read_dbx_symtab): Check the flag.

2002-01-15  James Ingham  <>

	* objc-lang.c: Have to include regcache.h or FETCH_ARGUMENT will
	not convert the return value from read_register correctly, and
	will mangle the value.

	* infcmd.c (attach_command): Guard use of SOLIB_ADD with #ifdef.

2002-01-15  James Ingham  <>

	* ui-out.c (ui_out_end): Remove some bits of my patch to the list 
	elements in a table bug that were superceded by Andrew's subsequent
	patch, and caused a crash if left in place.

2002-01-15  James Ingham <>
	stabsread.c (read_one_struct_field): gcc 3.1 inserts type def'ns into the
	class stab, and terminates the embedded type def'n with a ";", which gdb is
	not expecting.  Strip it off if it does that.

2001-12-11  James Ingham <>
	utils.c (gdb_check_fatal): mutatis mutandi for changes to
	internal error.

2001-12-11  James Ingham <>

	These changes are a start at making varobj more robust when
	you get an error generating a type for a varobj you can't
	ignore.  This arises, for instance, if you have an error
	in generating the varobj for a child variable.

	* varobj.c: Add fake_child element to the varobj structure.
	This is better than relying on type == NULL, value == NULL,
	since you can't tell the difference between a fake child and
	an error.
	(varobj_get_type): If we can't get the variable's type, don't 
	continue as you will only crash...
	(create_child): set fake_child appropriately.
	(cplus_number_of_children): If you can't get the type, you can
	count the number of children.  Just return 0.
	(cplus_value_of_child): If gdb_value_struct_elt returned an error,
	don't go on to try c_value_of_child.  It won't work either...
	(cplus_type_of_child): skip over fake child to its parent when
	getting the type.

2001-12-03  James Ingham <>

	* breakpoint.c (bpstat_do_actions): Allow an async target
	to run breakpoint commands in an asynchronous fashion.  The 
	code before this was forcing the target to look synchronous
	to get the breakpoint commands to work right.
	(async_breakpoint_command_continuation): New function, the
	continuation for commands that run the inferior in a breakpoint
	* inf-loop.c (inferior_event_handler): reorder the 
	complete_execution and the continuations to handle breakpoint
	commands that continue the target.
	* cli/cli-script.c (execute_control_command): If we are in 
	the mi, then breakpoint commands should get run under the
	"interpreter execute" command to get the output right.
	* breakpoint.c, breakpoint.h (find_finish_breakpoint): Need
	access to the finish breakpoint so we can make the finish - 
	hit solib breakpoint - continue sequence look like finish.
	* infrun.c (handle_inferior_event): store away the current 
	finish breakpoint if we actually stop for a solib event while
	a finish is queued up.
	(normal_stop): print the function-finished result if we have
	hit the ersatz finish breakpoint.

	* symtab.c (find_line_pc_range): Don't error out if you can't 
	find the source file.  It is not needed to get the linetable 
2001-12-03  James Ingham <>
	Import from Neutrino tools branch:

	* utils.c (make_my_cleanup): Add a guard for a null cleanup
	function.  I have one bug report that this had happened, but I
	can't get it to repeat.  This will hopefully help catch the bug...
       * ui-file.c (fputs_unfiltered): Don't pass null buffers to the
       lower layers of the ui_file code.

       * varobj.c (varobj_create): Remember to release the "type" value
       from the value chain if we make a varobj that we can't resolve
       immediately.  Otherwise we will get a double free.

       * symtab.c (in_prologue): The check for metrowerks_stepping and NO
       metrowerks function range caused unnecessary stops.  Remove it.
       * breakpoint.c (print_one_breakpoint): Print the address string of
       an unset future breakpoint.  This was coming up empty before the
       * infrun.c (handle_inferior_event): Handle nexti when in a
       function prologue by ONLY continuing if we are at the beginning
       the prologue.
	* gdb/infrun.c, gdb/symtab.c, gdb-next/macosx-metrowerks.c: Add
	support for metrowerks step_func_start & step_func_end
	so we can more easily run under MW with no symbols.
2001-11-28  James Ingham  <>

	* inferior.h: restore STARTUP_WITH_SHELL, and add the
        start_with_shell_flag variable to here.
	* infcmd.c: define start_with_shell_flag here, and prime it
	* fork-child.c: remove def'n of start_with_shell_flag from here
	but this is where you can dynamically change it still...

	* ui-out.c (verify_field_alignment): Don't verify the field
	alignment if you are building a table, but not at the table level
	(which is currently fixed at 1.).
	(ui_out_end): If you are building a table, and return to the table
	level you have just finished the current table column, and should
	begin the next.
2001-11-01  Klee Dienes  (

	* Remove objc-exp.y 
	* c-exp.y: Pull Objective-C changes from objc-exp.y.
	* symfile.c (init_filename_language_table): Change ".M" and
	".mm" to language_objcplus.
	* c-typeprint.c: Add test for language_objcplus to test for
	* utils.c: Ditto.
	* symtab.h: Ditto.
	* symtab.c: Ditto.
	* stabsread.c: Ditto.
	* printcmd.c: Ditto.
	* language.c: Ditto.
	* maint.c: Ditto.
	* c-typeprint.c: Ditto.
	* partial-stab.h: Ditto.
	* language.h: Ditto.
	* objc-lang.h: Remove prototypes for objc-parse.y; reformat.
	* objc-lang.c: Add objcplus_language_defn; change parser for
	objc_language_defn to c_parse.
	* eval.c (evaluage_subexp): Remove objc_msgsend_typed; pass
	appropriate values to call_function_by_hand_expecting type

2001-10-31 Jason Molenda (

	* symtab.c (gdb_mangle_name): Merge didn't pull in FSF changes to
	this function.
	(lookup_partial_symbol): Fix language conditional.
	(make_symbol_overload_list):  Move symbol check from here.
	(make_symbol_completion_list): To here, where it was pre-merge.

	* varobj.c: Comment typo.

2001-10-15  Jason Molenda  (

        * symtab.c (lookup_block_symbol): Remove this wrapper function.
        (lookup_block_symbol_helper):  Rename to lookup_block_symbol() as
        it was originally; remove special handling for ObjC which assumes
        that lookup_block_symbol doesn't work correctly for unmangled
        identifiers (i.e. identifiers with spaces in them).

2001-10-12  Jim Ingham  <>

       * valarith.c (value_sub): Don't pass a raw type to
       value_from_pointer, it has to go through check_typedef first.

2001-10-09  James Ingham  <>

       * dbxread.c (process_one_symbol): Use complain, not warn, so
       we don't spam users too much.

2001-10-08  Jason Molenda  (

       * symtab.h (symtab_and_line):  Revert kdienes' patch of 2000-05-22
       and make sal.line a (signed int) again.

2001-10-05  James Ingham  <>

       * dbxread.c (process_one_symbol): Ignore function end stabs when
       we are not currently in a function.  Some linkers neglect to clean
       up properly when coalescing functions.

2001-09-07  Jason Molenda  (

        * symtab.c (lookup_block_symbol):  Break out of linear search
        if we're past the range of possible matches.

2001-08-31  Jason Molenda  (

	* c-valprint.c (c_val_print):  Second call to check_typedef ()
	is no longer necessary.

2001-08-06  James Ingham  <>

	* symtab.c (in_prologue): If the function start address doesn't
	look like a prologue start, try also scanning from the pc.  This
	helps us in some cases where we have bad debug info so the
	function address is off in never-never land.  I have seen this
	happen in PEF binaries where there are some functions with
	traceback tables inlined, but not all.

2001-08-02  James Ingham  <>

	* varobj.c (cplus_real_type_index_for_fake_child_index): New
	function, return the index in the class type for the n'th child of
	one of the varobj fake children.
	(cplus_name_of_child): Use this function rather than just assume 
	the class writer had ordered her variables in a particular order.

	(c_value_of_variable): Make sure you count the number of children
	before reporting it in an Array's value string.

2001-08-01  James Ingham  <>

	* command.c (_initialize_command): The file name completer is more
	appropriate for "shell" than the default completer...

2001-07-09  James Ingham  <>

	* valops.c (value_rtti_type): Check for minsym == NULL BEFORE using it.

2001-07-06  James Ingham  <>

	* wrapper.c (gdb_varobj_get_value): provide a save
        * wrapper.h: declare it.
	* cli-out.c: wrapper.h now requires varobj.h.
	* gdbtypes.c: ditto
	* values.c: ditto
	* varobj.h: ditto
2001-06-21  James Ingham  <>

	* varobj.c (cplus_value_of_child): Just cosmetic - I find the
	added brackets more readable.

2001-06-20  Ira L. Ruben  <>
	* breakpoint.c (parse_breakpoint_sals): Handle case where address
	is NULL and default_breakpoint_valid to set addr_string to "*pc"
	(sal.pc) to avoid warning from breakpoint_re_set_one().

2001-06-15  Ira L. Ruben  <>

	* Update dependencies for breakpoint.o
	* breakpoint.c (set_raw_breakpoint): init new original_type field.
	(create_breakpoints): Handle new original_type argument.
	(break_command_1): Ditto. 
	(do_captured_breakpoint): Pass new original type to create_breakpoints.
	(break_at_finish_at_depth_command_1): pass original type to
	(break_at_finish_command_1): Ditto.
	(break_command): Ditto.
	(future_break_command_1): Ditto.
	(tbreak_command): Ditto.
	(hbreak_command): Ditto.
	(thbreak_command): Ditto.
	(stopin_command): Ditto.
	(stopat_command): Ditto.
	(watch_command_1): Handle new original_type argument.
	(watch_command): Pass new original type to watch_command_1.
	(rwatch_command_wrapper): Ditto.
	(awatch_command): Ditto.
	(ignore_command): Suppress newline if from_tty is false.
	(write_one_breakpoint): new routine for save_breakpoints_command.
	(save_breakpoints_command): Add save-breakpoints command.
	(_initialize_breakpoint): Define save-breakpoints and its aliases.
	* breakpoint.h (enum bptype): Add new breakpoint types.
	(struct breakpoint): Add field to recore original breakpoint type.
	* main.c (captured_main): Initialize $input_radix and $output_radix.
	These are referenced by a save-breakpoints file to preserve radix
	across the breakpoint restoration.
	* tracepoint.c (tracepoint_save_command): Fix fopen error reporting to
	show errno information just like save-breakpoints command.
	* valprint.c (set_input_radix_1): Set $input_radix.
	(set_output_radix_1): Set $output_radix.

2001-06-15  James Ingham  <>

	* infcmd.c (_initialize_infcmd): If the "run" completer is the
	file completer, then the "set args" should be as well.  Make it

2001-06-13  Jim Ingham  <>

	* infcmd.c: Make the completer for run be the file completer.  It
	is very common for file names to be the arguments to programs,
	nothing else really makes sense...

	* valops.c (value_cast): When you are consing up the pointer type
	for a superclass, set the enclosing type as well or all the
	superclass fields will be incorrect.

2001-06-08  James Ingham  <>

	* breakpoint.c (_initialize_breakpoint): Add "break ... if <cond>
	to the documentation for the breakpoint command.

2001-04-17  James Ingham  <>

	* blockframe.c (create_new_frame): move the INIT_EXTRA_FRAME_INFO
	call to BEFORE the find_pc_partial_function.  This ensures that we
	will never get a frame without an extra_info because of an error
	in find_pc_partial_function.

2001-04-09  James Ingham  <>

	* symtab.c (find_line_pc_range): Check that linetable is not null
	before you dereference it.

	* varobj.c (cplus_value_of_child): check that gdb_value_ind does
	not return null.  In the C++ case, gdb_value_ind tries to look up
	the superclass, and sometimes fails miserable.  Protect against

2001-03-12  James Ingham  <>

	* valops.c (value_rtti_type): Remove the attempt to offset to 
	the full type, since that never worked for the hard cases were
	it might be useful, and failed for the easy cases...  NB. This
	code is pretty useless for GCC right now.  But at least this
	renders it harmless.

2001-02-13  James Ingham  <>

	* event-top.c (display_gdb_prompt): Call target_terminal_ours
	before we reinsert the readline callback handler.  This is
	necessary if the inferior dies unexpectedly, and the code doesn't
	clean up.

2001-02-12  James Ingham  <>

	* infrun.c (proceed): set target_executing to 0.  normal_stop
	doesn't do this, and in the non-asynchronous case,
	complete_execution doesn't get called either.

2001-02-05  James Ingham  <>

	* objc-lang.c: If syms is NULL, don't try to dereference it!

2001-01-25  James Ingham  <>

	* infrun.c: Initialize sync_execution to 1 - this is the default
	mode for running gdb...

	* event-top.c (async_enable_stdin): Don't mess with sync_execution
	in this function.  You should not lie about the mode of execution
	just to get the terminal multiplexing to work.  It adds a lot of
	fragility to the code.
        (async_disable_stdin): ditto.
	FIXME: These changes reverse some hacks to get the remote target
	to work with async.  The remote hacks are evil & bad, but these
	changes will have to be revised before we can submit the code
	to the FSF.
	* cli-out.c (cli_interpreter_resume): Initialize the sync_execution to 1 
	when you resume the cli interpreter.  This is the correct value for the
	cli interpreter.

2001-01-24  James Ingham  <>

	* inflow.c (terminal_ours_1): When you are attaching, don't try to
	get the inferior_process_group from the controlling terminal.
	This is almost never right, and will cause ^C not to work.

2001-01-17  James Ingham  <>

	* varobj.c: Add in_scope field to the root structure.
	(new_root_variable): Initialize in_scope.
	(varobj_update): Better track variables going into &
	out of scope.
	(varobj_create): For non-use_selected_frame variables, always
	check whether the variable is in scope.  Evaluation will often
	return true even when the variable is not in scope, but it is

2001-01-10  James Ingham  <>

	* stack.c (print_frame): Add a call to print_frame_more_info_hook
	so other interpreters than the CLI can add info to the stack
	printing without affecting the CLI output.
	* defs.h: Added def'n of print_frame_more_info_hook.
	* top.c: Added declaration of print_frame_more_info_hook.

2001-01-09  James Ingham  <>

	* symtab.c (lookup_symbol_aux): Call lookup_symbol_aux to lookup a
	mangled symbol rather than recursing into lookup_symbol, since this
	will just re-unmangle the name & call lookup_symbol_aux - leading to 
	an infinite recursion.

2000-12-18  James Ingham  <>

	* breakpoint.c (bpstat_do_actions): Force the execution of breakpoint
	commands to be synchronous.  This is a hack to work around the fact
	that asynchronous execution of breakpoint commands doesn't work for
	truely synchronous commands.  The correct fix is for synchronous 
	versions of commands (like "continue" as opposed to "continue&")
	not to return till they have finished execution.  Stay tuned.

	* gdbtypes.c (check_typedef): Make sure check_typedef never creates
	a type structure where the type & the target_type point to the same
	memory.  This was happening when you had a typedef for an incomplete
	type.  This is not the complete fix, since such types should not get
	get created in the first place, but this keeps the error from hanging

2000-12-15  James Ingham  <>

	* varobj.c (varobj_create): Added USE_BLOCK_IN_FRAME which treats
	the "frame" variable as the address of a block structure.  The
	varobj will be bound to that block.  FIXME - need to come up with
	a type-safe interface to this.
	(varobj_get_valid_block): New function, returns the startaddr &
	endaddr for the valid block for a varobj.
	(value_of_root): Check that we are in the local block in which the
	varobj is defined (as opposed to the frame in which it is defined).
	(varobj_pc_in_valid_block_p): New function, returns whether the pc
	in the frame for this varobj is in the block in which this varobj 
	is valid.

2000-12-12  James Ingham  <>

	* breakpoint.c (do_captured_breakpoint): Move test for sals.nelts -
	i.e. "Did we find a breakpoint" AFTER test for "is this a future

2000-12-04  James Ingham  <>

	* main.c (captured_main): The coreargs variable has been quoted,
	so it is no longer a number, and fails the "could be a PID" test.  
	Strip the quotes before the test...

	* top.c (execute_user_command): Set the target to synchronous
	during the execution of user defined commands.  Otherwise the 
	command execution will get out of order.

	* target.c (gdb_set_async_override): New function, overrides the 
	target's can_async method when we really need to ensure that a
	command gets run synchronously...

2000-11-22  James Ingham  <>

	* varobj.c (varobj_get_type_struct): New function, return the
	type structure (as opposed to a printed string) for the varobj.

	* event-top.c (_initialize_event_loop): Don't use the
	cli_command_hook if you are not using the event loop.
	(gdb_setup_readline): Don't muck with gdb_stdout & friends if 
	you are not using the event loop.  These ui_out's don't work
	right in that case.  NB The non-event loop version of gdb should
	fade away at some point...
	(gdb_disable_readline): remove the gdb_stdout & gdb_stderr ui_outs
	when you disable readline.

2000-11-09  James Ingham  <>

	* breakpoint.c (captured_parse_breakpoint_sals): New function, need
	to catch this call in gdb_breakpoint so I can implement future
	break in the mi.
	(do_captured_breakpoint): Add a futureflag, and if it is yes, then
	catch the error, and set a future breakpoint instead.
	* defs.h: Change definition of gdb_breakpoint to match.

2000-11-08  James Ingham  <>

	* interpreter.c: Add an exec_proc to the interpreter structure, so
	you can instruct an interpreter to execute a text string -
	bypassing the UI.
	* cli-out.c (cli_interpreter_exec): New function, implements
	exec'ing a command in a safe way.

	* wrapper.c (safe_execute_command): New function - a catch_errors
	wrapper for execute_command.
	(wrap_execute_command): The wrapped function implementing
	* interpreter.c: Add the ability to set an interpreter into
	"quiet" mode where it doesn't print a startup notice, and
	supresses prompt printing.
	(gdb_interpreter_set_quiet): Sets the quiet flag
	(gdb_interpreter_is_quiet): Returns whether the interp is quiet or
	(gdb_set_interpreter): Don't print interpreter switch banner if we
	are quiet.  
	* cli-out.c (cli_interpreter_display_prompt): Use the quiet flag
	in prompt display.

2000-11-07  James Ingham  <>

	* infrun.c (handle_inferior_event): Add a separate test to handle the case where you
	are nexti'ing in code with NO symbols.  In this case the old code assumed you were 
	always in a function prologue, test if you are not, and stepi correctly...

2000-11-01  James Ingham  <>

	* interpreter.c: New file, implements switchable interpreters
	for gdb.
	* interpreter.h: Ditto.
	* cli-out.c, cli-out.h: Add the interpreter functions.
	* event-loop.c (start_event_loop): Poll the interpreter's event loop
	as well as gdb...
	* event-top.c (gdb_setup_readline, gdb_disable_readline): New functions,
	used by console & mi to grab & relinquish control of the readline input.
	* main.c (captured_main): strsave the interpreter name, since we will
	eventually use it as a set variable.
	* top.c (gdb_init): Use the interpreter mechanism to startup the stdin 
	* mi/mi-cmds.c, mi/mi-cmds.h: Add mi command -interpreter-set.
	* (captured_mi_execute_command): actually return the MI result
	code out of this function.
	* (mi_execute_command): Don't print the prompt if the command return
	* mi/mi-main.c: Add the interpreter functions.
	* mi/mi-main.c (mi_set_interpreter): implements -interpreter-set.
	* mi/mi-main.c (_initialize_mi): This now just registers the mi interpreter.
2000-10-19  James Ingham  <>

	* partial-stab.h (switch): Add the N_BNSYM & N_ENSYM stabs to the stabs list.
	* dbxread.c (process_one_symbol): ditto.

2000-09-22  James Ingham  <>

	* infrun.c (handle_inferior_event): Errors in the call to
	breakpoint_re_set will cause async_enable_stdin to get called from
	the exec_error_cleanup.  So we need to disable stdin again before

2000-09-06  Jim Ingham  <jingham@localhost>

	* exec.c (init_exec_ops): make function not static.  We use it in
	the next nat code.
	* inftarg.c (init_child_ops): ditto

	* config/powerpc/macosx-mh: Move nextstep-nat-cfmthread.o to the
	to the CFM_FILES.
2000-08-09  James Ingham  <>

	* values.c (value_change_enclosing_type): New function.
	* value.h: New function value_change_enclosing_type.
	* valops.c (value_cast): use the value_change_enclosing_type
	function rather than directly setting VALUE_ENCLOSING_TYPE.
	(value_assign): ditto.
	(value_assign): ditto.
	(value_addr): ditto.
	(value_ind): ditto.
	(value_ind): ditto.

	* buildsym.c (finish_block): Add the addresses to the Inner block
	outside outer block complaint even when we know the function name.
	No reason not to provide the info in this case, and it might be