2000-07-26  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-symbol-set.c (impl_add_expression): Return the symbol
	id of the newly added expression.

2000-07-22  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_get_breakpoints): New function.
	(init_libdryad_debugger_corba_class): Added impl_get_breakpoints to
	the epv.

	* gdb-breakpoints.c (all_breakpoint_traverse_func): New function.
	(gdb_breakpoint_get_all): New function.

2000-07-21  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (get_ptype_names): New function that recursively gets
	the subnames from all subclasses of a type.
	(expand_structure): Use get_ptype_names().

2000-07-21  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (get_child_line): New function.  Gets a line
	representing a child variable out of a ptype printout, taking care
	of C++ stuff like access specifiers, statics, etc.
	(read_child_from_ptype): Use get_child_line().
	(gdb_get_locals): Modified to use the "info scope" command rather than
	"info locals".
	(read_type): Support C++ class stuff.

2000-07-21  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_execute): Take and deal with the 
	'args' parameter.
	(impl_restart): Deal with the gdb_run() change.

	* gdb-execution.c (gdb_run): Now takes an "args" parameters.

2000-07-21  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_attach): Don't set the TARGET_EXISTS
	flag here, it will be set in execution_started_cb().
	(impl_unload_corefile): New function.
	(impl_detach): Changed the state check.
	(impl_get_frame): Ditto.
	(impl_get_backtrace): Ditto.
	(impl_execute): Check the state before continuing.
	(impl_load_corefile): Ditto.
	(impl_get_sources): Ditto.
	(impl_get_absolute_source_path): Ditto.
	(impl_get_registers): Ditto.
	(impl_change_frame): Ditto.
	(impl_cont): Ditto.
	(impl_stop): Ditto.
	(impl_restart): Ditto.
	(impl_step_over): Ditto.
	(impl_step_out): Ditto.
	(init_libdryad_debugger_corba_class): Added impl_unload_corefile to
	the epv.
	(execution_starting_cb): Only send the "started" signal if there isn't
	a corefile, and set the TARGET_EXISTS or COREFILE flags appropriately.
	(execution_stopped_cb): Only send the "stopped" signal if there isn't 
	a corefile.
	(execution_running_cb): Only send the "running" signal if there isn't
	a corefile.

	* gdb-execution.c (gdb_attach): Check the state before allocating
	the command string.
	(gdb_core): ditto.
	(gdb_unload_core): New function.

2000-07-04  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_load_corefile): Raise the 
	InvalidCorefile exception.

2000-07-04  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_load_corefile): Implemented.

	* gdb-instance.c (start_gdb): Initialize inst->corefile_loaded.

	* gdb-execution.c (gdb_load_core): New function.

2000-07-02  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (execution_stopped_cb): Put the frame_change
	event on the queue *after* the stopped event.
	(execution_frame_change_cb): Don't queue the frame_change event here,
	just save the frame id so execution_stopped_cb can queue it.

2000-07-01  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_load_binary): Fixed up the manipulation
	of the GDF_Debugger_BINARY_LOADED flag.

2000-07-01  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_set_watchpoint): New function.
	(impl_get_breakpoint_info): Reflect GDF::Breakpoint change, deal
	with NULL values.
	(init_libdryad_debugger_corba_class): Include impl_set_watchpoint() in
	the epv.

	* gdb-stack.c (read_frame): Removed a g_print() call.

	* gdb-breakpoints.c (gdb_breakpoint_set_watchpoint): New function.
	(read_new_watchpoint): New function.
	(read_new_breakpoint): Let read_bp_info() issue the command.
	(read_bp_info): Deal with watchpoint data.
	
2000-06-22  Dave Camp  <campd@oit.edu>

	* libdryad-debugger.oafinfo: Added a "supported_mime_types" 
	oaf_attribute.

2000-06-21  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-symbol-set.c (impl_get_symbol): Copy the cast_to member.
	(impl_cast): New function.
	(init_libdryad_symbol_set_corba_class): Added impl_cast to the epv.

	* gdb-symbols.c (gdb_cast): New function.
	(update_symbol): New function, with code moved from update_seq().
	(update_seq): Use the new update_symbol() function.
	(grow_seq): Initialize and copy the cast_to member.

2000-06-18  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-symbol-set.c (impl_set_symbol_value): New function.

	* gdf-libdryad-debugger.c (gdf_libdryad_debugger_update_symsets): Moved
	here from update_symsets() and exported.
	(impl_detach): 
	(process_frame_change): 
	(execution_stopped_cb): Reflect update_symsets() name change.

	* gdb-symbols.c (gdb_set_symbol_value): New function.

2000-06-18  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_get_registers): Take a floating_pt
	argument, and pass it to gdb_get_registers().

	* gdb-info.c (gdb_get_registers): Take a floating_pt argument.  If
	the argument is TRUE, use 'info all-registers' instead of 
	'info-registers'

2000-06-18  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (gdb_get_locals): Deal with the slightly different
	output when using "set print elements 1" (there can be a '...' before
	the closing brace).
	(gdb_expand_symbol): Expand array slices.
	(update_seq): Don't try to update an ARRAY_SLICE symbol.
	(read_type): Fixed the ptype parsing.
	(expand_array): Use expand_slice().
	(expand_array_slice): New function.
	(add_slice): New function.
	(expand_slice): New function.

	* gdb-instance.c (start_gdb): Execute "set print elements 1", to 
	drastically reduce the amount of output "info locals" prints when
	dealing with large arrays.
	
2000-06-18  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (gdb_expand_symbol): Call expand_array().
	(read_type): Use ptype instead of whatis, because ptype resolves
	typedefs.
	(read_value): Set value to {...} with structs and [...] with arrays.
	(expand_array): New function.

2000-06-17  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_get_backtrace): Oops.  Replace ==
	with != when making sure the target exists.

2000-06-17  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_get_state): Different return type.
	(impl_load_binary): Set the BINARY_LOADED flag.
	(impl_unload_binary): Unset the BINARY_LOADED flag.
	(impl__get_binary_loaded): Removed (along with anne's "witty remark").
	(impl_attach): Set the ATTACHED and TARGET_EXISTS flags.
	(impl_detach): New function.
	(execution_running_cb): Check the TARGET_EXISTS flag.
	(init_libdryad_debugger_corba_class): Added impl_detach to the epv,
	removed impl__get_binary_loaded.
	(execution_starting_cb): Set the TARGET_EXISTS flag.
	(execution_running_cb): Set the TARGET_EXECUTING flag.
	(execution_stopped_cb): Unset the TARGET_EXECUTING flag, and on exit
	unset the TARGET_EXISTS flag.  Also update the symsets on exit.
	(execution_killed_cb): Unset the TARGET_EXECUTING flag.

2000-06-16  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_attach): Set exceptions on error.

2000-06-15  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_attach): Call gdb_attach().

	* gdb-instance.c (gdb_destroy_instance): if a process is attached, 
	detach it.

	* gdb-execution.c (gdb_attach): New function.
	(gdb_detach): New function.

2000-06-14  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (update_seq): Call read_type().  If the type changed
	emit a symbol_type_changed event and call destroy_children().
	(destroy_children): New function,

	* gdf-libdryad-symbol-set.c (impl_get_symbol): Use CORBA_string_dup()
	on typename.

	* gdb-symbols.c (update_seq): Don't execute an 'output' command.
	(read_child_from_ptype): New function, taken from the code in
	expand_structure.  Support embedded structures.
	(expand_structure): Use read_child_from_ptype().

2000-06-13  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-symbol-set.c (impl_get_symbol): Duplicate the type and
	typename members into the returned symbol.

	* gdb-symbols.c (gdb_get_locals): Deal correctly with arrays of 
	structures.
	(gdb_get_expression): Don't issue the output command here (read_value 
	will deal with that).  Call read_type().
	(update_seq): Don't call check_type().
	(read_type): New function.  Reads the variable type from gdb using
	the "whatis" command, and replaces check_type().
	(read_value): Don't try reading the value if it is a structure, 
	correctly read errors.
	(check_type): removed.
	(expand_structure): Use the 'ptype' gdb command to get children names,
	rather than picking names out of an 'output'.

2000-06-13  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-symbol-set.c (gdf_libdryad_symbol_set_init): #if out
	the unused code.

	* gdb-stack.c (read_frame): Read frame->addr as %lx rather than %p.

	* gdb-marshaller_c.awk: Output #include "gdf-marshaller.h"

2000-06-06  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-symbol-set.c (impl_get_symbols): Don't take the 
	get_children parameter, and don't ever return children.
	(impl_get_symbol_children): New function.
	(impl_expand_symbol): Removed. 
	(init_libdryad_symbol_set_corba_class): Reflect idl changes.

	* gdb-symbols.c (gdb_expand_symbol): Do not fire a symbol_expanded
	signal.

2000-06-03  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (gdf_libdryad_debugger_new): Create the
	locals symset object, initialize the symsets list.
	(new_locals): Read the locals into the locals symset.
	(update_symsets): Reflect Debugger/SymbolSet split.
	(impl_allocate_symbol_set): Create a new GdfLibdryadSymbolSet object
	and attach it to the list.
	(init_libdryad_debugger_corba_class): Reflect idl changes.

	* gdb-symbols.c (gdb_get_locals):
	(gdb_expand_symbol): 
	(gdb_update_symbols): 
	(gdb_allocate_symbols): 
	(gdb_add_expression): 
	(read_value): 
	(add_child_expression): 
	(expand_pointer): 
	(expand_structure): Updated to reflect Debugger/SymbolSet split.
	(grow_seq): Moved here from grow_symset, updated to reflect split.
	(init_seq): Moved here from init_symset.
	(add_expression_to_seq): Moved here from add_expression_to_symset.
	(update_seq): Moved here from update_symet.

2000-06-01  Dave Camp  <campd@oit.edu>

	* gdb-execution.c (gdb_stop): Send the proper termination signals,
	and use gdb_execute_command() rather than gdb_post_command().
	(kill_handler): Removed.

2000-05-30  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (gdb_expand_symbol): Don't expand the symbol if it
	has already been expanded.

2000-05-29  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_get_symbol): Implement the 
	return_children semantics.

2000-05-28  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (read_value): Correctly read error messages.

	* gdb-files.c (gdb_unload_file): Fixed the 'file' command invocation.

2000-05-28  Dave Camp  <campd@oit.edu>

	* gdb-files.c (gdb_unload_file): Use the empty 'file' gdb command to
	unload the file.

2000-05-27  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-debugger.c (impl_get_symbol): Set the expandable flag
	of the returned symbol.

	* gdb-symbols.c: Took out old GDF_TRACE() calls.
	(gdb_update_symbols): Send a symbol_changed signal if the symbol's
	"expandable" flag changes.

2000-05-26  Dave Camp  <campd@oit.edu>

	* main.c (start_debugger): Unregister the commander on success to
	allow multiple commanders to run.

2000-05-26  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (expand_structure): took out the set_size modification
	code, as this is now handled by add_child_expression().

2000-05-26  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (grow_symset): s/oldbuf/old_buf/.  oops.

2000-05-24  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (read_value): If a blank string is read, generate an
	error message.
	(read_value): After reading an error-begin annotation, wait for the
	error annotation.
	(expand_pointer): Removed second call to add_child_expression ().
	(expand_structure): Changed to use add_child_expression ().
	(grow_symset): Copy the structure value-by-value rather than using
	memset (I'm pretty sure this isn't necessary, I need to look into it).
	(grow_symset): Changed some variable naming to be easier to read.
	(grow_symset): Use TC_CORBA_sequence_GDF_Symbol rather than 
	TC_GDF_SymbolSet.
	
2000-05-22  Dave Camp  <campd@oit.edu>

	* Makefile.am (EXTRA_DIST): Distribute the .oafinfo file.

2000-05-22  Dave Camp  <campd@oit.edu>

	* main.c (start_commander): Use oaf routines to register the server.
	(main): Initialize oaf.

	* gdf-libdryad-commander.c (update_traverse_func_no_locals): New 
	function.
	(update_symsets): Use update_traverse_func_no_locals if include_locals
	is FALSE.
	(process_frame_change): Call update_symsets().
	(execution_stopped_cb): Don't call update_symsets() here on a frame
	change (it will be called in proces_frame_change())

	* gdb-symbols.c (gdb_get_locals): Mostly rewritten to use 
	gdb_add_expression() to add symbols to the symset.
	(gdb_expand_symbol): Added the GDF_TYPE_STRUCT case.
	(gdb_expand_symbol): Explicitly add to the NULL list instead of using
	the fact that args is NULL.
	(gdb_add_expression): Removed some obsolete checks.
	(check_type): Check for structure variables.
	(add_child_expression): Use add expression to add the child.
	(expand_structure): New function.
	(init_symset): Initially set _release to TRUE.
	(grow_symset): Set _release to FALSE when the symset is grown.
	(grow_symset): copy the values.

	* Makefile.am: Install libdryad-commander.oaf, use OAF_CFLAGS 
	and OAF_LIBS.

2000-04-26  Dave Camp  <campd@oit.edu>

	* gdb-symbols.c (init_symset): Start with a _maximum of 0 elements 
	and a NULL buffer.
	(grow_symset): No longer takes a factor to multiply buffer size by, 
	but an amount to grow it by.
	(gdb_get_locals): 
	(gdb_add_expression): 
	(add_child_expression): Reflect grow_symset() change.

2000-04-26  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_expand_symbol): Don't send a
	symbol_set_changed event.

	* gdb-symbols.c (gdb_expand_symbol): Send a symbol_expanded event.

2000-04-26  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_get_registers): Call
	CORBA_sequence_set_release() on the return value.
	(impl_get_backtrace): Ditto.

	* gdb-symbols.c (init_symset): Use the correct buffer allocation 
	function, and don't bother zeroing the buffers (as it is done
	in the buffer allocation function).
	(grow_symset): Ditto.  Also free the old buffer in a screwy way.

2000-04-26  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_get_sources): Use the correct function
	to allocate the buffer, use the list length to get the buffer length 
	right the first time.
	(impl_get_registers): Ditto.
	(impl_get_backtrace): Ditto.

2000-04-25  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (update_traverse_func): Call 
	gdb_update_symbols() on the symset.
	(new_locals): Let gdb_get_locals() directly manipluate the CORBA
	structures.
	(impl_allocate_symbol_set): Call gdb_allocate_symbols().
	(impl_destroy_symbol_set): Let libdryad manipulate the CORBA 
	structures.
	(impl_get_symbol_set): Reflect changes in the variable handling.
	(impl_add_to_symbol_set): Call gdb_add_expression.
	(impl_get_symbol): Reflect changes in the variable handling.
	(sym_search): Recursively search the CORBA structures instead of a
	GdbSymbol tree.
	(find_sym_by_id): Search the CORBA structures.
	(impl_expand_symbol): Let gdb_expand_symbol() deal with the CORBA
	structures.

	* gdb-symbols.c (gdb_get_locals): 
	(gdb_get_expression): 
	(gdb_expand_symbol): 
	(gdb_update_symbols): 
	(gdb_destroy_symbols): Directly manipulate CORBA data structures.
	(gdb_allocate_symbols): Call init_symset() to allocate the symset.
	(gdb_add_expression): New function.
	(add_child_expression): New function.
	(expand_pointer): Use add_child_expression() to add the dereferenced
	pointer.
	(init_symset): New function.

2000-04-18  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_expand_symbol): Emit a 
	"symbol_set_changed" event (even though this isn't right yet).

	* gdb-symbols.c (gdb_get_locals): Removed debugging code.

2000-04-18  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (update_sym_func): Moved some of the
	update_symset() code here.
	(update_symset): Use g_node_traverse() to update the variable tree.
	(fill_corba_syms_level): Start with cur == syms rather than 
	syms->children.
	(fill_corba_syms_level): Set the symbol data to the current corba
	symbol.
	(fill_corba_syms): Call fill_corba_syms_level() with 
	symset->syms->children rather than symset->syms.
	(impl_get_symbol): Lookup the symbol id in the tree rather than 
	assuming it is an index into the toplevel symbol set.

	* gdb-symbols.c (gdb_get_locals): For testing purposes, expand any
	pointers.

2000-04-18  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (fill_corba_syms_level): Moved here from
	fill_symset().  Changed to properly handles variable trees.
	(fill_corba_syms): New function.
	(new_locals): 
	(impl_allocate_symbol_set): 
	(impl_add_to_symbol_set): 
	(impl_expand_symbol): Call fill_corba_syms() rather than fill_symset().

2000-04-18  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c: Took the two GTrees and merged them into
	a single tree with each node containing a pointer to the 
	different sets.
	(fill_symset): Fill in the children member of the GDF_SymbolSet
	with an empty value.
	(sym_search): New function.
	(find_sym_by_id): New function.
	(impl_expand_symbol): New function.
	(init_libdryad_commander_corba_class): Add impl_expand_symbol to the
	epv.

	* gdb-symbols.c (gdb_expand_symbol): New function.
	(gdb_get_locals): Call check_type() rather than check_expandable().
	(gdb_get_expression): Ditto.
	(check_type): Moved here from check_expandable().  Also set the
	sym->type value here.

2000-04-17  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (fill_symset): Use the GdbSymbol struct
	to initalize the GDF_Symbol's expandable and expanded members.

	* gdb-symbols.c (gdb_get_locals): Check for expandable symbols.
	(gdb_get_expression): Ditto.
	(check_expandable): New function.

2000-04-17  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (execution_exited_signal_cb): New function.
	(connect_signals): Connect to the "execution-exited-signal" signal.

	* gdb-signal.c (signals): Added an "execution-exited-signal" signal.

	* gdb-execution.c (signalled): Handle this by sending an
	"execution-exited-signal" signal rather than calling signal_handler().
	
2000-04-17  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (execution_signal_received_cb): New 
	function.
	(connect_signals): Connect to the "execution-signal-received" 
	signal.

2000-04-12  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_get_backtrace): Fixed the check
	for a running commander.
	(impl_get_backtrace): Check for NULL filenames and functions in
	the frames when calling CORBA_string_duplicate().

2000-04-12  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c: Removed a bunch of GDF_TRACE() calls.
	(update_symsets): Take a include_locals parameter.  Nothing is done
	with this yet, but it will be soon.
	(execution_stopped_cb): Call update_symsets() on a frame change.
	Pass FALSE to update_symsets() on a frame change, TRUE otherwise.

	* gdb-symbols.c (gdb_get_expression): Use read_value() to read the
	value.
	(update_node): Use read_value().
	(read_value): New function.

	* gdf-libdryad-commander.c (impl_get_symbol): Use set rather than
	GDF_SYMBOL_SET_LOCALS.  This bug sucked.

2000-04-11  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (update_symset): Use set_id rather than
	GDF_SYMBOL_SET_LOCALS.
	(update_traverse_func): New function.
	(update_symsets): New function.
	(impl_allocate_symbol_set): Implemented.
	(impl_destroy_symbol_set): New function.
	(impl_add_to_symbol_set): Implemented.
	(init_libdryad_commander_corba_class): Added impl_destroy_symbol_set()
	to the epv.
	(execution_stopped_cb): Update all the symsets rather than just the
	locals.

	* gdb-symbols.c (gdb_get_expression): New function.

2000-04-09  Dave Camp  <campd@oit.edu>

	* gdb-stack.c (gdb_change_frame): Took out some debugging g_print()
	statements.

	* gdf-libdryad-commander.c (update_symset): Took out a like that
	always set the first symbol's changed flag to TRUE.  This was there
	for debugging, but is no longer needed and actually caused a segfault
	when there were no local variables.

2000-04-09  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c: Got rid of the stopped_handlers stuff,
	it wasn't working all that well.
	(impl_get_frame): Act correctly if the program is not running.
	(impl_get_backtrace): Ditto.
	(new_locals): Don't queue a stopped_handler.
	(execution_stopped_cb): Only process frame changes and symset updates
	if the program has not exited.

	* gdb-stack.c (gdb_destroy_frame): Only free frame->function and
	frame->file if they are not NULL.
	(gdb_change_frame): Removed some debugging messages.
	(read_frame): Initialize the frame's members.

2000-04-07  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (gdf_libdryad_commander_new): Initialize
	the stopped handlers and the symbol sets.
	(impl_change_frame): Call process_frame_change ().
	(update_symset): New function.
	(fill_symset): New function.
	(new_locals): New function.
	(impl_get_symbol_set): Implemented.
	(impl_get_symbol): Implemented.
	(process_frame_change): New function.
	(execution_stopped_cb): Call process_stopped_handlers (), and call
	process_Frame_change() if the frame changed during execution.
	(int_cmp): New function.
	(enqueue_stopped_handler): New function.
	(dequeue_stopped_handler): New function.
	(process_stopped_handlers): New function.

	* gdb-symbols.c (gdb_get_locals): Implemented.
	(update_node): New function.
	(gdb_update_symbols): New function.
	(destroy_node): New function.
	(gdb_destroy_symbols): New function.

2000-04-07  Dave Camp  <campd@oit.edu>

	* gdb-communication.c (execute_command): Wait for the post-prompt
	annotation.
	(gdb_execute_command): Ditto.

2000-04-07  Dave Camp  <campd@oit.edu>
	
	* gdb-instance.c (start_gdb): Call gdb_get_ver() to get the version
	from the first line printed.
	(start_gdb): Since gdb 4.18, the pre-prompt and prompt annotations
	have been missing.  Get around this be inserting pre-prompt and
	prompt annotations into the actual prompt if the gdb version is 
	greater than 4.18.
	(start_gdb): Initialize inst->running_command, and use 
	gdb_execute_command() rather than gdb_post_command() to execute the
	"set height 0" command.
	(get_gdb_ver): New function.

2000-03-27  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (gdf_libdryad_commander_new): Initialize 
	the event queue.
	(impl_change_frame): New function.
	(impl_get_frame): Implemented.
	(init_libdryad_commander_corba_class): Put impl_change_frame in the
	epv.
	(flush_event_queue): New function.  Some libdryad signals need to 
	queue their GDF events so that the client can safely interact with 
	the commander.  This function flushes the queue to the event channel.
	(execution_stopped_cb): Queue events rather than pushing them 
	immediately.  Call flush_event_queue, as this is the last signal to
	be sent by libdryad in an execution sequence.
	(execution_source_line_cb): Queue the event rather than pushing it
	onto the event channel.
	(execution_frame_change_cb): New function.
	(connect_signals): Connect to execution-frame-change.

	* gdb-stack.c (gdb_get_stack): Moved the frame reading code into
	read_frame().
	(gdb_get_frame): New function.
	(gdb_count_stack_frames): New function.
	(gdb_change_frame): New function.
	(read_frame): New function.

	* gdb-signal.c (signals): execution-frame-change now has an int
	argument rather than a pointer argument.

	* gdb-execution.c (execution_handler): call frame_begin() with the
	current line.
	(frame_begin): Don't bother reading the whole frame, just the id.

2000-03-26  Dave Camp  <campd@oit.edu>

	* gdb-stack.c: New file.
	(gdb_get_stack): New function.
	(gdb_destroy_stack): New function.
	(gdb_destroy_frame): New function.

	* gdf-libdryad-commander.c (impl_get_backtrace): Implemented.

	* gdb-communication.c: Removed the obsolete gdb_read_and_emit_error()
	function.

2000-03-26  Dave Camp  <campd@oit.edu>

	* gdb-communication.c: Removed the obsolete gdb_force_command()
	function.

	* gdf-libdryad-commander.c: Removed he obsolete info_sources_file_cb()
	function.
	
2000-03-26  Dave Camp  <campd@oit.edu>

	* gdb-signal.c (signals): Removed the stupid source file signals.

	* gdf-libdryad-commander.c (connect_signals): Don't connect to the 
	source file signals.
	(info_sources_file_cb): Removed.
	(impl_get_sources): Use the new gdb_list_sources() interface.

	* gdb-info.c (gdb_list_sources): Use gdb_execute_command(), moved
	the code from list_sources_handler() here.  Now returns a GList* of
	source files instead of using a bunch of stupid signals.
	(gdb_get_full_source_path): Use gdb_execute_command(), moved the code
	from get_path_handler() here.
	(gdb_get_registers): Use gdb_execute_command(), moved the code from 
	registers_handler() here.

2000-03-26  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c: const-correctness all around.
	Got rid of the seperate breakpoints array, as gdb-breakpoints.c now
	takes care of that itself (and an array really wasn't the right data
	structure anyway).
	Removed all breakpoint signal handlers.
	(gdf_libdryad_commander_destroy): Cast the event channel to a bonobo 
	object for the unref call.
	(impl_set_breakpoint): Updated to reflect gdb-breakpoints.c changes.
	(impl_set_breakpoint_function): Ditto.
	(impl_enable_breakpoint): Ditto.
	(impl_disable_breakpoint): Ditto.
	(impl_delete_breakpoint): Ditto.
	(impl_get_breakpoint_info): Ditto.
	(impl_get_symbol_set): Allocate a dummy retval.
	(impl_get_symbol): Ditto, fixed the prototype.
	(connect_signals): Don't connect to any breakpoint-related signals.

	* gdb-signal.c (signals): Removed breakpoint-related signals.

	* gdb-instance.c: Removed gdb_answer_query() and gdb_emit_info(),
	both unused.

	* gdb-breakpoints.c (gdb_breakpoint_set_linenum): const-correctness,
	use gdb_execute_command() instead of gdb_post_command(), call 
	read_new_breakpoint(), and return a pointer to a breakpoint structure.
	(gdb_breakpoint_set_function): Ditto.
	(gdb_breakpoint_get_info): New function.
	(gdb_breakpoint_enable): Use gdb_execute_command() instead of 
	gdb_post_command(), and call read_enable_reponse().
	(gdb_breakpoint_disable): Ditto.
	(gdb_breakpoint_delete): Don't emit a signal, delete it from the tree.
	(destroy_breakpoint): New function.
	(free_func): New function.
	(gdb_breakpoints_destroy): Destroy from the tree rather than the list.
	(int_cmp): New function.
	(add_breakpoint): Add to a binary tree rather than a linked list.  
	Also, now takes a GdbBreakpoint* rather than a breakpoint number.
	(find_breakpoint): Search the tree rather than the list.
	(read_new_breakpoint): Moved here from breakpoint_set_handler().  
	Return the new GdbBreakpoint structure.  Call execute_command() rather
	than post_command(), call read_bp_info() to get the breakpoint 
	information.  
	(read_bp_info): Moved here from breakpoint_info_handler().  Return
	a GdbBreakpoint*.  Allocate the GdbBreakpoint* rather than using
	find_breakpoint.  Expand the filename to the full filename.
	(read_enable_response): New function.

	* gdb-execution.c (gdb_tty_set): const-correctness.

	* gdb-info.c (gdb_get_full_source_path): const-correctness.

	* gdb-files.c (gdb_load_file): const-correctness.

2000-03-25  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (gdf_libdryad_commander_destroy): Unref
	the event channel client.
	(impl_load_binary): Updated to reflect changes in gdb-files.[ch].
	(impl_unload_binary): Ditto.
	(impl_allocate_symbol_set): New function, unimplemented.
	(impl_get_symbol_set): Ditto.
	(impl_add_to_symbol_set): Ditto.
	(impl_get_symbol): Ditto.
	(init_libdryad_commander_corba_class): Add new methods to the epv.

	* gdb-values.[ch]: Removed.

	* gdb-symbols.[ch]: New files.  Will be a rewrite of gdb-values, but
	isn't anything yet.

	* gdb-instance.c (gdb_destroy_instance): Don't call 
	gdb_displays_destroy(), as this function is obsoleted.

	* gdb-files.c (gdb_load_file): Use gdb_execute_command(), return
	a success or failure.
	(gdb_unload_file): Don't send a signal.
	(check_load): Moved here from file_handler.  Just returns TRUE or
	FALSE if successful/unsuccessful, doesn't send signals.

	* gdb-signal.c (signals): Removed the file-loaded and file-unloaded
	signals.
	
	* gdb-communication.c (gdb_execute_command): New function.  Used when
	you don't want to deal with the callbach mechanism used by
	gdb_post_command().

	
2000-01-17  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_get_registers): New function.

	* gdb-info.c (gdb_get_registers): New function.
	(gdb_destroy_register_list): New function.
	(registers_handler): New function.

2000-01-16  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_load_binary): Set the output tty if
	one has been given.
	(impl_set_output_tty): New function.  Implementation of 
	GDF::Commander::set_output_tty().
	(init_libdryad_commander_corba_class): Added impl_set_output_tty
	to the epv.

2000-01-16  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_load_binary): Set the output tty if
	one has been given.

	* gdb-breakpoints.c (breakpoint_info_handler): Deal with the case 
	where field 5 (misc info) contains only a filename/line pair.
	
2000-01-12  Dave Camp  <campd@oit.edu>

	* gdf-libdryad-commander.c (impl_load_binary): Raise an exception
	if an error occurred during load.
	(error_cb): New function.
	(connect_signals): Connect to the 'error' libdryad signal.

	* gdb-files.c (gdb_load_file): Use gdb_force_command() rather than
	gdb_post_commander.

1999-06-21  Dave Camp  <campd@oit.edu>
	* All files: Formatting changes.
	
1999-05-25  Dave Camp  <campd@oit.edu>

	* gdb-values.c (read_value): New parameter, ignore_empty_lines.  In
	most contexts, you need to ignore empty lines (errors are prefixed
	by empty lines).  However in other contexts, you shouldn't skip 
	empty lines.
	(read_display): Call read_value with new parameter.
	(read_structure): Ditto.
	(read_array): Ditto.

1999-05-24  Dave Camp  <campd@oit.edu>

	* gdb-values.c (read_array): Send a "display-repeat" signal instead of
	a bunch of "display" values.

	* gdb-signal.c (signals): New signal - "display-repeat"

	* gdb-marshaller.in: New marshaller - gint gpointer gpointer gint gint.
	

1999-05-24  Dave Camp  <campd@oit.edu>

	* gdb-values.c (read_value): If the value read is blank, don't emit
	a signal.
	(read_array): New function. Handles reading an array.
	(create_child_expression): Add logic to build an array child expr.

1999-05-22  Dave Camp  <campd@oit.edu>

	* gdb-values.c (read_value): If there is an error, emit the error 
	value before returning

1999-05-22  Dave Camp  <campd@oit.edu>

	* gdb-values.c (gdb_displays_destroy): Put the destruction code back.

1999-05-22  Dave Camp  <campd@oit.edu>

	* gdb-values.c: Big restructuring of the file.  Basically, it's all
	a little bit different, and instead of building a tree structure with
	children node, it emits libdryad signals for each value as it comes in,
	with each value containing the parent expression it should be connected
	to.

1999-05-19  Dave Camp  <campd@oit.edu>

	* gdb-values.c (gdb_display_add): Pass data to the handler function
	with a struct that contains the expression and the display data.
	(display_add_handler): Use the struct, pass create_display the
	expression.  Free the struct members (and the struct).
	(read_display): Eat the expression name instead of assigning it.
	(create_display): Assign the expression to the GdbDisplay. 
	(read_value): Deal (half-heartedly, for the moment) with errors
	in the display (like dereferencing an invalid ptr).
	(gdb_displays_destroy): Moved this function around in the source file.
	(locals_handler): If a local is a structure, eat the rest of the 
	structure value.
	(eat_struct): New function.  Helper for locals_handler.

1999-05-19  Dave Camp  <campd@oit.edu>

	* gdb-values.c (read_display): Initialize the is_ptr field of the 
	GdbValue.
	(read_value): If the value is a ptr (determined either in 
	interpret_value or read_structure), create a "not yet dereferenced"
	child value.
	(read_structure): Check if a child value is a pointer, and set the
	is_ptr field appropriately.
	(interpret_value): If the value looks like a pointer type, set the
	is_ptr field.

1999-05-17  Dave Camp  <campd@oit.edu>

	* gdb-values.c (gdb_display_add): New function, replaces gdb_value_get,
	adds a display to GDB's display list.
	(gdb_display_locals): New function, replaces gdb_value_locals.
	(gdb_read_display): New function.  Reads a displayed value.
	(display_add_handler): New function.  Replaces value_get_handler.
	(read_display): New function, worker for gdb_read_display and 
	display_add_handler.
	(create_display): New function, creates a GdbDisplay object.
	(gdb_displays_destroy): New function, destroys the display array.
	(locals_handler): Replaced call to get_value with call to
	gdb_display_add.

	* gdb-signal.c (signals): Removed the "value" and "value-local"
	signals, replaced them with "display" signal.

	* gdb-instance.c (gdb_destroy_instance): Call gdb_displays_destroy.
	(start_gdb): Initialize the display array.

	* gdb-execution.c (execution_handler): Catch the "display-begin" 
	annotation, and call gdb_read_display.

1999-05-16  Dave Camp  <campd@oit.edu>

	* gdb-communication.c (gdb_post_command_full): New function.  Takes
	the code from gdb_post_command, adds a GdbDestroyNotifyFunc arg.
	(gdb_post_command): Call gdb_post_command with a null destroy_notify.

	* gdb-communication.h: Added a destroy_notify field.

	* gdb-values.c (get_value): New function.  Gets a value and emits
	the given signal.  Same as gdb_value_get used to be.
	(gdb_value_get): Use get_value.
	(gdb_value_locals): New function.  Gets the locals for the current 
	stack frame.
	(locals_handler): New function.  Handler for "info locals"

	* gdb-execution.c (frame_begin): Added frame-end annotation to the
	terminating condition.

	* gdb-signal.c (signals): Changed execution-frame to 
	execution-frame-change.

	* gdb-execution.c (frame_begin): Ditto

	
1999-05-16  Dave Camp  <campd@oit.edu>

	* gdb-values.c (destroy_value): Destroy the value tree.

	* gdb-execution.c (frame_begin): Un-#if this function. Change the
	terminating condition to the frame-source-begin annotation.
	(execution_handler): Un-#if the frame-begin handler.

1999-05-16  Dave Camp  <campd@oit.edu>

	* gdb-values.c (read_structure): Now takes the parent expression,
	which it prepends to the child expression.
	(read_value): Now takes the expression bieng read, passing it to
	read_structure.

1999-05-05  Dave Camp  <campd@oit.edu>

	* Started using GNU indent to keep the format consistent.
	* Added gdb-values.[ch]
	* Updated file comments to my oit.edu address.
	* Added .indent.pro (for indent)

1999-04-26  Dave Camp  <dave@davec.dhs.org>

	* gdb-breakpoints.c (gdb_breakpoint_delete): New function.  Removes
	a breakpoint.

	* gdb-signal.c: New signal: breakpoint-delete.

1999-04-23  Dave Camp  <dave@davec.dhs.org>

	* gdb-communication.c (input_callback): If cmd == NULL, wait for the
	prompt, because GDB will sometimes create extraneous prompts, like
	if the process is backgrounded then fg'ed.

1999-04-23  Dave Camp  <dave@davec.dhs.org>
	* process.c (destroy_child_process): Kill and wait for the gdb
	process.

	* gdb-signal.c: New signal - gdb-exited.

	* gdb-instance.h: Added a listener_id field to GdbInstance.

	* gdb-instance.c (gdb_create_instance): Move most of the stuff to 
	start_gdb.
	(start_gdb): New function.  Starts a GdbInstance.
	(gdb_destroy_instance): Emit a gdb-exited signal.

	* gdb-communication.c (gdb_wait_for_prompt): Check for at_prompt
	with an if instead of g_return_if_fail ().

	* process.c (destroy_child_process): Close the files allocated in 
	setup_parent_communication.

	* gdb-communication.c (gdb_start_listener): Save the listener tag.
	(gdb_stop_listener): New function - Removes the listener.

	* gdb-execution.c: Fixed an incorrect prototype.

1999-04-23  Dave Camp  <dave@davec.dhs.org>

	* gdb-execution.c (signal_handler): New function.  Deals with signals.
	(signalled): New function.  Deals with signals that terminate the
	program.  Right now just calls signal_handler.
	(interrupt_process): New function.  Doesn't actually work right now, 
	though.
	(gdb_stop): Call interrupt_process if the program is executed.

	* gdb-communication.c (gdb_read_and_emit_error): Fixed a memory
	leak.

	* gdb-execution.c (execution_handler): Deal with signals as well. 

1999-04-22  Dave Camp  <dave@davec.dhs.org>

	* gdb-breakpoints.c (breakpoint_enable_handler): Delay the signal
	emmission to the end to prevent a deadlock caused when the client
	uses a command that uses gdb_force_comand.
	(breakpoint_disable_handler): Same thing.

1999-04-22  Dave Camp  <dave@davec.dhs.org>

	* gdb-instance.c (gdb_destroy_instance): Call gdb_breakpoints_destroy.

	* gdb-breakpoints.c (breakpoint_info_handler): Got rid of some 
	g_prints.
	(gdb_breakpoints_destroy): New function. Destroys the breakpoint list.
	(add_breakpoint): New function. Adds to the breakpoint list.
	(find_breakpoint): New function. Find a breakpoint in the list.
	(breakpoint_set_handler): Now adds a new breakpoint to the breakpoint
	list.
	(breakpoint_info_handler): Changed it to use/fill an element of the
	breakpoint list instead of a temp GdbBreakpoint variable.
	(gdb_breakpoint_get_file_name): New function.  Gets the filename of a 
	given breakpoint.
	(gdb_breakpoint_get_line_num): Same thing, but gets line number.

1999-04-22  Dave Camp  <dave@davec.dhs.org>

	* gdb-breakpoints.c (breakpoint_disable_handler): Now sends 
	"breakpoint-disable" instead of "breakpoint-enable".  duh.
	(breakpoint_enable_handler): Took out a space that was causing problems
	in a strcmp.

1999-04-22  Dave Camp  <dave@davec.dhs.org>
	
	* Initial import.

