ChangeLog-Apple   [plain text]


2006-06-10  Jim Ingham (jingham@apple.com)

	* mi-main.c (mi_cmd_thread_set_pc): Check both old_fun and
	new_fun to make sure they aren't null before testing to see
	whether they are the same.

2003-06-01  Jim Ingham (jingham@apple.com)

	* mi-main.c (mi_cmd_data_assign): Lock the scheduler when we 
	run evaluate expression in case the evaluation calls functions.
	(data_evaluate_expression): ditto.
	
2003-05-13  Jim Ingham (jingham@apple.com)

	* mi-main.c (mi_cmd_thread_set_pc): Set stop_pc to the new value of
	the pc so we will continue over breakpoints properly.

2003-05-06  Jim Ingham (jingham@apple.com)

	* mi-cmd-var.c (prepare_tmp_mi_out): Set up the tmp_mi_out if that
	hasn't been done already (or if someone has switched the mi interpreter).
	(mi_cmd_var_create): Use the tmp_miout to suppress output from varobj_create
	in case the creation calls crash.

2003-05-02  Jason Molenda  (jmolenda@apple.com)

	* mi-main.c (mi_cmd_thread_set_pc): When -thread-set-pc is being
	used to jump from an obsolete function to a new function, update
	the pic base register with a correct value.

2003-05-01  Jim Ingham (jingham@apple.com)

	* mi-cmd-var.c (mi_cmd_var_create): Make the "+" style variable
	actually work.
	(mi_report_var_creation): Report the block start & block end.
	(mi_cmd_var_info_block): Report both line number & address, and use
	ui_out_field_core_addr for the addresses.
	(mi_cmd_var_update): Initialize the tmp_miout if needed.
	(varobj_update_one): Swap in the tmp_miout before running
	varobj_update so we don't dump "reason" messages into the changelist
	if the varobj has a function & the call crashes.

	* mi-main.c (mi_cmd_thread_set_pc): Return the new FP and PC.

2003-04-30  Jim Ingham (jingham@apple.com)

	* mi-main.c (mi_cmd_thread_set_pc): Have to reselect the current
	frame, since flush_cached_frame leaves it NULL, but the register
	printing code throws an internal_error if this is not set.

2003-04-24  Jim Ingham (jingham@apple.com)

	* mi-main.c (mi_cmd_thread_set_pc): Just test that the function name
	matches, not full function symbol, for "moving to another function".
	Fix & Continue moves to a different function with the same name, and we
	don't want an error in that case.

2003-04-23  Jim Ingham (jingham@apple.com)

	* mi-cmd-stack.c (mi_interp_stack_changed_hook): Use
	gdb_interpreter_ui_out instead of grubbing around in
	the interpreter structure directly.
	(mi_interp_frame_changed_hook): Ditto.
	(mi_interp_context_hook): Ditto.

	* mi-main.c (mi_cmd_thread_set_pc): New function, sets the
	pc for a given thread.
	(mi_cmd_thread_select): Pass print arguent to gdb_thread_select.
	* mi-cmds.{c,h}: Add -thread-set-pc.

2003-04-22  Jim Ingham (jingham@apple.com)

	* mi-main.c (route_output_through_mi): New function.
	(output_async_notification): New function.
	(output_control_change_notification): Route these notifications
	through the mi (since the console-quoted may be in force and we don't
	want to end up quoting the notifications.
	(mi_interp_read_one_line_hook): Use output_async_notification.
	(mi_interp_run_command_hook): Ditto.
	(mi_cmd_interpreter_exec): Treat console & console-quoted as the
	same for running the target.

2003-04-17  Jason Molenda  (jmolenda@apple.com)

	* mi-cmd-var.c (mi_cmd_var_evaluate_expression): Only change
	unwindonsignal setting if -u parameter is passed.
	* mi-main.c (mi_cmd_data_evaluate_expression): Ditto.

2003-03-25  Jim Ingham  (jingham@apple.com)

	A final detail from the 2003-03-18 changes. We need to make
	sure that the mi async continuation doesn't blow away - or
	get out of order with - an exec continuation registered by
	another function. The finish continuation is a prime example.
	
	* mi-main.c (captured_mi_execute_command): Changed context to
	parse, since we should call the same variable the same thing if
	possible.
	
	(mi_execute_async_cli_command): The continuation has to be
	registered BEFORE the command is executed to keep the order right.
	If the command doesn't run, then discard it.  Also store the head
	of the cleanup chain so that our continuation will only clean up
	back to there.
	(mi_exec_async_cli_cmd_continuation): ditto.
	(mi_interpreter_exec_continuation): ditto.
	(setup_continuation_arg): manage the cleanup as well.
	
2003-03-18  Jason Molenda  (jmolenda@apple.com)

	* mi-cmds.c (mi_cmds): Add entry for "file-fix-file".

2003-03-18  Jim Ingham  <jingham@apple.com>

	This set of changes adds a feature - mi command timings, and
	reworks how the command token is stored away for asynchronous
	commands - by storing it in the continuation argument rather
	than trying to pass it around in globals behind the command's
	backs.

	* mi-cmds.{c,h}: add administrative bits for mi-enable-timings.
	* mi-main.c (mi_cmd_enable_timings): New function .
	* (mi_command_completes_while_target_executing): New function.
	* (mi_interpreter_exec_bp_cmd): New function.
	* (setup_continuation_arg): New function.
	* (free_continuation_arg): New function.
	* (timestamp): New function.
	* (print_diff_now): New function.
	* (copy_timestamp): New function.
	* (print_diff): New function.
	* (wallclock_diff): New function.
	* (user_diff): New function.
	* (system_diff): New function.
	* (mi_cmd_exec_interrupt): Don't fiddle with the command tokens,
	just print your completion message.
	* (mi_cmd_exec_status): ditto.
	* (mi_cmd_target_select): The rewind & "\n" are taken care of by
	captured_mi_execute_command now.
	* (captured_mi_execute_command): print timing differences.  Also
	handle the rewind & "\n" for MI_CMD_QUIET commands to reduce code
	duplication.
	* (mi_execute_command): remove redundant gdb_flush.
	* (mi_cmd_execute): Handle passing the token & timestamp to the lower
	layers through current_command_ts & current_command_token.
	* (mi_execute_async_cli_command): If the command set the target running
	pass the token and timestamp to the continuation.  Also segregate the
	asyn & non-async cases totally.  They only shared one line - execute_command
	and splitting on that made the code hard to read.
	* (mi_cmd_interpreter_exec): ditto.  Also don't reschedule continuation
	if run from mi_interpreter_exec_bp_cmd.
	* (mi_execute_async_cli_command_continuation): Handle printing the timestamp, also
	if the target is again set running, make a new timestamp and forward
	it to the new continuation.
	* (mi_interpreter_exec_continuation): ditto.
	* (_mi_initialize): Add a gdb "set" variable controling the timing
	so people can turn it on and off in their .gdbinit.
	* mi-parse.h: Define struct mi_timestamp, add it to mi_parse.
	* mi-parse.c(mi_parse_free): Cleanup cmd_timestamp from mi_parse.
	
2003-03-03  Jim Ingham  <jingham@apple.com>

	* mi-cmd-break.c (mi_cmd_break_catch): Implement the -break-catch
	command.
	* mi-cmds.c: Add mi_cmd_break_catch to the commands table.
	* mi-cmds.h: And define the ftype for mi_cmd_break_catch.

2003-02-03  Jim Ingham  <jingham@apple.com>

	* mi-cmd-var.c (mi_report_var_creation): add another argument,
	is_root, and subsume all variable reporting into this function.
	That way we can preserve the old reporting order (and not give
	the testsuite heartburn).

2003-01-23  Jim Ingham   <jingham@apple.com>

	* mi-cmds.c: Add record for exec-status command.
	* mi-cmds.h: Add declaration for mi_cmd_exec_status.
	* mi-main.c (mi_cmd_exec_status): New function, return
	the current state of the inferior.
	(mi_execute_command): Use the return code that the
	command actually returned (args.rc).
	(mi_cmd_execute): Allow exec-status while the inferior
	is running.

2003-01-21  Jim Ingham   <jingham@apple.com>

        * mi-cmd-var.c (mi_report_var_creation): Take out the in_scope
        part, so this will work for both parent & child variables.
        (mi_cmd_var_create): Add back in the in_scope.
        (mi_cmd_var_list_children): Use mi_report_var_creation rather
        than replicating most of the code here.

2002-12-16  Jason Molenda  (jmolenda@apple.com)

	* mi-main.c (mi_command_loop): Take MI version arg, as per the
	current FSF sources.
	(mi0_command_loop, mi1_command_loop, mi2_command_loop): Call
	mi_command_loop() with the correct MI version, as per the FSF srcs.
	(mi_interpreter_resume): Assign the correct MI version command
	loop based on DATA, the stored cookie containing mi_version.

2002-12-12  Klee Dienes  <kdienes@apple.com>

	* mi-cmd-stack.c (mi_cmd_stack_list_frames_lite): Fix typo.

2002-12-11  Klee Dienes  <kdienes@apple.com>

	* mi-cmd-stack.c (mi_cmd_stack_list_frames_lite): Update argument
	parsing.  Pass 'unlimited' for the COUNT_LIMIT to
	FAST_COUNT_STACK_DEPTH.
	(mi_cmd_stack_info_depth): Update to the new call for
	FAST_COUNT_STACK_DEPTH.

2002-12-07  Klee Dienes  <kdienes@apple.com>

	* mi-cmd-stack.c (mi_cmd_stack_list_frames_lite): Replace
	FRAME_FP with get_frame_base.

2002-11-21  Klee Dienes  <kdienes@apple.com>

	* mi-main.c (miunspec_interp): Contains what used to be mi_interp.
	(mi_interp) Renamed to miunspec_interp.  mi_interp is now a
	generic pointer that points to the MI interpreter being used
	during an MI context callback.
	(_initialize_main): Create miunspec_interp.  Set the MI value for
	mi2_interp to '2'.
	(mi_cmd_interpreter_exec): Set mi_interp to the current MI
	interpreter for the duration of the inferior-exec call.

2002-10-30  Jim Ingham   <jingham@apple.com>

	Changes to allow varobjs to follow the C++ dynamic type.
	
	* mi-cmd-var.c (mi_report_var_creation, mi_var_list_children):
	report dynamic_type.
	* (varobj_update_one): Handle the case where a child changes its
	dynamic type.  Report this, and delete the children.  Also use the
	new varobj_update interface.

	Other little cleanups:
	
	* mi-cmd-var.c (mi_report_var_creation, mi_var_list_children,
	mi_var_info_type): free the type strings, these are malloc'ed
	copies that we are handed, these are ui_file_xstrdup'ed, and must
	be freed.
	
	* (mi_cmd_var_list_children): Handle the case of no arguments (used
	to crash).
	
2002-10-30  Klee Dienes <kdienes@apple.com>

	* mi-main.c (mi_cmd_exec_interrupt): Replace call to
	interrupt_target_command with an explicit SIGINT to the inferior
	(this seems a bit hackish, but just code that was accidentally
	misplaced in a source merge, so for now I'm just re-adding it
	as-is).

2002-10-25  Jason Molenda  (jmolenda@apple.com)

	* mi-cmd-var.c (mi_cmd_var_list_children): CHILDREN is a list,
	not a tuple.
	(mi_cmd_var_update): CHANGELIST is a list, not a tuple (this is a
	mi2 vs mi1 difference at the FSF, but I don't want to waste time
	supporting the broken mi1 behavior locally).
	(varobj_update_one): VAROBJ is a named tuple, not an anonymous one
	like the FSF.

	* mi-cmd-stack.c (print_syms_for_block): Each
	variable/varobj/variable+value are printed in their own
	anonymous tuples (not a list).

	* mi-cmd-disas.c (mi_cmd_disassemble): Hack around broken find_line_pc
	replacement.
	
2002-10-24  Jason Molenda  (jmolenda@apple.com)

	* mi-cmd-stack.c (mi_cmd_stack_info_depth): Pass non-zero limit to
	FAST_COUNT_STACK_DEPTH to indicate a specified limit, or 0 for 
	unlimited.

2002-10-17  Jason Molenda  (jmolenda@apple.com)

	* mi-cmd-var.c (mi_cmd_var_update): Remove duplicated "changelist"
	initializer.

2002-10-14  Klee Dienes <kdienes@apple.com>

	* mi-out.c (mi_table_begin): Re-add support for mi0.
	(mi_table_body): Ditto.
	(mi_table_end): Ditto.
	(mi_table_header): Ditto.
	(mi_open): Ditto.
	(mi_close): Ditto.
	
2002-07-16  Jim Ingham <jingham@apple.com>

	* mi-cmd-stack.c (mi_cmd_stack_list_frames): Convert to use the
	new version of the FAST_COUNT_STACK_DEPTH, and unify frame
	printing in mi_print_frame_info_lite.
	(mi_cmd_stack_info_depth): Convert to use new version of
	FAST_COUNT_STACK_DEPTH.
	(mi_print_frame_info_lite): New function, standard printer for the
	list frames & list frames lite commands.
	
2002-06-10  Jim Ingham <jingham@apple.com>

	* mi-cmd-stack.c (list_args_or_locals): endaddr should be a
	CORE_ADDR.
      
2002-06-07  Jim Ingham <jingham@apple.com>

	* mi-out.c: Add the mi versions of notify_begin and notify_end.

2002-05-30  Rab Hagy <rhagy@apple.com>

	* mi-main.c (mi_verify_command): clean up output * mi-cmd-var.c:
	added "unsigned" format specification
      
2002-04-24  James Ingham <jingham@apple.com>

	* mi-cmd-var.c (mi_report_var_creation): Use varobj_in_scope_p to
	figure out whether a variable is in scope.

2002-04-17  James Ingham <jingham@apple.com>

	* mi-cmd-var.c: Mutatis mutandi for new block parameter to
	varobj_create.
	* mi_cmd_stack.c: ditto.

2002-04-17  James Ingham <jingham@apple.com>

	* mi-var-cmd.c (mi_cmd_var_update): use
	make_cleanup_ui_out_tuple_begin_end to start the list, so we can
	clean up on error.

	* mi-cmd-stack.c (print_syms_for_block): Move the start of the
	list for the create_varobj case till after we have created the
	varobj, so we can handle errors in the creation better.
	
2002-04-15  James Ingham <jingham@apple.com>

	mi-cmd-var.c (print_typecode): The type might be null.  Return UNDEF
	in this case.

2002-04-11  James Ingham <jingham@apple.com>

	mi-cmds.c: Add exec-metrowerk-step command
	mi-cmds.h: Add the declaration of mi_cmd_exec_metrowerks_next.
	mi-main.c (mi_cmd_exec_metrowerks_next): New function, routes
	through to metrowerks_next...

2002-03-28  James Ingham <jingham@apple.com>

	* mi-cmds.h: Added def'n of mi_cmd_var_info_path_expression.
	* mi-cmds.c: Added var-info-path-expression to command list.
	* mi-cmd-var.c (mi_cmd_var_info_path_expression) New function,
	the MI interface to varobj_get_path_expression.

2002-03-05  James Ingham <jingham@apple.com>
	
	* mi-main.c (mi_cmd_data_evaluate_expression): Add "-u" flag to this
	command - sets unwindonsignal for the evaluation.

2002-01-31 James Ingham <jingham@inghji.apple.com>
	* mi-main.c (mi_create_interpreter): Dopey bug, actually return
	the new interpreter!

2001-01-29  James Ingham <jingham@inghji.apple.com>
	* mi-main.c (mi_create_interpreter): Added function to clean up
	creating mi0 & mi1 interpreters.  Also stick the mi_version in
	the client data field in case we need it.
	* mi_command_loop: get the ui_out from the interpreter, rather
	than making a new one.

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

	* mi-main.c (mi_exec_async_cli_cmd_continuation): rearrange
	how we output status & run the breakpoint commands so the
	output makes more sense if the breakpoint command continues
	the inferior.
	(mi_interpreter_exec_continuation): ditto

	* mi-cmd-stack.c (mi_cmd_stack_info_depth): use the
        FAST_COUNT_STACK_DEPTH function if it is defined.

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

	* mi-cmd-stack.c (mi_cmd_stack_info_depth): if the architecture
	has a FAST_COUNT_STACK_DEPTH macro defined, use it.  This counts
	the stack without building up the frame caches.

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

	* mi-main.c (mi_exec_async_cli_cmd_continuation): Need to call
	bpstat_do_actions in the async_cli_cmd continuation, so that
	breakpoint commands will get tripped if the mi commands are used
	to start the inferior.

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

	* mi-cmd-stack.c (print_syms_for_block): use safe varobj_get_value
	so you don't mess up the stack printing if there is an error in
	the printing the value of the varobj.

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

	FIXME: This is a hack for PB.  Change this back when we
	get PB to run the target asynchronously.
	* mi-main.c (mi_interpreter_resume): Set the default execution
	mode to async for the mi.

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

	* mi-cmd-var.c (varobj_update_one): Handle the out of scope
	return from varobj_update.

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

	* mi-cmd-stack.c (mi_print_frame_more_info): New function - adds
	the directory in which the file is found to the stack output.
	* mi-main.c (mi_interpreter_resume): initialize the
	print_frame_more_info hook.

2000-12-15  James Ingham  <jingham@inghji.apple.com>

	* mi-cmd-var.c (mi_cmd_var_info_block): New function, implements
	the new mi command var-info-block - reporting the valid block for
	a varobj.
	(mi_report_var_creation): New function, standardize the mi output 
	for varobj creation.  Add the in_scope field to the output.
	(mi_cmd_var_list_children): Added a SHOW_VALUE argument to add the
	variable value to the output of var-list-children.
	* mi-cmds.c, mi-cmds.h: add the new command var-info-block.

	* mi-cmd-stack.c (list_args_or_locals): extend to create the
	varobj's for the args or locals and return those as part of the
	result.  Also add a flag to list locals for ALL blocks in the
	current function.
	(print_syms_for_block): This is where the work to implement the 
	varobj creation is done.
	(mi_cmd_stack_list_args): Change the argument parsing to accept the
	SHOW_VALUE argument = 2, which means create the varobj as well.
	(mi_cmd_stack_list_locals): Add the ALL_BLOCKS parameter, and 
	give the same meaning to SHOW_VALUE as for stack_list_args.
	
2000-11-22  James Ingham  <jingham@inghji.apple.com>

	* mi-cmd-var.c (varobj_update_one): print out the stringified typecode
	if the type has changed.

	* mi-main.c (mi_exec_async_cli_cmd_continuation): Do a gdb_flush
	after continuation output, otherwise this won't show up when
	you are not using a line-buffered device.

	* mi-cmd-var.c (mi_cmd_var_create): print out a stringified
	version of the typecode as well.
	(print_typecode): New function - stringifies the enum typecode.
	(mi_cmd_var_update): Allow this to take a list of varobj's to update.
	(varobj_update_one): Output the varobj's as a list of lists, where 
	each varobj gets its own label.  This makes the output easier to 
	parse.
	
	* mi-cmd-stack.c (mi_cmd_stack_list_locals): Allow ALL_BLOCKS flag,
	and change use of list_args_or_locals accordingly.
	(mi_cmd_stack_list_args): Add new argument for 
	list_args_or_locals.
	(list_args_or_locals): Add a mode which searches all lexical blocks
	in the current function for locals and lists them all.

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

	* mi-cmd-break.c (mi_cmd_break_insert): Add a "-f" flag to set a
	future breakpoint.

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

	* mi-cmds.c, mi-cmds.h: Add "interpreter-exec" to the command set.
	* mi-main.c (mi_cmd_interpreter_exec): execute a command in a given 
	interpreter.