2001-11-01  James Ingham  <jingham@inghji.apple.com>

	* ppc-tdep.c (ppc_fast_show_stack_helper): Move most of the
	functionality into this function, and set it as the
	FAST_COUNT_STACK_DEPTH function, which is used in
	mi_cmd_info_stack_depth.
	* tm-ppc.h: Add define for FAST_COUNT_STACK_DEPTH
	
2001-10-31  James Ingham  <jingham@inghji.apple.com>

	* ppc-tdep.c (ppc_fast_show_stack): New function.  Run up the
	stack and return pc & fp for each frame, and a frame count.  Since
	this doesn't build up the frame cache, it is much faster.
	(ppc_frame_find_pc): We were looking in the wrong place for the
	frame stored PC for signal frames.

2001-10-23  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld.c (next_dyld_update): If you have turned off
	cfm with the inferior-auto-start-cfm variable, then don't call
	update-cfm when you update the libraries.

2001-10-17  James Ingham  <jingham@inghji.apple.com>

	* ppc-tdep.c (ppc_frame_find_pc): Actually return the signal frame
	value. Dopey bug...
	(ppc_frame_saved_pc_after_call): remove spurious warning.  This is
	always supposed to return the link register, and looking for the
	frame saved value is not relevant.
	(ppc_frame_chain_valid): Guard the call that reads the stack from
	errors.  Callers don't expect ppc_frame_chain_valid to error out,
	but it can if the stack is mauled so that the fp is an unreadable
	address.

	* ppc-frameinfo.h: define safe_read_memory_unsigned_integer, so
	that ppc-tdep can use is.  
	
	* ppc-frameinfo.c (ppc_parse_instructions): Don't assume that the
	pic base will use register 31.  The dyld stub code uses 11, for
	instance.

2001-10-02  Jim Ingham (jingham@apple.com) and Jason Molenda (jmolenda@apple.com)

	* nextstep-nat-inferior.c (next_fetch_event):  Accept a third
	type of timeout:  Check for an event to read, but don't block if
	there's nothing there.
	(next_process_events, next_child_resume):  Update callers.

2001-08-06  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (safe_read_memory_unsigned_integer): The wrapped
	function has to return a value, or bad things happen...
	(ppc_frame_cache_properties): pass the function_end as the stop
	for the parsing, not the pc.  This way we can correctly parse the
	prologue & figure out where we are EVEN IF the pc is in the
	prologue.

2001-08-03  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld-info.c (dyld_entry_info): Check for 
	e->loaded_name not null before passing to strrchr.

2001-08-02  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld.c (_initialize_nextstep_nat_dyld): fix up doc strings.
	(next_init_dyld): Add a missing check for the ofile being NULL.

2001-07-31  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld-process.c: The dyld code doesn't own the
	objfile for the executable.  The generic gdb code keeps a pointer
	to this through the symfile_objfile pointer.  So let the generic
	code handle the lifetime of the executable objfile.

2001-07-27  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (safe_read_memory_unsigned_integer): New
	function, safe version of read_memory_unsigned_int.
	(wrap_read_memory_unsigned_integer): This is the wrapper function.
	(ppc_parse_instructions): catch errors from
	read_memory_unsigned_integer, this gives us a much better chance
	of cleaning up from cases where the pc is off in unreadable
	memory.

2001-06-21  Klee Dienes  <kdienes@localhost>

	* nextstep-nat-dyld.c (section_info_helper): protect the CFM
	section of the code with #if WITH_CFM .

2001-06-14  James Ingham  <jingham@gdbrulez.apple.com>

        * ppc-frameinfo.c (ppc_parse_instructions): properly sign extend
	the instruction offset from the "bl" instruction - the old way
	didn't work for CORE_ADDR = unsigned long long.
	
	* nextstep-nat-dyld-path.c (dyld_resolve_image): check for name
	being null and don't crash.
	* nextstep-nat-dyld-process.c (dyld_resolve_load_flag): Ditto...

2001-06-07  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (ppc_frame_cache_properties): protect against
	the case where we think the lr wasn't saved in a non-leaf
	function.
	* ppc-tdep.c (ppc_frame_find_pc): ditto.

2001-05-18  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (ppc_parse_instructions): Add a fallback if we
	don't recognize ANY valid prologue instructions.  In that case, we
	are just guessing, but guess that the pc is stored on the stack,
	since this is usually the case.

2001-05-15  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld-info.c (dyld_print_shlib_info): use dyld_entry_out to 
	output the path, offset & slide in ui-out'ified form.
	(dyld_entry_string): Use dyld_entry_info.
	(dyld_entry_out): New function, format the path, offset & slide in ui-out.
	(dyld_entry_info): Generic function, returns path, offset & slide in separate
	fields, for use in dyld_entry_string & dyld_entry_out.

2001-05-10  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld.c (dyld_print_status_info): ui_out'ify the info 
	messages so we don't spam the mi...

	* nextstep-nat-dyld-info.c (dyld_print_shlib_info): ui_out'ify the
	output from info sharedlibrary.

2001-04-18  Jim Ingham  <jingham@localhost.apple.com>

	* ppc-tdep.c (ppc_get_unsaved_pc): New function.  How to get the
	frame's pc if it hasn't been saved in the frame.
	(ppc_frame_find_pc): Reworked the logic to better handle cases
	where the of the parent frame is in its prologue.
	(ppc_frame_chain_valid): If the frame pointer is null, we are at
	the end of the stack.  Re-enable the code that does this check.
	Klee thinks this might cause trouble somewhere but can't remember
	where, and it is the right thing to do, so...

	* ppc-frameinfo.h: Removed the offset2 field, it was just for use
	IN ppc_parse_instructions.  Added lr_invalid to handle prologues
	that temporarily invalidate the link register.

	* ppc-frameinfo.c (ppc_print_properties): mutatis mutandi for
	changes to the properties structure.
	(ppc_parse_instructions): Add support for the saveFP and saveVec
	gcc prolog setup routines.  Also record WHEN the link register is
	stored in the frame so we can do a better job of backtraces while
	in the prolog.
	(ppc_clear_function_properties): mutatis mutandi for changes to
	the properties structure.

2001-02-21  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld-process.c (dyld_load_library): If you get an
	error in getting the TEXT segment for a shlib, mark the entry as
	invalid.  You can't free it, it wasn't malloc'ed...

2001-01-24  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-inferior.c (next_fetch_task_info): Comment out the call 
	to next_init_dyld_symfile.  This caused gdb to reset shared library
	info when quitting.
	(next_child_stop): New function: don't use child_stop, it sends
	a kill (-pid, SIGINT) which doesn't work on MacOS X unless the inferior
	actually IS a process group leader.  But apps in MacOS X almost never
	are (they are children of the WindowServer).
	
	initialize remote_async_terminal_ours_p to 1 - this reflects truth:
	gdb at startup DOES own the terminal.
	* remote-kdp.c: ditto.

2001-01-22  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (ppc_frame_cache_properties): Check that the
	frame's extra_info is set.

2000-11-07  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (ppc_parse_instructions): If the FIRST instruction of the
	prologue is a bl, we are probably NOT in the prologue.

	* ppc-tdep.c (ppc_frame_find_pc): In the case where we have no symbols, 
	use the instruction parser to tell us whether the return address has
	been put on the stack yet or not.

2000-09-06  Jim Ingham  <jingham@localhost>

	* nextstep-nat-inferior-util.c: add WITH_CFM guards in the
	appropriate places.
	* nextstep-nat-inferior.c: ditto
	* nextstep-nat-inferior.h: ditto.

2000-09-05  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.c (ppc_parse_instructions): Cleanup a comment & remove
	an unused variable.

2000-09-01  James Ingham  <jingham@inghji.apple.com>

	* ppc-frameinfo.h: Added a few comments.

	* ppc-frameinfo.c (ppc_parse_instructions): Detect the
	"save_world" stack setup routine that gcc uses for C++, and set up
	the props structure based on what it does.  NB. This will break if
	gcc changes this routine, but there's not much I can do about
	this...

2000-08-09  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld-path.c (build_suffix_name): new function, find
	full name including the DYLD_IMAGE_SUFFIX.
	(search_for_name_in_path): Pass in the
	suffix that comes from DYLD_IMAGE_SUFFIX, and use in search.
	(get_framework_pathname): pass in flag telling whether to use
	the image suffix, and use it.
	(dyld_resolve_image): use the image suffix in resolving the image 
	path.
	(dyld_init_paths): Initialize the image_suffix from the environment.
	* nextstep-nat-dyld-path.c: Add image_suffix to dyld_path_info struct.

2000-07-20  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-inferior-debug.c: Add fflush to the inferior_stderr.  
	There may be other places where this is needed as well, but we 
	will chase them down as we find them.

	* nextstep-nat-inferior.c: Open the inferior_stderr "w", not
	"w+", so the debugging output will work when gdb is running as
	pipe under another program.

2000-06-23  James Ingham  <jingham@inghji.apple.com>

	* nextstep-nat-dyld-process.c: Take out the call to 
	build_objfile_section_table, since it only screwed up the 
	section table, and had no other purpose...

