Mon Dec 21 14:12:14 1998 Keith Seitz * manage.tcl (manage_create): Set window geometry after window is created. * prefs.tcl (pref_save): Save out preferences for memory window, too. Thu Dec 17 08:54:37 1998 Keith Seitz * browser.tcl (fill_source): Strip off any function args which could arise from C++ function names. (search): Be careful of C++ functions with spaces in the name returned from gdb_search. Tue Dec 15 13:24:42 1998 Keith Seitz * prefs.tcl (escape_value, unescape_value): New procs to escape equal signs in preference values. (pref_read): Use unescape_value whenever prefs are read. (pref_save): Use escape_value whenever prefs are saved.. Tue Dec 15 11:07:01 1998 Keith Seitz * process.tcl (build_win): Do not export the listbox's selection as the X selection so that multiple listboxes can have selections highlighted at the same time. * stack.tcl (build_win): Ditto. Mon Dec 14 15:53:38 1998 Keith Seitz * watch.tcl (update): Catch errors to getLocals, which could error if no symbol table is loaded. * locals.tcl (update): Ditto. 1998-11-17 Fernando Nasser * kod.tcl: fix command spec for listbox. 1998-11-13 Martin M. Hunt * srctextwin.tcl (bp): Pass "asm" argument to do_bp. (do_bp): Use asm argument to determine whether to check for multiple bps on the same src line. Remove redundant "if" statement. 1998-11-12 Martin M. Hunt * srctextwin.tcl (do_bp): Fix multiple assembly breakpoints mapping to the same line number. Thu Nov 12 15:20:15 1998 Jim Ingham * console.tcl (complete): I added the ability to pass from_tty from gdb_cmd to the underlying commands. Pass 1 when the command is invoked from the console. * interface.tcl (gdbtk_tcl_tstart, gdbtk_tcl_tstop): Run the src window's do_tstop method rather than manipulating the widgets by hand. * src.tcl (build_win): Redo the packing so that the function combobox doesn't push all the other combo-boxes off the screen if it has a very long function name in it. * srcbar.tcl (do_tstop): Added a mode that just changes the GUI, which can be called from console hooks. * srctextwin.tcl: Fixed some bugs I introduced in setting breakpoints in the assembly & mixed mode windows. Dropped the notion of joint breakpoint images for lines that have breakpoints of two separate types. Too fragile. Also added the "dont_change_appearance" flag, used in the continue_to_here method to tell the GUI not to reflect the temporary disabling of all the breakpoints. * toolbar.tcl (insert_buttons): Added a little more error-checking. Wed Nov 11 08:40:04 1998 Fernando Nasser * kod.c: adjusted sizes and packing options of widgets 1998-11-10 Fernando Nasser * main.tcl: small fix to the kod code as requested by the maintainers * kod.tcl: use show kod and info as per spec Mon Nov 9 17:00:45 1998 Fernando Nasser * kod.tcl: New file that implements the Kernel Object Display window * Makefile: added kod.tcl * main.tcl: test for kod support * manage.tcl (manage_init): support for kod * prefs.tcl (pref_save, pref_set_defaults): ibid * scrtextwin.tcl (config_win, do_key): ibid * toolbar.tcl (_load_images, create_window_buttons, create_view_menu): ibid * tclIndex: regen Mon Nov 9 12:09:48 1998 Michael Snyder * actiondlg.tcl: Customize the stack collect string to collect the FP reg plus 64 words of stack mem. This will work for many targets. As noted in earlier comment, we need a way to configure this to the specific target. Wed Nov 4 12:41:42 1998 Jim Ingham * actiondlg.tcl: Get the stack collect string from an instance variable. Need to implement some way to get this from the target settings... * global_pref.tcl (toggle_tracing_mode): Add & remove hooks when you go in and out of tracing mode. Also reset the B1 behavior when you leave tracing mode * interface.tcl (gdbtk_tcl_trace_find_hook): Added the trace find hook, so you can switch the GUI state when the tfind command is used to enter & leave browse mode. * srcbar.tcl (constructor, destructor trace_find_hook): Added the trace_find_hook to the source toolbar, and added the necessary hooks to handle it. * srctextwin.tcl (trace_find_hook): Added a trace find hook to the sourcebar as well. * stack.tcl (update): protect against errors in gdb_stack. Just return "NO STACK" if we couldn't get it. * src_pref.tcl (constructor, cancel): Put all the saved prefs in an array, on cancel, see if any have changed and only rebuild the window if there have been changes. 1998-11-03 Keith Seitz * target.tcl: Add ice target. (GdbLoadPref): Add "after_attaching" preference. (set_saved): Add "after_attaching" preference. (write_saved): Add "after_attaching" preference. (change_target): Add "after_attaching" preference. (build_win): Add "after_attaching" entry to options frame. * main.tcl (set_target_name): Add ice target. (set_target): If an "after_attaching" preference exists, run it. Mon Nov 2 13:24:10 1998 Jim Ingham * bp.tcl (update): The hook function was passing more arguments than this function expected. Mon Nov 2 11:16:10 1998 Jim Ingham * toolbar.tcl: Added Tdump image. Fri Oct 30 17:36:05 1998 Jim Ingham * src.tcl (set_execution_status): Changed status messages, tracing is not the same as async debugging... Fri Oct 30 17:06:31 1998 Jim Ingham * bp.tcl (bp_all): Only remove tracepoints in the tracepoint window, and breakpoints in the breakpoint window. Fri Oct 30 11:22:23 1998 Jim Ingham * actiondlg.tcl: Added special tag "Collect Stack". This still needs to get hooked into the target database to deal with targets that need to do something special to collect the stack. Also moved some repeated code into loops. * main.tcl (source_file): Source in a file of gdb commands. * srcbar.tcl (constructor): Added source file menu entry, and made stack buttons belong to both the Trace & Control classes. * srctextwin.tcl (constructor): One too many separators in the trace trace popup menu. * tclIndex: regenerated. * tfind_args.tcl: Added "tfind frame" * toolbar.tcl (create_button): Allow a button to belong to more than one class. * toolbar.tcl (enable_ui): Eliminate redundant code, and allow a button to belong to more than one class. * toolbar.tcl (create_trace_menu): Added save tracepoints & Tfind frame menu items. * tracedlg.tcl: Added deletion of actions, and fixed a the whiile-stepping combobox callback for the new combobox. * util.tcl (save_trace_commands): new proc. 1998-10-29 Michael Snyder * target.tcl: add /dev/cua0 for Linux. Tue Oct 27 13:46:03 1998 Jim Ingham * Many little bug fixes all over in order to get tracing to work along with normal program control. * toolbar.tcl: Rewrote much of the code here to put commonly used code into functions, and clean up adding menus and buttons. Added the ability to disable particular menu items, not just whole menus. Added the ability to delete and insert buttons on the fly. * srcbar.tcl: Pushed the changes to toolbar.tcl into this file. * srctextwin.tcl: Changed the code dealing with breakpoints and tracepoints to use the text tags more consistently. Use only one set of menus for the whole widget, rather than having a separate set for the SRC+ASM case. Rewrote a lot of the code to separate out the tracing & program control functions. * interface.tcl (gdbtk_tcl_breakpoint): pass more information to the scrtextwin when a breakpoint changes state, so it can do the right thing without having to guess... * tracedlg.tcl (build_win): get the packing right so the window expands correctly. * main.tcl: do_tstop -> tstop, do_tstart -> tstart to avoid confusion with the methods in ScrBar.tcl. * prefs.tcl: Added two new preferences B1_Behavior to control whether B1 sets breakpoints or tracepoints. * src_prefs.tcl: Put in support for the B1_Behavior. * global_prefs.tcl: Put back tracing checkbox. * tdump.tcl: Fixed an incorrect (1 rather than 1.0) text widget line specification. * tfind_args.tcl (build_win): Bind return in the entry to the OK button. Clear the entry field if the Type has changed. * utils.tcl: Added comments for the debug commands. * watch.tcl (build_win): Flash the OK button before invoking it. Wed Oct 28 16:19:57 1998 Martin M. Hunt * srctextwin.tcl: Changed the _map cache to use the variable Cname instead of the kludgy upvar alias. Mon Oct 26 21:08:54 1998 Martin M. Hunt * srctextwin.tcl (motion): Show breakpoint balloons even when not running. (showBPBalloon): Check for null before displaying. Wed Oct 21 10:05:17 1998 Martin M. Hunt * images/kod.gif: Added temporary kernel object display icon. Wed Oct 14 17:30:07 PDT 1998 Jim Ingham * main.tcl (gdbtk_tcl_preloop): Fixed the code to set gdb_exe_name. I seem to have dropped a variable... * main.tcl (_open_file): Make the open file dialog truely modal on windows. Wed Oct 14 14:29:17 1998 Martin M. Hunt * target.tcl: Change default runlist for remote targets to download. (build_win): Add user-defined list of functions for initial breakpoints. * main.tcl (run_executable): Set user-defined initial breakpoints. * prefs.tcl (pref_set_defaults): Define new prefs gdb/load/bp_at_func and gdb/load/bp_func. These are user-defined initial breakpoints. Sat Oct 10 00:21:44 1998 Martin M. Hunt * help/source.html: Add new images, add description of changes to breakpoints and threads support. Fix typos. * help/memory.html: Cleanup and add new information. * help/breakpoint.html: Reformat. * help/images: Add a bunch of new GIFs. 1998-10-08 Keith Seitz * main.tcl (run_executable): Do not call set_exe here, either. (_open_file): Add some comments about using set_exe here instead of in download_it and run_executable. Do not look for main, either, since the file hooks will take care of that. * interface.tcl (gdbtk_tcl_pre_add_symbol): Do not reset the source windows here -- only show the user what is going on. (gdbtk_tcl_post_add_symbol): Force the source windows' file comboboxes to refill, since adding a symbol file may actually expand the debugger's view of the world. (gdbtk_tcl_file_changed): New hook proc. Called by file_changed_hook in symfile.c, this hook will cause the source window to point to main/entry. gdbtk_tcl_exec_file_display actually sets up gdbtk for this. (gdbtk_tcl_exec_file_display): Renamed from gdbtk_tcl_exec_file_changed for clarity. This hook is called from exec_file_display_hook in exec_file_command. This function sets up gdbtk to use a new executable, including resetting the debugger's state and source window(s). See comments in this file for more information. * download.tcl (download_it): Don't call set_exe here and do not touch state variables gdb_target_changed -- run_executable will do it. (In short, make download_it one step closer to only doing the download!) 1998-10-08 Keith Seitz * variables.tcl (UnEdit): Fix quoting problems so that arrays may be inspected/edited. (edit): Ditto. Wed Oct 7 16:03:00 1998 Martin M. Hunt * srctextwin.tcl (reconfig): Fix bindings. Wed Oct 7 13:07:00 1998 Martin M. Hunt * manage.tcl (manage_create): Bind ALL source windows Map and Unmap events. (manage_delete): Small optimization. (manage_iconify): When the last source window is iconified, iconify all the support windows too. When any source window is deiconified, deiconify everything. * src.tcl (destructor): Destroy SrcTextWin too. Tue Oct 6 23:00:08 1998 Martin M. Hunt * src.tcl (set_status): Display only the first line of the message. (build_win): Configure status window to a height of 1. * srcbar.tcl (create_menu_items): Change "Open..." menu item to call _open_file proc. Remove old _open_file method. * main.tcl (run_executable): If the run command fails with a result of "No executable" then call _open_file. (_open_file): New proc. Opens a file requester and sets the executable name to the selected file. * toolbar.tcl (create_menu_items): Add "..." to Source and Global prefs menu item. Mon Oct 5 21:10:30 1998 Jim Ingham * srctextwin.tcl (set_tracepoint): The filename variable changed to current(filename) but this use was not updated. * global_prefs: Added a global preference to turn on the tracing. It only sets the tracing preference, and does not cause gdb to relayout the toolbar yet... * util.tcl: Fixed the comments for the little debug thingie. * util.tcl (auto_step): Added a way to cancel the auto_stepping. This is not currently used, but with this it could be... Mon Oct 5 00:43:11 1998 Martin M. Hunt * srctextwin.tcl (SrcTextWin): Create a threaded image with a color of [pref get gdb/src/thread_fg]. (bind_src_tags): Bind bp_tag and for balloon help on breakpoints. (config_win): A bunch of binding changes to support balloon help breakpoints and setting multiple BPs on a line. Add menu item for thread specific BPs. (reconfig): Similar changes as above. (register_balloon): Remove. (updateBalloon): Cleanup and don't call register_balloon. (do_bp): When a BP is deleted, call gdb_find_bp_at_line() to see if there are any more BPs at the same line number. Add "thread" BP type. (bp_line): Accept an optional list of thread numbers to set BPs on. Loop through the list setting BPs on each thread. (motion): Accept a window and type argument. Call showBPBalloon in type is not "var". (showBPBalloon): New method.Opens a balloon with breakpoint info in it. (showballoon): Accept window parameter. (ask_thread_bp): New. A thread selector dialog. Opens a scrolled listbox with a list of threads and allows the user to multiselect threads to set BPs on. (do_thread_bp): New callback from ask_thread_bp() listbox. * src_pref.tcl: Replace disabled color selector with thread fg selector. Disabled color should probably always be black anyways. * util.tcl (CygScrolledListbox): Temporary simple scrolled listbox. Replace with a better one soon. * prefs.tcl (pref_set_defaults): Set default for thread fg. * bp.tcl (bp_add): For thread BPs, set the button color correctly. * tclIndex: Rebuilt. Fri Oct 2 17:07:32 1998 Jim Ingham * util.tcl (debug namespace): Added helper functions "trace_var", "remove_trace" & "remove_all_traces" which watch a variable, and dump the stack, and its value when it is touched... They are in the "debug" namespace. *tclIndex: regenerate index. Fri Oct 2 14:02:25 1998 Jim Ingham * main.tcl (gdbtk_tcl_preloop): Catch the error when no file is given on the command line. 1998-10-02 Keith Seitz * srcbar.tcl (_open_file): Call SrcWin::point_to_main. (_set_runstop): Catch the stop in case the user aborts a session. * srctextwin.tcl (destructor): New. Remove all previously added hooks. * src.tcl (point_to_main): New function. I got tired of typing the same five lines over and over again. * main.tcl (set_baud): Target baud preferences are stored as [target name]-baud, not [target name]/baud. (run_executable): Call SrcWin::point_to_main. (gdbtk_tcl_preloop): Call SrcWin::point_to_main. * interface.tcl (gdbtk_tcl_pre_add_symbol): Use "update idletasks", not just "update". (gdbtk_tcl_post_add_symbol): Rewrite to have better behavior for symbol files which have been loaded. Use a small hack to work with gdbtk_tcl_exec_file_changed so that we look for main only when a new executable is loaded. (gdbtk_tcl_exec_file_changed): New proc to do some necessary setup when an exec file changes. * tclIndex: Regenerate. Fri Oct 2 11:40:05 1998 Martin M. Hunt * Makefile (TCL): Add modal.tcl. * tclIndex: Rebuilt. 1998-10-02 Keith Seitz * srcbar.tcl (_set_runstop): Catch the stop in case the user aborts a session. Thu Oct 1 18:58:11 1998 Jim Ingham * main.tcl (gdbtk_tcl_preloop): We were using lindex on the return value from info files, but if the directory had a space in it, then the result was not a proper Tcl list, and so the command would fail. Use regexp instead... Thu Oct 1 17:21:26 1998 Jim Ingham * download.tcl (download_it): One more place where we used "Foundry_Debugger" unconditionally... Stamped out. * main.tcl (set_target): Don't put the "Trying to communicate..." message in the window title, put it in the status area, and remember to remove it when you are done. Wed Sep 30 21:32:39 1998 Jim Ingham * srctextwin.tcl (insertBreakTag): There was a bug in the method of inserting break tags. If a tag of the intended type did not already exist, insertBreakTag would not set it. This method is a little less flexible, but actually works for all our uses. Wed Sep 30 19:42:43 1998 Jim Ingham * src.tcl (set_execution_status): When the program has terminated, most stubs detach. Then we need to set gdb_target_changed here so gdb will know to reattack when you press the Run button. * memory.tcl (update_address): We caught the gdb_eval when you give an address expression, but then only trapped the case where you gave an invalid address or non-existant symbol. Trap all the other errors as well... Wed Sep 30 16:55:53 1998 Martin M. Hunt * bp.tcl: Add optional "thread" column and menu items to turn it on and off. * prefs.tcl (pref_set_defaults): Add gdb/bp/show_threads preference used for toggling the display of the thread column in the BP window. Default is 0 (off). 1998-09-28 Keith Seitz * download.tcl (download_it): Don't download if there is no executable... Mon Sep 28 14:23:39 1998 Jim Ingham * modal.tcl: NEW FILE. Had to fix a bug in the dialogs so I made a sub-class: ModalDialog. The bug was that manage.tcl sets the WM_DELETE_WINDOW handler to be "manage delete" of the window, which is wrong for these windows, they need to unpost themselves first. Override this in the post method. * mem_pref.tcl: Subclass & remove the code that went into the ModalDialog class. * target.tcl: ditto. * tclIndex: regenerate for the new class. Fri Sep 25 19:01:32 1998 Jim Ingham * utils.tcl (freeze): Hacked the freeze method so that it comes closer to working on Windows, but it still flashes. Use a post method, like that im mem_prefs.tcl or target.tcl instead. * mem_pref.tcl (post): Added post method, so you can use the Windows EnableWindow call without sending your app into the background when the dialog is dismissed. * target.tcl (post): Added the same method to this class. Really should subclass these. Will do this when we rework the class hierarchy for Itcl3.0. * memory.tcl (create_prefs): Use the new post method. * main.tcl (set_target_name): Use the post method rather than freeze. 1998-09-25 Keith Seitz * main.tcl (set_baud): Baud rates are saved in gdb/load/target-baud, not gdb/load/target/baud. (set_target): Attempt to silently detach before attaching. * target.tcl: Add gdb_target entries for Angel and ARM Remote protocols. 1998-09-18 Keith Seitz * interface.tcl (gdbtk_tcl_post_add_symbol): Force the source window to 'main'; if that fails, let gdb guess based on stop_pc. 1998-09-04 Keith Seitz * srctextwin.tcl (SrcTextWin::destructor): Define and remove previously installed hooks. * browser.tcl (get_selection): Listbox indices start at zero! Clear the selection if the user clicks below the last visible item in the listbox. Thu Sep 3 16:43:43 1998 Jim Ingham * mem_prefs.tcl: Fixed the size & format radiogroups in the memory preferences so that they match the format options being sent to it by the memory window. Also greyed out the format box when float or double is selected. Also made sure we didn't re-enable any disabled widgets in the idle function. Sun Aug 30 00:40:28 1998 Martin M. Hunt * process.tcl: New file. Implement a process/thread selection and display window. * srctextwin.tcl (do_key): Add entry for thread/process window. (config_win): Bind "Thread List" to Control-H. (FillSource): Fix bug when source is not found. * toolbar.tcl (create_menu_items): Add Thread List to menu * manage.tcl (manage_init): Add process window to managed array. * prefs.tcl (pref_save): Add "process" to window types to save. * Makefile: Add process.tcl * tclIndex: Rebuilt 1998-08-28 Keith Seitz * variables.tcl (edit): Format data so that C arrays are not mistaken for tcl commands. (UnEdit): Ditto. Thu Aug 27 14:13:09 1998 Martin M. Hunt * main.tcl (run_executable): If the target is "sim" then the pref "sim-opts" should be treated as target options instead of command line arguments. Wed Aug 26 00:06:11 1998 Martin M. Hunt * src.tcl (mode): Set the mode widget using entryset. (build_win): Use default combobox selectbackground. * srctextwin.tcl (FillMixed): Better error handling. (LoadFIle): Stop harrassing users with worthless dialog boxes. * main.tcl (run_executable): Set args when arguments are given in the target dialog. * helpViewer.tcl (insertHtml): Window may have been closed while waiting for HTMLparse, so catch next commands to prevent error message. * images/stack.gif: Use the image from images2 because it looks better. Tue Aug 25 16:09:02 1998 Martin M. Hunt * src.tcl (build_win): Change fonts on comboboxes to src-font. * global_pref.tcl: Change to new combobox. Tue Aug 25 11:41:43 1998 Martin M. Hunt * srctextwin.tcl (insertBreakTag): Take an index instead of a linenumber. Check for bp_tag and break_tag. (display_breaks): Reset all lines back to break_tag after deleting bp image. Fixes caching bug. (do_bp): Fix up calls to insertBreakTag. Fri Aug 21 12:44:25 1998 Martin M. Hunt * target.tcl (build_win): Remove tix stuff. Set maxheight of comboboxes to 10. Remove all code to count elements in comboboxes because the new one does it for us. (fill_rates): Remove combobox height configure code. (fill_targets): Same. * src.tcl (build_win): Change combobox -height to -maxheight for combobox 1.05. (name, goto_func): Use combobox entryset instead of SetSilent. (SetSilent): Deleted. * srctextwin.tcl (FillSource): Fix change mode call when no source is found. 1998-08-20 Keith Seitz * srctextwin.tcl (print): New method. Moved from src.tcl. * srcbar.tcl (create_menu_items): Add page setup for non-ide again.. * src.tcl (build_win): Fix balloon help for new comboboxes. (print): Move guts to srctextwin and invoke that method. * target.tcl: Remove protected variable tcpmode. Add "options" member for sim and exec targets. For sim, this is options to pass to the simulator; for exec, command line arguments. (build_win): Replace tix comboboxes with one from libgui. (set_saved): Add target-options when appropriate. (write_saved): Add target-options when appropriate. (fill_rates): Modify to work with new combobox. (fill_targets): Modify to work with new combobox. (config_dialog): New method which maps/unmaps/relabels comboboxes and entries for each target. (change_target): Remove all code pertaining to mapping/unmapping/relabeling comboboxes and entries and call config_dialog instead. (change_baud): Remove all code pertaining to mapping/unmapping/relabeling comboboxes and entries and call config_dialog instead. * console.tcl (Console): Add key binding for TAB completion. (find_lcp): New helper method for find_completion. (find_completion): New helper method for complete. (complete): New method (bound to tab key) which computes the completion of the current command line. (reset_tab): New method to reset the tab completion whenever a key is pressed (forces complete to recompute the completions instead of printing out the last list of completions). 1998-08-18 Keith Seitz * stack.tcl (update): Use new built-in command gdb_stack for backtraces. Use the global gdb_selected_frame_level to figure out which line in the listbox should be highlighted. ALWAYS highlight the selected frame. Put a fencepost arount update so that we can prevent it from being called twice when change_frame is used. (change_frame): Protect call to gdbtk_update so that this object is not updated twice. * srctextwin.tcl (config_win): Copy the properties of the selection tag into a new "search" tag that will be used by the search widget. (search): Use the defined "search" tag to highlight found text. Remove all search-tagged text from the window when an empty expression is entered. Mon Aug 17 14:27:54 1998 Martin M. Hunt * main.tcl (do_tstop): Require combobox package. * src.tcl (build_win): Use new combobox. (name): Changes for new combobox. (goto_func): Changes for new combobox. (FillNameCB): Changes for new combobox. (FillFuncCB): Changes for new combobox. (SetSilent): New method, like tixSetSilent. (mode): Changes for new combobox. (set_name): Changes for new combobox. (reset): Changes for new combobox. * srctextwin.tcl (FillSource): Call parent's mode method when mode is changed to assembly. (location): Call display_breaks only if flag is set. (LoadFIle, FillAssembly, FillMixed): Set display_breaks flag. (display_breaks): Set all breakpoints in a single pass. (insertBreakTag): Check $stop before trying to remove tag. Mon Jul 27 12:35:31 1998 Martin M. Hunt * interface.tcl (gdbtk_tcl_tracepoint): Make function match C implementation by adding pass_count. Sat Jul 25 22:40:49 1998 Martin M. Hunt * manage.tcl (manage_init): Change "loadpref" to "targetsel" and change class name to TargetSelection. This avoids confusion with the IDE GdbLoadPref class. * target.tcl (TargetSelection): Change class name. * main.tcl (set_target_name): Change "loadpref" to" targetsel" Fri Jul 24 14:37:49 1998 Keith Seitz * util.tcl (bp_exists): New procedure. * srctextwin.tcl (SrcTextWin::constructor): Add public vars "parent" and "ignore_var_balloons" and initialize accordingly. (config_win): Add binding for browser. Add binding for up/down arrows to scroll more naturally. (do_key): Add browser entry. * browser.tcl: Add srctextwin into browser. * prefs.tcl (pref_set_defaults): Add new preferences for the func browser. * tclIndex: Regenerate. Fri Jul 24 00:53:28 1998 Martin M. Hunt * srctextwin.tcl (SrcTextWin): Initialize LineNums. (setTabs): Set tabs correctly when in assembly mode or when there are no linenumbers. (bind_src_tags): Remove lineNum_tag bindings. (config_win): Remove lineNum_tag and line_tag. Set linenumbers to break_tag and bp_tag instead. (FillAssembly): Don't use lineNum_tag. (FillMixed): Don't use line_tag. (LoadFile): Use new protected variable LineNums. (insertBreakTag): Instead of trying to calculate the correct location of the new tag, simply ask the widget where the old one was. (do_bp): Call insertBreakTag when bps are deleted. * src.tcl (FillNameCB): Call gdb_listfiles with [pwd]. Sat Jul 18 13:27:20 1998 Martin M. Hunt * src.tcl (location): Change BROWSE_TAG to STACK_TAG. * interface.tcl (gdbtk_quit): New function. Called by cleanup code in GDB. Fri Jul 17 00:03:43 1998 Martin M. Hunt * memory.tcl (build_win): Change address controlbox to call update_address_cb. (update_address_cb): New method. Handle address controlbox callbacks. Set flag and call update_address. (update_address): Call BadExpr on bad expressions. Use local variable "ae" to set public variable addr_exp. This fixes bug where widget forgets its address when reconfigured. Set table background white when expression is OK. (BadExpr): When a bad expression is entered, create a messagebox and set the table bg to gray. * mem_pref.tcl (apply): Remove mystery debug line. Thu Jul 16 16:56:12 1998 Jim Ingham * download.tcl, ide.tcl, interface.tcl, main.tcl, manage.tcl srcbar.tcl, toolbar.tcl: Merged the IDE changes back into devo. Mon Jul 13 14:34:45 1998 Jim Ingham * mem_pref.tcl (destructor): Remember to delete the variable trace that implements the entry widget checking. Fri Jul 10 19:17:53 1998 Jim Ingham * mem_pref.tcl: Changed the number of bytes entry widget so that it only accepts +'ve integers, and protect against the case where the user deletes the contents of this entry, then closes the window. Also made the entry disabled when the other radio button is selected. Wed Jul 8 23:20:33 1998 Martin M. Hunt * srctextwin.tcl (FillSource): Fix code that detects when no line numbers are available and we must use assembly mode. Mon Jul 6 17:53:50 1998 Jim Ingham * download.tcl, helpViewer.tcl, html_library.tcl, memory.tcl, register.tcl, src.tcl, srctextwin.tcl, target.tcl, tracedlg.tcl, util.tcl, variables.tcl, warning.tcl, watch.tcl: With the Tcl 8.0 compiler, expr commands are more efficient if you use: expr {$foo + $bar} instead of: expr $foo + $bar So I changed all the uses of expr to this form. Mon Jul 6 15:19:59 1998 Martin M. Hunt * srctextwin.tcl (FillSource): Call Parent's mode method to combobox will be updated. * src.tcl (mode): Pass along second argument to mode_set. Wed Jul 1 15:09:47 1998 Martin M. Hunt * srctextwin.tcl (location): Add missing parameter to FillSource call in SRC+ASM. Wed Jul 1 11:07:21 1998 Jim Ingham * main.tcl (gdbtk_preloop): Call gdbtk_idle on spec. If there was an error in loading an executible specified on the command line, then the pre_add_symbol hook would have called gdbtk_busy but the corresponding call to gdbtk_idle would not have occured. Also changed some catch calls so they didn't use "catch {set foo [real_command]}" but rather the more efficient: "catch {real_command} foo" * register.tcl: more catch cleanups * src.tcl: more catch cleanups * stack.tcl: more catch cleanups * target.tcl: more catch cleanups * tdump.tcl: more catch cleanups * variables.tcl: more catch cleanups * watch.tcl: more catch cleanups Wed Jul 1 12:21:55 1998 Martin M. Hunt * src.tcl (build_win): Remove incorrect runstop argument for srcbar. Wed Jul 1 11:25:48 1998 Martin M. Hunt * floatbar.tcl: Deleted. * Makefile: Removed floatbar.tcl * tclIndex: Rebuilt. Wed Jul 1 11:19:05 1998 Martin M. Hunt * toolbar.tcl (enable_ui): Now takes an argument and handles disable_ui and no_inferior functions. (disable_ui): Deleted. (no_inferior): Deleted. (constructor): Set idle, busy, and no_inferior hooks to enable_ui. * srcbar.tcl (_open_file): Fix for multiple source windows. Wed Jul 1 01:40:52 1998 Martin M. Hunt * Makefile: Added srctextwin.tcl. * tclIndex: Rebuilt. * src.tcl: Major rewrite to move the source text window into another object implemented in srctextwin.tcl. Every function changed and many moved to srctextwin.tcl. * srctextwin.tcl: New file. * bp.tcl (goto_bp): Fix call to source widget. * src_pref.tcl (build_win): Add line number checkbutton. Layout needs changed. * prefs.tcl (pref_set_defaults): Add linenum pref. Thu Jun 25 17:31:30 1998 Keith Seitz * toolbar.tcl (create_menu_items): Add Function Browser menu item. * tclIndex: Regenerate. * Makefile: Add browser.tcl. * util.tcl (do_test): New procedure for invoking a test in the testsuite from the command line. (gdbtk_read_defs): New procedure for reading in the testsuite definitions file * src.tcl (build_win): Create new entry for searching the source window. This "feature" shares the screen with the download indicator. (download_progress): If starting a download, unmap the search widget and map the download progress indicator in its place. When downloading is done, do the opposite. (config_win): Bind the down and up arrow keys to directly scroll the window. (search): New method which searches for strings in the source window and jumps to a particular line. (set_state): Do not reset current_file to empty when an exe has been downloaded. (bp): Do not special case tracepoint debugging. * manage.tcl (manage_init): Add elements for function browser. (manage_create): If GDBTK_TEST_RUNNING is set in the environment, place all windows on the screen at +0+0. * prefs.tcl (pref_save): Add new preference category "search". (pref_set_defaults): Add search preferences. * tracedlg.tcl (TraceDlg::destructor): Destroy the actions dialog is it exists. (add_action): Save the object returned from the window manager when the actions dialog is opened so that we can later destroy it if necessary. (done): Clear ActionsDlg when the actions dialog is destroyed. * main.tcl (do_tstart): Do not disable the "Begin collection" menu item when we issue a tstart. * console.tcl (paste): New method which handles all Paste events for this window. (Console): Bind the middle mouse button on unix to generate a paste event. Override default binding for button-2 motion to allow easier pasting into the window. Bind the paste event to the method paste. Wed Jun 17 13:50:48 1998 Martin M. Hunt * src.tcl (reconfig): Recognize tab size changes. * src_pref.tcl (build_win): Add tab control. Remove extra frame. Justify variable ballons text. Set activebackgrounds on color buttons. Tue Jun 9 13:57:24 1998 Keith Seitz * helpViewer.tcl (HtmlViewer): Display appropriate help based on the preference gdb/mode. * help/trace: Add help files for tracing. * main.tcl (gdbtk_tcl_preloop): Call gdbtk_update so that the source window fills files into the combobox. * srcbar.tcl (_open_file): "cd" to directory, don't add it to the search list. This never gets reset anywhere, so if multiple file commands are added, we could get the wrong path. Call gdb_clear_file, too. * interface.tcl (gdbtk_tcl_pre_add_symbol): Call the reset method of the source window, too. * src.tcl (reset): New method used to clear the source window whenever multiple file commands are used. * tdump.tcl (update): Erase the contents of the tdump window when displaying a new dump. * stack.tcl (update): Errors from the backtrace can contain backtrace info, too, so make sure we print as much of that as possible. * register.tcl (build_win): Do not allow editing in tracing mode. (reg_select): Do not allow editing in tracing mode. * memory.tcl (update_address): Check that gdb's handling of chars and char*s doesn't abort the update. * variables.tcl (build_win): Disable editing in tracing mode. (build_menu_helper): Disable editing in tracing mode. (getLocals): Use the builtin functions gdb_get_locals and gdb_get_args to get all local variables. Concat lists together. (Variable::value): Set a default value for "radix" in case the regsub fails. Tue Jun 9 00:00:18 1998 Martin M. Hunt * interface.tcl (gdbtk_quit): No longer use quit_hook. Just call "manage save". * manage.tcl (manage): Remove manage quit. (manage_quit): Deleted. (manage_init): Remove quit_hook. (manage_save): Use "Pref setd" instead of "pref set". * prefs.tcl (pref_set_defaults): Remove quit_hook. (pref_quit): Deleted. Mon Jun 8 16:15:33 1998 Martin M. Hunt * target.tcl (set_check_button): Check for existence of button before trying to set its state. Mon Jun 8 13:31:08 1998 Martin M. Hunt * memory.tcl (build_win): Always Bind configure event to newsize method. Change table widget to use incr_addr for both incr and decr. Enable autorepeat. (create_prefs): Set rheight (row height). (newsize): Set rheight if necessary. Return if numbytes is not zero. (update_address): Move gdbtk_idle and gdbtk_busy calls to update_addr. (update_addr): Surround with gdbtk_idle and gdbtk_busy. (incr_addr): Take an argument to indicate how much to increment or decrement by. (decr_addr): Deleted. Fri Jun 5 00:13:49 1998 Martin M. Hunt * Change all references to GDBTK_IDE to IDE_ENABLED. Thu Jun 4 18:34:11 1998 Martin M. Hunt * memory.tcl: Complete rewrite. Added many new features and made it much faster. * mem_pref.tcl (build_win): Set listbox width. * images/check.gif: New image. Used in version of memory window without a menubar. Thu Jun 4 10:53:33 1998 Elena Zannoni * tclIndex: regenerated. Merged (most recent first): - Elena Zannoni * tracedlg.tcl (ok): if the tracepoint does not exist (this can happen if user is editing a tp and decides to remove it from tp window) do not core dump, give an error message instead, and return. * bp.tcl (get_actions): invoke trace dialog from tracepoint window, passing filename and line as arguments, rather than address. - Jeff Holcomb * main.tcl (set_baud): Change gdb/load/$gdb_target_name/baud to gdb/load/${gdb_target_name}-baud. - Elena Zannoni * tdump.tcl (update): call tdump only if the current trace frame number is not -1. * interface.tcl (gdbtk_tcl_tstart): update menus entries only, do not do actual command. (gdbtk_tcl_tstopt): update menus entries only, do not do actual command. (gdbtk_tcl_warning): remove tdump warning message from list of not displayed messages. * main.tcl (do_tstart): catch error output from tstart and display error dialog. (do_tstop): catch error output from tstop and display error dialog. * bp.tcl (bp_add): align properly the bpnum and passcount fields, for the tracepoint window. * main.tcl (set_exe): set file_done (new global state variable) depending whether new file was read in or not. (set_target_name): return 0 if user chose cancel from target setting window displayed by 'connect'. (set_target): if no target_cmd is specified call set_target_name and ask user for it. (async_connect): handle possible outcomes of set_target command, issue appropriate messages to user. Initialize file_done to 0. * target.tcl (cancel): set gdb_target_name to CANCEL for use by set_target_name. Added public data 'exportcancel'. * toolbar.tcl (do_async_connect): change menu items state only if connect was successful. * src.tcl (bp): modify condition for SOURCE case to display tp dot after connecting to target. * actiondlg.tcl (constructor): make dialog non modal. (destructor): release grab not any longer necessary. (change): make lsearch use exact pattern matching for entries added to the collect list using the 'other' field. The new syntax allows array elements to be specified and this messes up the default glob style pattern matching. (change_other): reject memranges (obsolete). Delegate validation of user input to the lower levels, in gdb. I.e. keep everything until the whole tracepoint is installed. * tracedlg.tcl (gdb_add_tracepoint): call to gdb_actions is now catching the errors (in case of incorrect syntax) and displaying them to the user. * main.tcl (set_target): Changed text of error message to mention the Target Settings dialog. * prefs.tcl: Set default preference for gdb/load/check to 0. * target.tcl (build_win): disable comparison with executable for 'exec' targets. (set_check_button): new method. Enable/disable the check button for comparing executable. (change_target): call set_chack_button when target changes. Set default preference gdb/load/check to 0. * stack.tcl: set initial window width value to 40, so that window looks better if opened before a stack exists. - David Taylor * main.tcl (async_connect): remote-compare is now compare-sections. - Elena Zannoni * warning.tcl (constructor): call destructor if dialog doesn't need to be displayed. * console.tcl (invoke): make function get input and return if in readline state, independently from the value of Running. * src.tcl (set_state): set state of pop up menus only for synch mode. * tdump.tcl (build_win): simplify the window, eliminating pane. This fixes resize problems. (update): add call to see to display last thing outputted to the window. * tfind_args.tcl (do_it): call the tfind_cmd procedure. * toolbar.tcl (create_menu_items): changed calls to tstart and tstop to use do_tstart and do_tstop. * srcbar.tcl (runstop): do not call _set_trace in asynch case, just use _set_runstop always. (_set_runstop): added handling for asynch mode cases. (_set_trace): removed. * main.tcl (do_tstart): new procedure to execute tstart command update tstart/tstop button, and menu entries accordingly. (do_tstop): new procedure for tstop, as above. (run_executable): calls do_tstart in the asynch case. * interface.tcl (gdbtk_tcl_tstart): new procedure to invoke the tstart command (gdbtk_tcl_tstop): new procedure to invoke the tstop command * interface.tcl: (gdbtk_tcl_warning) do not display warning about no current trace frame upon opening of tdump window. * main.tcl: (run_executable) in asynch mode just call tstart, connect is now done independently. (async_connect) new procedure to connect and do comarison with remote executable, in asynch mode. Sets up gui state globals. (async_disconnect) new procedure to disconnect from target in asynch mode. Sets up gui state globals. * prefs.tcl: added new preference gdb/load/check * srcbar.tcl: (create_buttons) tfind commands now use tfind_cmd function * target.tcl: added new preference gdb/load/check to execute an automatic remote-compare command on connection to target in asynch mode (set_saved) set saved value for new preference (write saved) write saved value for new preference (build_win) set state of 'run to main', 'break at exit', 'display dowload' to disabled for asynch mode target dialog. Added new checkbutton for automatic comparison of remote exec. Saved_check: new protected member * tdump.tcl: (update) changed check for no frame, since 0 is legal trace frame number. * toolbar.tcl: (create_menu_items): added menus items 'connect to target' and 'disconnect', in async mode. Changed to call tfind_cmd to execute tfind commands (do_async_connect): new method to connect to target in async mode. (do_asynch_disconnect): new method to disconnect from target in async mode. * util.tcl: (tfind_cmd): new proc to execute a tfind command on the target Thu May 28 12:49:29 1998 Keith Seitz * target.tcl: Add sparclite target. (fill_targets): Add sparclite target. * main.tcl (set_target_name): Rearrange so that the default behavior is to assume a remote-like target. * src.tcl (browse_to): Helper function for BpWin::goto_bp which causes the source window to show the specified location. * bp.tcl (bp_add): Clean up repetitive code. Add double-click binding which shows the breakpoint in the source window. (bp_select): Clean up repetitive code. (goto_bp): New function. Sun May 24 14:05:27 1998 Keith Seitz * src.tcl (reconfig): Remove the variable balloon selection in the text widget, too, when we are disabling varialbe balloons. * target.tcl: Add a "runlist" parameter to all gdb_target entries. This list controls the default behavior of the run button. (GdbLoadPref): Define the run preferences based on this target. (build_win): Add a "more options" dropdown pane to allow users to modify the behavior of the run button. (set_saved): Add run button preferences. (write_saved): Add run button preferences. (fill_targets): Add the "pretty name" to the combo box, not gdb's internal target name. (change_target): Use get_target to translate the "pretty-name" to the real target name. (save): Write out saved values, too. (get_target): New method to translate the "pretty-name" of a target into gdb's internal name/ (toggle_more_options): New method to handle mapping and unmapping of the "more options" pane. (set_run): New method. Moved from src_pref.tcl. (valid_target): Moved here from main.tcl. (native_debugging): Moved here from main.tcl. (change_target): Don't write_saved here -- wait until dialog is closed. * src_pref.tcl (build_win): Use libgui's Labelledframe class instead of the Tix labeled frame. Remove the run button frame -- this has moved into the target selection dialog. (set_run): Moved to targets.tcl. * prefs.tcl (pref_set_defaults): Change default preferences for the run button to only do a run. Target selection will reset these as appropriate. * main.tcl (set_baud): Baud preferences are in TARGET-baud, not TARGET/baud. (run_executable): Remove special cases for exec targets. (native_debugging,valid_target): Move to target.tcl. * images/more.gif, images/less.gif: New images for drop frames. * tclIndex: Regenerate. Wed May 20 13:43:00 1998 Martin M. Hunt * toolbar.tcl (create_menu_items): Remove register prefs. * images/stop.gif: Set transparent bit. Tue May 19 12:34:11 1998 Keith Seitz * bp.tcl (bp_add): Use source window's colors. Use "file tail" not "lindex [file split ] end". (bp_modify): Use source window's colors. Use "file tail" not "lindex [file split ] end". (bp_remove): Call bp_select before we delete the breakpoint. * main.tcl (run_executable): Encapsulate all calls to debugger based on new run preferences. * manage.tcl (manage_init): Change loadpref titles to "Target Selection" * pref.tcl (build_win): Disable Help button until it works. * prefs.tcl (pref_set_defaults): Define new run button preferences. Lose stack and bp window color preferences -- use the source window ones instead. Lose left_click, too. * src.tcl: Remove all references to _Source_Left_Click and replace with new protected variable Tracing. Define new protected variable UseVariableBalloons so that we don't follow the preferences blindly. Replace all preference calls for these two globals. (reconfig): Allow reconfiguration of variable balloons and popup menu colors. (config_win): Add binding for File Menu->Open. (do_key): Add open key. * src_pref.tcl (SrcPref): Save all newly added preferences. (build_win): Add new preferences for mode, variable balloons, lots of color choices. (cancel): Reset all new preferences. (pick): Allow passing of button in to make things a little easier. (reconfig): Keep empty -- no need for this to reconfigure itself. (set_run): New method to make sure someone does not try to run _and_ continue a target with the run button. * stack.tcl (build_win): Use the source window's preferences to set colors. * target.tcl (build_win): Disable Help button until it works. Mon May 18 15:25:00 1998 Martin M. Hunt * html_library.tcl (HMstack): Remove stray 'g' that was preventing autoloading. Mon May 18 13:17:30 1998 Keith Seitz * helpViewer.tcl (HtmlViewer): Initialize glossary. (glossaryPost): Fill in skeleton supplied by jingham. (glossaryUnpost): Ditto. (lookup): New method to lookup glossary definitions. (HMset_image): Add special image names. Fri May 15 00:30:06 1998 Martin M. Hunt * memory.tcl (update_address): Source window was never being updated due to a faulty fencepost. I removed it. Was it useful? Tue May 12 11:47:11 PDT 1998 James Ingham * helpViewer.tcl: Made the fonts for the viewer track the global font preferences *html_library.tcl: Use Tcl Font objects for the fonts rather than building up X Font Specs. Thu May 7 16:03:32 1998 Keith Seitz * toolbar.tcl (create_menu_items): Remove automatic stepping. (create_menu_items): "Cygnus on the Web..." should point to GNUPro page... Wed May 6 20:18:34 1998 Keith Seitz * main.tcl (set_target_name): Recognize d10v and m32r targets. (valid_target): Change test to recognize all tcp targets. * target.tcl: Add m32r and d10v tcp targets. Wed May 6 12:52:12 1998 Keith Seitz * srcbar.tcl (create_menu_items): Install a page setup menu item for non-ide debuggers. * src.tcl (print): Don't call idewindow_freeze and idewindow_thaw the ide is not running Wed May 6 10:41:30 1998 Elena Zannoni * bp.tcl (get_actions): set bpnum to be the real tracepoint number, not the selected row number. Tue May 5 04:07:12 1998 Martin M. Hunt * target.tcl: Add D10V and M32R target. * prefs.tcl (pref_set_defaults): Set debugging off by default. Fri May 1 15:23:57 1998 Elena Zannoni * main.tcl (valid_target) make 'remotetcp' a valid target. Fri May 1 11:50:40 1998 Jim Ingham * helpViewer.tcl: Added the skeleton for the Glossary entries. Fixed the zoom to top of page when rendering is complete nit. Added a reconfig method to refresh the current page. Compulsive reordering of methods. Thu Apr 30 00:04:52 1998 Martin M. Hunt * html_library.tcl: The redefinition of tkFocusOK in this file can cause an infinite recursion loop in autoloading tkFocusOK. Change proc -> ::proc to hide the definition from itcl_mkindex * tclIndex: remade without the reference to tkFocusOK. Tue Apr 28 16:51:09 1998 Jim Ingham * helpViewer.tcl: The index page now shows up properly in the history list. Also added images for the fore, back and home buttons, and removed the close button. * manage.tcl: Moved the wm withdraw of a new toplevel before the constructor is run in manage_create. This avoids flashing. * main.tcl: Changed the tk application name of gdbtk from tk to gdbtk. Mon Apr 27 14:18:01 1998 Elena Zannoni * helpViewer.tcl: (constructor) Change 'Foreward' to 'Forward' and calls to 'foreward' method to calls to 'foreward' method. (forward) changed method name from 'foreward'. Thu Apr 23 19:02:25 1998 Keith Seitz * toolbar.tcl (create_menu_items): Use the new help viewer when not using the IDE. * helpViewer.tcl (HtmlViewer::constructor): Set default values for previously passed-in variables. (HtmlViewer::destructor): Destroy the toplevel, too. (HMset_image): prepend the dir name "images" to the image path. Thu Apr 23 13:31:07 1998 Jim Ingham * html_library.tcl: First checkin * helpViewer.tcl: First checkin * manage.tcl (manage): Added the help veiwer to the windows list. Aslo compulsively alphabetized the list... * tclIndex Rebuilt for the new procs. Mon Apr 20 11:14:17 1998 Keith Seitz * global_pref.tcl (build_win): Add font selector for the status font. * main.tcl (run_executable): Exec targets are always "loaded". Sat Apr 18 02:11:04 1998 Martin M. Hunt * prefs.tcl (pref_read): Remove debug line. * util.tcl (toggle_debug_mode): When enabling or disabling debugging, also enable or disable error reporting and stack traces. Sat Apr 18 01:13:03 1998 Martin M. Hunt * srcbar.tcl (_toggle_updates): Cleanup. * src.tcl (do_popup): Fix problems with selections. While I'm messing with this code anyway, change how it works so that the popup will contain the word that is under the cursor if nothing is selected. * toolbar.tcl (create_buttons): Bind button 3 to create new windows when possible. * stack.tcl (StackWin): Fix broken deiconify call. * images/[console.gif, reg.gif]: Update. Fri Apr 17 10:34:23 1998 Martin M. Hunt * src.tcl (location): Don't look up the full pathname of each file added to the combobox. Fri Apr 17 09:58:59 1998 Keith Seitz * target.tcl (default_port): New proc. Returns a default port based on host os. (startup code): Use default port to determine the default port to use for all hosts. (build_win): Only set the target if it is valid. For unix, use port names that correspond to the OS running. Change gdb/load/$target-portnum to gdb/load/$target-port (typo?) (get_target_list): Do not allow "exec" for cross debugging. (save): Do not do dismiss dialog if the target is not valid. (cancel): If exportcancel is set, set gdb_target_cmd to "CANCEL". This will allow run_executable to cancel a run if the user cancels target selection. (exportcancel): New public data. * main.tcl (set_target_name): Return status to caller so that the user can cancel a run request when the target selection dialog is opened. Do not modify gdb_exe_changed -- it has already been set proprely. (set_target): If gdb_target_cmd is empty, call set_target_name to set it. Allow all set_target_name commands to cancel target selection. (run_executable): Allow all set_target_name commands to cancel target selection. Always clear bp's at main and exit, since this proc will set them for all targets now. Save the bp number for the breakpoint installed at main and exit so that we can reliably delete them if the user cancels any subsequent target selection. Whenever the run is canceled, delete the breakpoints at main and exit. Move setting of breakpoints at main and exit from download_it here. (valid_target): New proc. Returns true if the given target is a valid, runnable target. (native_debugging): New proc. Returns true if this gdb is not a cross gdb. (startup code): Do not call set_target_name here -- let run_executable do it. * interface.tcl (gdbtk_tcl_query): Update the display when this dialog is dismissed. (gdbtk_tcl_warning): Always show warnings in the debug window. * download.tcl (download_it): Move setting breaks at main,exit to run_executable in main.tcl. Thu Apr 16 11:28:01 1998 Martin M. Hunt * main.tcl (set_target_name): Add "prompt" parameter which allows this function to be called without it always prompting for the target name. This allows it to quietly initialize variables from preferences. (set_target): Remove HACK_FIRST_HACK. (run_executable): Check the result of [set_target]. If it fails, prompt for a new target and repeat. (startup code): Remove HACK_FIRST_HACK. Call set_target_name to initialize gdb_target_cmd from preferences. * toolbar.tcl (create_menu_items): Call set_target_name for the target menu item. This will open the dialog and then set the target command correctly. * target.tcl (save): Set default target preference. Wed Apr 15 11:29:47 1998 Martin M. Hunt * src.tcl (reconfig): Tell toolbar to reconfig. * global_pref.tcl (build_win): Add support for changing icons. Put fonts in a labelled frame. (update_file): Removed. (change_icons): Callback for icon combobox. * srcbar.tcl (_load_src_images): Remove old target and load images. Add reconfig parameter which reloads images. Use global gdb_ImageDir. (reconfig): New method. * floatbar.tcl (create_buttons): Remove target image. Use global gdb_ImageDir. * toolbar.tcl (_load_images): Use global gdb_ImageDir. Add reconfig parameter which reloads images. (reconfig): Don't rebuild everything, just reload images. (create_menu_items): Change "Fonts" preferences menu item to "Global". * prefs.tcl (pref_set_defaults): Save only basename in gdb/ImageDir preference. Initialize global gdb_ImageDir. (pref_read): Set gdb_ImageDir. * memory.tcl (build_win): Use global gdb_ImageDir. * manage.tcl (make_icon_window): Use global gdb_ImageDir. * about.tcl (build_win): Use global gdb_ImageDir. * images/icons.txt: New file; icon descriptions. * images/vmake.gif: New file. * images/vars.gif: New file. * images/watch.gif: New file. * images/bp.gif: New file. * images/memory.gif: New file. * images2/icons.txt: New file; icon descriptions. * toolbar_pref.tcl: Removed. * main.tcl (run_executable): If target is "exec" don't show target dialog unless the run command fails. Wed Apr 15 13:15:22 1998 Elena Zannoni * interface.tcl: (gdbtk_tcl_warning) changed to selectively display warnings in the GUI. (show_warning) new procedure. Displays warning dialogs. Wed Apr 15 07:13:04 1998 Keith Seitz * src.tcl (do_popup): Fix merge casualty -- revert to pre-3/22 version. Don't allow tracepoint ranges to be set unless in asynch mode. Mon Apr 13 16:00:06 1998 Elena Zannoni * warning.tcl: new file. Implements WarningDlg class, for warning dialogs. * tclIndex: regenerated * Makefile: added new file warning.tcl * manage.tcl: added new window warningdlg, for ignorable warnings. * interface.tcl: (gdbtk_tcl_warning) new procedure. Creates a warning dialog. (gdbtk_tcl_ignorable_warning) new procedure. Creates a warning dialog. The user can choose to not have this dialog pop up again during the same debugging session. Mon Apr 13 13:04:20 1998 Keith Seitz * stack.tcl (StackWin::constructor): Withdraw toplevel before calling all busy hooks; then build the window, go idle and pop the window onto the screen. * main.tcl (set_target_name): Use a regexp to match target names. Add "sds" as a target. (run_executable): Use gdb_immediate to run executable. Fri Apr 10 10:27:42 1998 Elena Zannoni * bp.tcl: changed default value of public var tracepoints to be 0. Thu Apr 9 15:21:49 1998 Martin M. Hunt * global_pref.tcl (destructor): Delete test fonts here instead of in ok and cancel. This fixes bug when dialog was closed by clicking on close gadget. * src_pref.tcl (pick): When colors are changed, immediately update the dialog. Thu Apr 9 04:03:27 1998 Martin M. Hunt * target.tcl (build_win): Bind for cancel and help buttons. Wed Apr 8 10:57:14 1998 Elena Zannoni * tdump.tcl: (update): show stuff on window only if current trace frame is not null. * variables.tcl: (build_win): get the current output-radix (getVariables): decide the format to display a var based on Radix VariableWin class: added protected member Radix (value): decide display based on output-radix Wed Apr 8 06:17:42 1998 Keith Seitz * bp.tcl (get_actions): Open the trace dialog based on a tracepoint's number. * tracedlg.tcl (title): New method to title window based on mode. (TraceDlg::constructor): After the interp is idle, title this window. (build_win): Add support to simply pass a tracepoint number for editing. Tue Apr 7 12:49:45 1998 Keith Seitz * variables.tcl (VariableWin): We should deiconify after withdrawing... * tracedlg.tcl (gdb_edit_tracepoint): Make necessary gdb_cmd changes to support new API. (gdb_add_tracepoint): Make necessary gdb_cmd changes to support new API. * tdump.tcl (update): Make necessary gdb_cmd changes to support new API. (TdumpWin::constructor): We should deiconify after we withdraw... Change idle callback to an update callback. (TdumpWin::destructor): Change idle callback to update callback. * srcbar.tcl (_open_file): Make necessary gdb_cmd changes to support new API. (create_buttons): Change all tracing commands to use gdb_immediate. * main.tcl (set_target_name): Add simulator target. * src.tcl (mode): When changing modes, clear the line to pc mappings. (location): Do not set current_addr if we are not running and gdb_loc thinks we're at 0x0. Clear the text-window-line to pc mapping when appropriate. Revert display_breaks change for SRC+ASM mode. (bp): Make sure mapping of PC to src window line exists before attempting to set breakpoints/tracepoints. Fri Apr 3 13:57:42 1998 Elena Zannoni * src.tcl: (do_key): added actions for key bindings in trace mode. (config_win): added key bindings for trace mode. * srcbar.tcl: (_set_trace) changed balloon contents for tstart/ tstop button. * toolbar.tcl: (create_menu_items): changed names of menu items tstart and tstop to 'Begin Collection' and 'End Collection'. Changed name of Preference menu item from 'GDB' to 'Fonts'. Changed name of File menu item from 'Debugger Preferences' to 'Target Settings'. Commented out Preference menu item 'Download'. (create_buttons): tdump button, inserted text 'Td' in place of missing icon. Tue Mar 31 17:20:59 1998 Ian Lance Taylor * Makefile (TCL): Add ide.tcl. * tclIndex: Rebuild. Sun Mar 29 18:50:46 1998 Keith Seitz * tracedlg.tcl (build_win): Enable tracepoints at assembly addresses. (add_action): Enable tracepoints at assembly addresses. (ok): Enable tracepoints at assembly addresses. (edit): Enable tracepoints at assembly addresses. (gdb_add_tracepoint): Enable tracepoints at assembly addresses. * srcbar.tcl (_open_file): If main () exists, show it. * src.tcl (display_breaks): If we are displaying breaks in assembly, clear the line and file specs. (location): Use display_breaks to insert breaks and traces. (bp): Rewrite. Actions are based on mode of the source window. (bp_line): When setting a tracepoint in assembly, pass address to set_tracepoint. (set_tracepoint): Open trace dialog specifying either line or address at which to set trace. (tracepoint_range): Rewrite. Actions are based on the mode of the source window. Now able to insert ranges of traces in any mode. * actiondlg.tcl (ActionDlg::constructor): Enable widget via address specification. (ActionDlg::Line): Default to empty list. (ActionDlg::Address): Add new memeber to enable assembly operation. Sun Mar 29 21:21:37 1998 Elena Zannoni * bp.tcl: add tracepoint number to tracepoint window. (build_win)(bp_add)(bp_select)(bp_modify)(bp_delete) * manage.tcl: (manage_init) do not open windows not related to current mode * tdump.tcl: (reconfig) remove it (config) add toplevel window, show window after it has been built. (update) add calls to busy and idle hooks, add third argument to gdb_cmd call Sun Mar 29 15:01:03 1998 Keith Seitz * srcbar.tcl (_set_trace): Use gdb_immediate to execute the "tstop". Call run_executable when requesting a tstart. (_open_file): Convert all paths under cygwin32 to a posix-compliant pathname. Add this path to the source search list. * src.tcl (set_execution_status): Change stop messages to support tracing. (tracepoint_range): Clear the selection when we set a range of tracepoints. * main.tcl (set_target): Use gdb_immediate so that the console gets output of target command. (run_executable): Use gdb_immediate for run command. Include trace support. Sat Mar 28 15:50:01 1998 Keith Seitz * srcbar.tcl (create_menu_items): Put menu items in proper order. (_open_file): Add exe file's directory to the default source search path. Sat Mar 28 14:29:08 1998 Keith Seitz * srcbar.tcl (GDBSrcBar: runstop trace): If running async'ly, set the run/stop button by calling _set_trace. Otherwise use _set_runstop. (create_menu_items): Add file command to open a new exe. (_open_file): New method to handle requests to open a new exe. * main.tcl (set_target): If this is the first time running, then show the download prefs dialog. Sat Mar 28 16:30:55 1998 Elena Zannoni * tracedlg.tcl: (build_win) reinserted 'update idletasks' to display Actions frame properly. * actiondlg.tcl: (sort) moved "All Registers", "All Locals", "All Arguments" to beginning of list. * src.tcl: (line_is_executable) new method. Used in tracepoint_range. Sat Mar 28 10:58:04 1998 Keith Seitz * tracedlg.tcl (gdb_edit_tracepoint): Don't let gdb_cmd call busy and idle hooks. (gdb_add_tracepoint): Ditto. * src.tcl (config_win): Change exit key binding from 'q' to 'x.' (goto_func): That's "file tail", not "file split." * srcbar.tcl (_set_stepi): Don't do anything if we're debugging asynchronously. Sat Mar 28 10:09:21 1998 Martin M. Hunt * toolbar.tcl (create_menu_items): Change "Close Debugger" menu item to "Exit". Sat Mar 28 02:38:51 1998 Martin M. Hunt * src_pref.tcl (build_win): Fix Save and Apply buttons. Change "Save" to "OK". Use standard_button_box. (save): New method, save and exit. (apply): New method; save and don't exit. (cancel): New method; cancel all changes. * src.tcl (reconfig): Reconfigure colors, too. * global_pref.tcl (Globalpref): Fix deiconify call. (build_win): Use standard_button_box. Set default to OK. Remove unused stuff. Cleanup display. * Makefile: Removed toolbar_pref.tcl. * tclIndex: Rebuilt. * srcbar.tcl (create_buttons): Make toolbar always attached to source window. * toolbar.tcl (build_win): Always display toolbar and menubar attached to source window. * prefs.tcl (pref_set_defaults): Removed toolbar prefs. * manage.tcl (manage_init): Remove hack to change preferences names. (manage_init): Remove toolbar and toolbar prefs code. (manage_create): Remove toolbar code. (manage_open): Remove toolbar code. (manage_find): Remove toolbar code. (manage_delete): Remove toolbar code. (manage_restart): Remove toolbar code. Fri Mar 27 19:52:53 1998 Keith Seitz * toolbar.tcl (create_menu_items): Do not disable preferences. * src.tcl (reconfig): Rewrite to not destroy window. Symbolic fonts are a blessing! Pass the image handles for our breakdots to makeBreakDots. (file): Move breakpoint/tracepoint insertion to a separate function... (display_breaks): .... this one. (location): Move the block which fills combo boxes to top in case an error causes us to exit early. (makeBreakDot): Accept an optional image handler so that it can be configured instead of created. * global_pref.tcl (build_win): Carry around a list of all changable fonts in case more granularity is needed. (Windows cannot change menu font...) Disable menu font for windows. (ok): Check the list of changable fonts. (cancel): Check the list of changable fonts. (apply): Check the list of changable fonts. * console.tcl (reconfig): New (empty) method to handle preference changes. Fri Mar 27 16:08:57 1998 Keith Seitz * global_pref.tcl (ok): Must use preferences for comparison. Don't "manage restart" unless needed. (cancel): Don't configure the font -- changing the preference will do it automagically. Fri Mar 27 14:21:02 1998 Keith Seitz * toolbar.tcl (create_menu_items): Use gdbtk_quit to initiate a quit. * src.tcl (do_key): Use gdbtk_quit to initiate a quit. * prefs.tcl (pref_save): Set a default value for WIN. Don't "manage restart". (pref_set_defaults): Register a quit hook to save preferences. (pref_quit): Call pref_save to save all preferences when we quit. * manage.tcl (manage): Add "quit". (manage_init): Register a gdb_quit_hook. (manage_delete): Instead of guessing when and what to ask to confirm a quit, call gdbtk_quit. (manage_quit): New procedure. This is called from the gdb_quit_hook to save window active'ness and geometries by calling manage_save. * interface.tcl: Define "gdb_quit_hook". (gdbtk_quit): New procedure to call whenever a quit is requested. * global_pref.tcl (ok): Do not save preferences here. Fri Mar 27 12:21:07 1998 Keith Seitz * tracedlg.tcl (TraceDlg): Wait until idle to deiconify ourselves. * global_pref.tcl (Globalpref): Withdraw window before creating and deiconify it when idle. (cancel): Let the window manager destroy us. (ok): Let the window manager destroy us. * target.tcl (GdbLoadPref::constructor): Withdraw window before creating and deiconfiy it when idle. * memory.tcl (MemWin::constructor): Withdraw window before going busy. * register.tcl (RegWin::constructor): Withdraw window before going busy. * src.tcl (SrcWin::constructor): Withdraw window before creating and deiconify it when idle. Fri Mar 27 10:52:30 1998 Martin M. Hunt * target.tcl: Fix entry for temotetcp. * main.tcl (set_target_name): Build correct gdb_target_cmd. Fri Mar 27 11:23:18 1998 Elena Zannoni * target.tcl: (build_win) added call to change_target to get the correct entry widgets when the dialog is opened. Fri Mar 27 01:43:41 1998 Martin M. Hunt * target.tcl: Add simulator and remotetcp targets to target database. Change all the gdb/load/$target/foo preferences to gdb/load/$target-foo because the prefs code expects gdb/section/varname. The extra slash confuses it. (set_saved): Add saved_portname and saved_hostname for TCP. (write_saved): Add saved_portname and saved_hostname for TCP. (fill_rates): change states of hostname and portnum entry widgets. (fill_targets): Add fake remotetcp entry in target list. (change_baud): When switching between tcp and serial targets pack or forget the appropriate widgets. (build_win): Create hostname and port number entry widgets. (change_target): Update hostname and portnum widgets. * prefs.tcl (pref_save): Add 'load' as a section to be saved. Set gdb/load/target to 'exec'. * manage.tcl (_manage_null_handler): Deleted. * download.tcl (download_it): Don't call IDE functions unless GDTK_IDE is set. * main.tcl (gdbtk_tcl_preloop): Get name of executable if one was supplied on command line. (set_target_name): Save target name as preference. (run_executable): Call set_target. Fri Mar 27 00:23:46 1998 Keith Seitz * src.tcl (location): Catch error of getting location of main. * prefs.tcl (pref_set_defaults): Add gdb/toolbar/active. Add trace for global/fixed font to update src-font. (pref_read): Add code to deal with global preferences. (pref_save): Add code to deal with global preferences. (pref_src-font_trace): Trace function which set src-font to global/fixed. * global_pref.tcl (build_win): Relayout font selectors and add a selections for menu and default fonts. Rename Save to OK and Quit to Cancel, renaming methods, too. (font_changed): Add arguments to facilitate multiple fonts. (reconfig): Define as empty. (ok): Rewrite to facilitate multiple fonts. (cancel): Rewrite to facilitate multiple fonts. (apply): Rewrite to facilitate multiple fonts. * manage.tcl (manage_restart): Call gdbtk_idle to reset the toolbar after it is recreated. Thu Mar 26 23:49:26 1998 Martin M. Hunt * tdump.tcl, tfind_args.tcl: New files. Thu Mar 26 22:29:28 1998 Elena Zannoni * tracedlg.tcl: (config) commented out grab. Made window non-modal. (destructor) do not release grab. (done) do not reinstall grab. * toolbar.tcl: (create_buttons) changed buttons for the tracepoint case to open tdump window, and tracepoint window. (create_menu_items) change Run menu to do tstart, tstop for tracepoint case. Changed View menu to show tracepoint window for tracepoint case. Changed 'Control' menu to 'Trace' menu for tracepoint case, with tfind commands. * srcbar.tcl: (create_buttons) changed the buttons for the tracepoint case to do tfind commands. (_set_trace) new method. Toggles tstart/tstop button. * src.tcl: (config) decide defatul action for left click on source based on 'mode' preference. (bp_line) ditto. (config_win) modify pop upmenu on source window to display only 'set tracepoint'. * prefs.tcl: (pref_set_defaults) added preference gdb/mode for tracepoints or breakpoint display. * manage.tcl: (manage_init) added tracepoint window, args windows for tfind, tdump window. (manage_open) use eval in call to manage_create. * bp.tcl: (build_win) added PassCount to the display and modified the menus for the tracepoint case to display actions. (bp_add) display pass_count too in the tracepoint list. (bp_select) changed indexes of menu entries to be entries names. added field passcount to selection for tracepoints. (bp_modify) added passcount for tracepoints. (bp_delete) added passcount for tracepoints. (get_actions) new method Added new public member "tracepoints" to decide which kind of window needs to be displayed. * Makefile: added new files tfind_args.tcl and tdump.tcl. * tclIndex: regenerated Thu Mar 26 14:23:00 1998 Martin M. Hunt * main.tcl (set_target_name): Make target dialog always on top. * target.tcl (build_win): Bind Return to save. (GdbLoadPref): Denter dialog on screen. Thu Mar 26 14:16:36 1998 Keith Seitz * memory.tcl (update_address): Catch errors to update_addr so that we do not error and leave the GUI busy. Thu Mar 26 13:51:58 1998 Martin M. Hunt * toolbar.tcl (create_menu_items): Remove "Cygnus Foundry Tour" and "Submit a PR" from the menu. * src.tcl (file): Set title to GDB. * manage.tcl (manage_init): Set About name. * main.tcl (set_target): Set title to GDB. * interface.tcl (gdbtk_tcl_query): Set title correctly. * Makefile: Remove download_pref.tcl. Thu Mar 26 11:33:02 1998 Keith Seitz * Makefile: Add target.tcl to list of sources. * tclIndex: Rebuilt. * target.tcl (GdbLoadPref): Trace changes to gdb_loaded. (target_trace): New procedure. This is invoked by a write trace to gdb_loaded. * interface.tcl (gdbtk_busy): New procedure to run all busy hooks (gdbtk_update): New procedure to run all update hooks (gdbtk_idle): New procedure to run all idle hooks. Also runs the no inferior hooks if no inferior has been created. Rename old gdb_idle_hook to gdb_update_hook for clarity. Change all references of run_hooks to use gdbtk_busy, gdbtk_idle, and gdtk_update. * download.tcl: Make busy/update/idle hook changes. * main.tcl: Make busy/update/idle hook changes. (set_exe): Clear gdb_loaded whenever a new exec file is selected. * manage.tcl: Make busy/update/idle hook changes. * mem_pref.tcl: Make busy/update/idle hook changes. * memory.tcl: Make busy/update/idle hook changes. * register.tcl: Make busy/update/idle hook changes. * src.tcl: Make busy/update/idle hook changes. * stack.tcl: Make busy/update/idle hook changes. * variables.tcl: Make busy/update/idle hook changes. Merged with Foundry 1.0: Wed Mar 25 14:22:28 1998 Keith Seitz * register.tcl (reconfig): Call busy and idle hooks. * memory.tcl (update_address): Call busy and idle hooks. Wed Mar 25 11:38:49 1998 Martin M. Hunt * src.tcl (location): Fix typo. Tue Mar 24 21:03:01 1998 Martin M. Hunt * src.tcl (location): If gdb_listfuncs returns an error, display an error message that says the file was either not found or contained no debugging information. (location): When disassembling, put busy and idle calls before and after. Set "NoRun" to indicate the busy hook should not display the stop sign because the target isn't running, GDB may just take a few seconds to do the disassembly. (busy): Hack to support NoRun mode. * srcbar.tcl (_set_runstop): Add another case to disable the Run icon instead of changing it to a stop sign. * main.tcl (set_exe): If the file has no debugging information, display an error message and exit. This should only happen with intentionally stripped files. Tue Mar 24 17:04:36 1998 Keith Seitz * mem_pref.tcl (build_win): Keep track of all widgets that should be disabled when busy. (busy): New method which disables anything that could cause trouble. (idle): New method which re-enables anything that "busy" disables. (apply): Call busy and the busy hooks before doing update of memory window. Then call idle and the idle callbacks when we are done. Tue Mar 24 12:07:52 1998 Martin M. Hunt * src.tcl (location): Filter out .s and .S files because Foundry does not yet support assembly source debugging. Tue Mar 24 08:50:46 1998 Keith Seitz * register.tcl (but3): Don't pop up the right-click menu if we are running. * download.tcl (download_it): Force an update so that all windows are created and get their busy hooks called. * console.tcl (invoke): Make sure we are not running. (busy): New method. (idle): New method. Mon Mar 23 15:00:57 1998 Drew Moseley * src.tcl: (location): Assume we are locating main() if the target is not running and we can't figure out which function we are in. * main.tcl (run_executable): Change to assembly mode when we try to load a blank file. This usually means that source level debugging was not enabled when this file was compiled. Reverse the parameters to src method::location() method invocation so they are in the correct order Mon Mar 23 12:04:23 1998 Martin M. Hunt * src.tcl (update): Comment out debug lines. * main.tcl (set_target_name): If the target name changes, force a new "file" command to be issued by setting gdb_exe_changed. Sat Mar 21 00:09:37 1998 Martin M. Hunt * download.tcl (download_it): Remove call to run_idle_hooks. * src.tcl (no_inferior): Call set_execution_status. * bp.tcl (bp_modify, bp_delete): Change to take an entry number. (update): Sometimes "create" calls are for existing breakpoints and should be "modified" calls. Detect this and pass the entry number to bp_delete or bp_modify. Fri Mar 20 22:50:55 1998 Tom Tromey * console.tcl (insert): Remove all \r characters from string to be inserted. Fri Mar 20 01:55:14 1998 Keith Seitz * watch.tcl (validateEntry): Fencepost for running. * variables.tcl (VariableWin): Use "add_hook_before". (idle_done): New gdb_idle_done_hook for this object. (update): Don't call enable_ui here. (enable_ui): Change cursor for this object. (disable_ui): Ditto. (no_inferior): Ditto. * toolbar.tcl (GDBToolBar): Use "add_hook_before". * stack.tcl (StackWin): Use "add_hook_before". (StackWin): Encapsulate creation of this object with busy and idle hooks so that the user gets some feedback and to prevent other widgets from attempting to update. (update): Add some sanity checking so that we do not update with garbage in the window. (idle_done): New gdb_idle_done_hook for this object. (change_frame): Fencepost for running. (busy): New gdb_busy_hook for this object. (no_inferior): New gdb_no_inferior_hook for this object. (cursor): New helper method to set the cursor of all subwindows. * src.tcl (SrcWin): Use "add_hook_before". (toggle_updates): Use "add_hook_before". (stack): Encapsulate creation of the stack object with busy and idle hooks so that the user gets some feedback and to prevent other widgets from attempting to update. (idle_done): New gdb_idle_done_hook for this object. (set_execution_status): When Program is Terminated..., reset gdb_running. (config_win): Pull mouse pointer cursor assignments in text widget out into a separate function. (bind_src_tags): New method to set the cursor for the window's text widget tags. (disable_ui): Call bind_src_tags to change cursor to "watch". (enable_ui): Ditto. (no_inferior): Ditto. (cursor): New helper method to set the cursor of all subwindows. * register.tcl (RegWin): Encapsulate creation of this object with busy and idle hooks so that the user gets some feedback and to prevent other widgets from attempting to update. Use "add_hook_before". (reg_select_up): Fencepost for running. (reg_select_down): Fencepost for running. (reg_select_right): Fencepost for running. (reg_select_left): Fencepost for running. (reg_select): Fencepost for running. (edit): Fencepost for running. (idle_done): New gdb_idle_done_hook for this object. (busy): New gdb_busy_hook for this object. * memory.tcl (MemWin): Encapsulate creation of this object with busy and idle hooks so that the user gets some feedback and to prevent other widgets from attempting to update. Use "add_hook_before". (create_prefs): Fencepost for running. (idle_done): New gdb_idle_done_hook for this object. (edit): Fencepost for running. (newsize): Fencepost for running. (busy): New method to block UI while running inferior. (do_popup): Fencepost for running. (cursor): New method to change the cursor definition for this object. * manage.tcl (manage_init): Use "add_hook_before". * main.tcl (run_executable): Use "run_idle_hooks". * ide.tcl (gdbtk_ide_init): Don't create the source window here. * interface.tcl: Define new hook "gdb_idle_done_hook" -- to be called when the debugger does completely idle to allow input to objects again. (run_idle_hooks): New procedure to wrap the idle hooks. (gdbtk_tcl_idle): Split the idle callbacks into two parts: one that only updates widgets and one that tells widgets to accept input again. * download.tcl (Download): Use add_hook_before instead of add_hook. (download_it): Use run_idle_hooks instead running the idle hooks directly. * bp.tcl (BpWin): Use add_hook_before instead of add_hook. Wed Mar 18 18:59:00 1998 Sean Mahan * download.tcl (download_hash): Added an 'update' so the status bar would work on an MBX board. Wed Mar 18 01:50:19 1998 Martin M. Hunt * prefs.tcl (pref_set_defaults): Define gdb/src/tab_size to default to a tab size of 4. * src.tcl (setTabs): Set up tabs correctly. * download.tcl (download_it): Set correct state after user cancels download. Tue Mar 17 12:30:23 1998 Tom Tromey * console.tcl (throttle): New public variable. (insert): Delete initial text when past the throttle limit. Tue Mar 17 13:31:38 1998 Keith Seitz * ide.tcl (gdb_exit_check): Do not let gdb confirm the quit if we are downloading. Tue Mar 17 13:25:22 1998 Keith Seitz * console.tcl (insert): Force update of screen. Mon Mar 16 10:22:00 1998 Sean Mahan * toolbar.tcl (create_menu_items): Added 'Submit PR' to the help menu. For PR15334 Sun Mar 15 15:01:27 1998 Tom Tromey * interface.tcl (gdbtk_tcl_fputs): Don't call update. * src.tcl (build_win): Changed capitalization on balloon help. Fri Mar 13 10:01:48 1998 Keith Seitz * src.tcl (mode): Add a horizontal scrollbar to the assembly pane of SRC+ASM mode when necessary. Fri Mar 13 00:47:59 1998 Martin M. Hunt * main.tcl (run_executable): Don't force downloads for sim. * download.tcl (download_it): Don't bother calling calling set_baud for sim. * manage.tcl (manage_delete): Deregister the window before deleting it to prevent those annoying bgerror messages. Thu Mar 12 15:28:22 1998 Keith Seitz * download.tcl (Download): Define a list of all sections. (update_download): Loop through the list of sections, updating the current section's progress and marking any previously loaded sections as done, if needed. (do_download_hooks): New procedure. (download_hash): Use a timer to force update of GUI at regular intervals -- GUI should not update 10,000 times a second. Tue Mar 10 06:32:24 1998 Keith Seitz * interface.tcl (gdbtk_tcl_query): Allow caller to specify the default button. If none is specified, it is set to 'yes'. * manage.tcl (manage_delete): While inferior is running, gdb_cmd returns immediately, so we need to manually ask the user if he wants to quit. Tue Mar 10 10:52:09 1998 Martin M. Hunt * download.tcl (download_it): Change where old breakpoints are cleared. (done): Set focus on "OK" or delete. Tue Mar 10 05:23:42 1998 Keith Seitz * src.tcl (do_key): New method to wrap all keypresses. (mode): Use do_key method. (config_win): Use do_key method. Mon Mar 9 23:06:21 1998 Martin M. Hunt * src.tcl (download_progress): Add an optional message parameter to the function for use with error messages. Don't set_status twice on cancel. Call update if load fails. * download.tcl (done): If 'msg' is set, it should be displayed and download has failed. Update all source windows. (cancel): Don't delete window here. Let it get deleted after call to method 'done'. (download_it): If download failed, call done method with error message. Force reissue of target command. Handle set_target failures. * main.tcl (set_target): Check result of target command to see if the user cancelled the command. (run_executable): Use gdb_program_has_run instead of gdb_app_running, which was removed everywhere. Force download when gdb_program_has_run. If user cancels download before the download starts, preserve previous state. Mon Mar 9 15:06:21 1998 Martin M. Hunt * console.tcl (invoke): After gdb_immediate() finishes check to see if the window is still there. * main.tcl: Initialize gdbtk_state(console). * interface.tcl: Remove some unused globals. Replace gdb_console with gdbtk_state(console). (gdbtk_tcl_readline_*): Don't set gdbtk_state(console) every time. Let manage.tcl do it. * manage.tcl (manage_create): Replace gdb_console with gdbtk_state(console). Check for windows that were deleted, but not actually gone yet. (manage_delete): Replace gdb_console with gdbtk_state(console). Mon Mar 9 09:08:11 1998 Keith Seitz * watch.tcl (build_win): Tweak layout of the entry and button, switching to grid geometry manager. Thu Mar 26 01:22:23 1998 Martin M. Hunt * target.tcl: New file. Implements target dialog. * srcbar.tcl (_set_run): Remove because it was no longer used. * util.tcl (freeze): Only call idewindow_freeze when using the IDE. * prefs.tcl (pref_set_defaults): Set default tab size to 4. * src.tcl (location): If gdb_listfuncs cannot find functions, display error message. (setTabs): Set real tabs according to gdb/src/tab_size. * main.tcl (set_exe): Check to see if file was stripped. Cannot debug without some symbols. (set_target_name): If target changes, set gdb_exe_changed so new "file" command will be sent. When not using IDE, display target requester. * manage.tcl: Set loadpref to GdbLoadPref. Wed Mar 25 14:13:52 1998 Elena Zannoni * manage.tcl (manage_init) added tracedlg and actiondlg windows. Wed Mar 25 14:08:51 1998 Elena Zannoni * interface.tcl (gdbtk_tcl_pre_add_symbol): New procedure. (gdbtk_tcl_post_add_symbol): New procedure. * src.tcl (set_execution_status): Use "set_status" to write to the status bar, not "set Status". Mon Mar 23 13:41:39 1998 Elena Zannoni * memory.tcl: Changes to support new faster gdb_get_mem(). (do_popup): Add "Go To" and Open New Window" to the popup menu. Sat Mar 21 21:18:06 1998 Elena Zannoni Merged changes from Foundry (list follows in reverse chronological order) Sean Mahan * download_pref.tcl (help): Added method to display context sensitive help. Keith Seitz * src.tcl (bp_line): Don't insert breakpoints if we're running. (disable_ui): Disable selections. Workaround for TkTextDisplay bug. (enable_ui): Enable selections. (no_inferior): Enable selections. Tom Tromey * toolbar.tcl (create_menu_items): Use gdb_immediate, not gdb_cmd, so that output appears in console window. * src.tcl (bp_line): Use gdb_immediate when running "continue". (mode): Use gdb_immediate, not gdb_cmd, so that output appears in console window. (config_win): Likewise. * srcbar.tcl (create_buttons): Use gdb_immediate, not gdb_cmd, so that output appears in console window. * console.tcl (lvarpush): Removed. (_insertion): New method. (_saved_insertion): New private variable. (constructor): Don't let user use mouse to put cursor outside command line. * src.tcl (build_win): Use global/status font on status bar. * interface.tcl (gdbtk_tcl_query): Moved vwait out of `if' statement -- must vwait in all cases, not just in case when question is actually asked. Keith Seitz * variables.tcl (deleteTree): Reset Locals and ChangeList, too. Martin M. Hunt * toolbar.tcl (enable_ui): Don't always set stepi and nexti buttons on. Keith Seitz * toolbar.tcl (no_inferior): Instead of enabling/disabling the individual menus on Windows, disable each menu's entries. (disable_ui): Ditto. (enable_ui): Ditto. Keith Seitz * manage.tcl (manage_delete): Catch destruction of the src window when downloading and ask user if this is what he intends. (manage_init): Don't install idle, busy, and no_inferior hooks. Allow gdb to exit whenever the user wants to. * srcbar.tcl (cancel_download): download_cancel_ok is a global. Martin M. Hunt * ide.tcl (receive_file_changed): Minor fix when a new executable is built when GDB is running. Martin M. Hunt * bp.tcl (bp_delete): If a selected breakpoint is deleted, set "selected" to 0. Keith Seitz * srcbar.tcl (cancel_download): New method to cancel downloads. Needed to cancel download dialog-enabled downloads. (_set_runstop): Call cancel_download. * download.tcl (Download::constructor): Make sure to set the toolbar properly so that the Stop/Cancel button cancels a download. (download_it): Force the CANCEL to all download_progress_hook's. * src.tcl (download_progress): Add special section identifier for canceled downloads. (SrcWin::destructor): Pass the state_hook's command to remove_hook. Sean Mahan * toolbar.tcl (create_menu_items): Help menu follows "Help Topics" standard (PR 15082). Tom Tromey * interface.tcl (gdbtk_tcl_query): Consolidate Windows case; must `vwait' even when question is already being asked. Martin M. Hunt * interface.tcl (gdbtk_tcl_query): Only use ide_messageBox on Windows. Martin M. Hunt * register.tcl: Catch several gdb_register commands so errors don't bother us. * variables.tcl (destructor): Remove all hooks. Martin M. Hunt * download.tcl (done): Don't let seconds be zero. * manage.tcl (manage_disable_all): Don't ever disable "." Martin M. Hunt * main.tcl (run_executable): Removed delete_breakpoints stuff. * download.tcl (download_it): Removed delete_breakpoints stuff. Clear any breakpoints at exit and main before restarting. They get set again automatically if the preferences say they should. (Download): Don't call freeze on download window, because it stops updating when we do. (update): Renamed to update_download to avoid confusion. * src.tcl (mode): When changing from SRC+ASM to another mode, unset "awin". (bp_line): On a "Continue to Here" don't try to restore breakpoints that didn't exist before. Tom Tromey * interface.tcl (gdbtk_tcl_query): Set -parent on dialog. Martin M. Hunt * src.tcl (build_win): Set mode combobox width to 10. (goto_func): If a function name is an unmangled one, it is a C++ method so don't prepend filename when setting location. This is a kludge, but we are limited by the symtax the GDB command line parser will accept. (location): When loading function combobox, remember which names are unmangled. Change width of function combobox dynamically to better accomodate those long C++ names. Martin M. Hunt * src.tcl (bp_line): When doing a "continue to here", first save states of all breakpoints then restore when finished. (config_win): Uncomment "Continue to Here" menu item. Martin M. Hunt * src.tcl (location): Use ide_cygwin_path on Windows to change project root to the right format. Drew Moseley * main.tcl: (run_executable): Modified to call download_it with the parameter indicating whether to delete breakpoints. If GDB is loaded ($gdb_loaded == 1) and the app is running ($gdb_app_running == 1) then we don't delete the breakpoints. All other situations will require deleting the breakpoints. This allows us to redownload and run the same executable w/o losing the breakpoint information. * download.tcl: (download_it): Modified this routine to take a boolean parameter indicating whether to delete the breakpoints before downloading. Sean Mahan * toolbar.tcl (create_menu_items): Couldn't use 'helpdir' variable so used Paths(prefix) and added help. Martin M. Hunt * src.tcl (set_state): Turn off debugging. (location): Map windows pathnames into form GDB uses internally. (bp_line): Use gdb_set_bp to set breakpoints on a specific line in a file. Martin M. Hunt * stack.tcl (update): Skip over any empty elements in parsing the stack line to get the correct PC. Keith Seitz * download.tcl (download_it): Run gdb_busy_hook's. If anything fails, make sure that the no_inferior_hook's are run. Note errors that occur during downloading, ignoring the "cancelled download" message. If an error occurs, set the global gdb_download_error to the error message so that it can be shown to the user later. Don't run the idle hooks if nothing * src.tcl (download_progress): Do not rely on the value of "download_cancel_ok" -- it is cleared in download_it. Reorder code to take advantage of gdb_loaded and gdb_download_error to determine if a download was canceled, successful, or failed due to an error. Truncate the "DOWNLOAD FINISHED:" message so that it will fit into the status bar given the recent font changes. (busy): If gdb_loaded, set the status bar to read "Program is running." Otherwise, don't touch it. (config_win): Comment out "Continue to here" right-click menu item until it can properly preserve breakpoint state. (no_inferior): Configure the toolbar to -runstop 0. All of these toolbar references should be done via the busy hook by the SrcBar class itself someday... Sean Mahan * toolbar.tcl (create_menu_items): Added ability to launch the tour help file from the help menu. Martin M. Hunt * manage.tcl, ide.tcl: Disable some debugging messages. Martin M. Hunt * src.tcl (set_state): When loaded state changes, invalidate current file. Martin M. Hunt * src.tcl (SrcWin): Change default title to "Foundry Debugger". (build_win): Change name and function combobox heights to 0. Set status bar font to src-font. (name): Rewrite to use _files array. This array allows us to map full pathnames with short names that are easily displayed. (file): Call set_name to update name combobox. (location): Call set_name to update name combobox. When setting the function combobox, adjust height to a maximum of 10. CLear filename combobox if there is no valid filename. When setting the filename combobox, adjust height to a maximum of 10. Create _files array mapping full pathnames to short names. For IDE, use vmake/source-files and project-root to build full pathnames. When changing mode, save current line. Don't mark current line with PC_TAG if gdb_running is 0. (set_name): New function. Update the name combobox, using the short name from _files if available. * bp.tcl (bp_modify, bp_add): Use short file name from _files global array. Keith Seitz * variables.tcl (VariableWin): Add idle, busy, and no inferior hooks. (selectionChanged): Use Running fencepost. (updateNow): Use Running fencepost. (editEntry): Use Running fencepost. (postMenu): Use Running fencepost. (setDisplay): Use Running fencepost. (open): Use Running fencepost. (close): Use Running fencepost. (enable_ui): Define new procedure to install fencepost. (disable_ui): Define new procedure to remove fencepost. (no_inferior): Define new procedure to remove fencepost and clear tree. (Running): New protected data. This is used as a fencepost in this object. * main.tcl: Run gdb_no_inferior_hook's when done initializing. * src.tcl (disable_ui): Disable the combo boxes, too. (enable_ui): Enable the combo boxes, too. * download.tcl (download_it): Run gdb_no_inferior_hooks, too. Martin M. Hunt * main.tcl: Move IDE help initialization to ide.tcl. * ide.tcl (gdbtk_ide_init): Move help system initialization here. Sean Mahan * main.tcl: Initialized help sub-system for the ide. Tomy Hudson * prefs.tcl: Changed COM1 back to com1 per Martins request. Martin M. Hunt * src.tcl (file): Call gdb_loadfile to do most of the work. Tomy Hudson * prefs.tcl: Changed "com1" to "COM1" * main.tcl: (run_executable): Added code to test for app_running. If the app has been started and the user requests a "run", then we must redownload to ensure that the global initialized data is handled properly. * download.tcl: (download_it): See above note. Sean Mahan * toolbar.tcl (create_menu_items): changed "Tutorial" to "Cygnus Foundry Tour" in the Help menu. Tom Tromey * memory.tcl (mem_del): "destroy forget" is invalid; use "destroy" instead. * interface.tcl (gdbtk_tcl_query): Only ask each question once. Martin M. Hunt * manage.tcl (manage_init): Initialize new global _manage_enabled_flag to 1. (manage_disable_all): Only disable if _manage_enabled_flag is 1. (manage_enable_all): Only enable if _manage_enabled_flag is not 1. Martin M. Hunt * manage.tcl (manage_iconify): Check for toplevel of "." before doing anything. * main.tcl (set_target_name): Use "pref getd" in case port is undefined. Keith Seitz * toolbar.tcl (GDBToolBar::constructor): Add appropriate idle, busy, and no-inferior hooks for this class. (create_buttons): Add all buttons to two lists so we can disable or enable them according to the inferior's run state. (create_menu_items): Same with the menus. * srcbar.tcl (create_buttons): Add all buttons to two lists so we can disable or enable them according to the inferior's run state. (create_menu_items): Same with the menus. (_set_run): Don't do anything to disable UI elements: the idle, busy, and no_inferior hooks will take care of it. (_set_runstop): Don't do anything to disable UI elements: the idle, busy, and no_inferior hooks will take care of it. * manage.tcl (manage): Add two new manage protocols: enable_all and disable_all. (manage_disable_all): New procedure to disable window manager functions such as window deletions. (manage_enable_all): New procedure to undo any changes made by manage_disable_all. (_manage_set_property): New helper procedure for above. (manage_init): Install this module's idle, busy, and no_inferior hooks. * src.tcl (SrcWin::constructor): Add new no_inferior hook. (disable_ui): New procedure to disable ui elements. (enable_ui): New procedure to enable_ui elements. (no_inferior): New procedure to reset GUI. (SrcWin::Running): New protected variable. A fencepost for the above hooks. (do_popup): Use above fencepost. (showBalloon): Use above fencepost. * main.tcl: Define new hook " gdb_no_inferior_hook". Martin M. Hunt * src.tcl (SrcWin): Immediately set title name to "Debugger". Martin M. Hunt * download_pref.tcl (LoadPref): Make window transient. Martin M. Hunt * register.tcl (build_win): Set scrollbars to auto on Unix. * stack.tcl (build_win): Set scrollbars to auto on Unix. * memory.tcl (build_win): Restore proper resize functioning on Unix. * bp.tcl (build_win): Fix problem with merging Tom's sizebox change. Fix Tom's change so scrollbars aren't always on on Unix, at least. * interface.tcl (gdbtk_pc_changed): Called from GDB when the PC is changed with a "set $pc" command. (gdb_show_command, gdb_args, gdb_stack_trace, gdb_docstring,gdb_stack_depth, gdb_stack_frame): Removed. Martin M. Hunt * memory.tcl (destructor): Destroy memory prefs window if one exists. (create_prefs): Make prefs window transient. * util.tcl (freeze): Make keep_raised an option. Martin M. Hunt * ide.tcl (receive_file_changed): Ignore object file changes. On source file changes, put up a messagebox warning the user. Change both messageboxes to be system modal, which seems to just mean they will be on top. Martin M. Hunt * download.tcl (download_it): Reset download_cancel flag. * src.tcl: Create "tagtype" as a protected variable containing the current tag mode; PC, BROWSE, or STACK. Change all functions to use it. (mode): Fix problem with changing modes while browsing stack functions. (name): Add good filenames to the combobox history. (SrcWin): Turn off automatic history in name combobox. (file): If filename is not found, but is part of sources, put it in combobox followed by "(not found)" (location): Reorder and restructure this function to be more robust when files cannot be found or mode changes are required. When stack browsing, highlight PC if it is in the displayed area, and fix the off-by-1 problem with PCs saved on the stack. (update): Use lassign and new tagtype variable. (set_execution_status): Change message formats for MIXED and SRC+ASM modes. (mode): Update toolbar and mode display before calling location. Use tagtype so tag mode is preserved. * bp.tcl (bp_type): Deselect line before changing its type. Tom Tromey * bp.tcl (build_win): Use built-in sizebox of tixScrolledWindow. * watch.tcl (console): Set Sizebox to 0. * memory.tcl (build_win): Use built-in sizebox of tixScrolledWindow. * stack.tcl (build_win): Use built-in sizebox of tixScrolledWindow. * locals.tcl (build_win): Don't create sizebox. * variables.tcl (build_win): Use built-in sizebox of tixScrolledWindow. (Sizebox): New instance variable. * console.tcl (console): Use built-in sizebox of tixScrolledWindow. * register.tcl (build_win): Use built-in sizebox of tixScrolledWindow. Martin M. Hunt * main.tcl (set_target_name): Set port based on target name. (set_baud): Set baud rate based on target name. * srcbar.tcl: Change shortcuts to use () instead of <>. * download.tcl (download_it): Set download_verbose based on target name. * src.tcl (build_win): Set height to 0 for name and function comboboxes. (location): In IDE, use vmake/source-files property to fill name combobox. Keith Seitz * variables.tcl (build_win): Set the variable window's default size to 40 chars. Martin M. Hunt * src.tcl (set_state): When loaded state changes, set program_has_run state to 0. Martin M. Hunt * src.tcl (set_status): Rewrite to handle temporary status messages. (set_execution_status): New function. Put a message about the current program status in the status bar. (trace_help): New function. Trace on changing ballon help messages. Write them in the status bar. * main.tcl (set_target): Comment out changing cursor. Martin M. Hunt * variables.tcl (changeValue): Trim string before comparing with "". Keith Seitz * console.tcl (constructor): Set no wrap mode. * src.tcl (SrcWin::name): Make sure we ask gdb where the source file is before asking the source window to open it. (SrcWin::file): Do not ask gdb where the file is -- someone else already has. Set the file selector to the filename only once and only if successful finding the file. (SrcWin::location): Add flag idicating that a file load has failed. Resolves recursive loop with SrcWin::mode and SrcWin::location. Make sure the file and function selectors are filled only once. (SrcWin::mode): Add error flag to indicate that a file load failed. Resolves recursive loop with SrcWin::location. Make sure we exit with the proper mode set on the source window. (SrcWin::current_addr): Define a default value of 0x0. * console.tcl (invoke): Use new gdb_immediate command instead of gdb_cmd. (insert): Add all errors to the end of the text widget. Send errors to end of text widget, not insertion pt. (einsert): Send errors to end of text widget, not insertion pt. * interface.tcl (gdbtk_tcl_readline_begin): Insert message into command window so that the user sees messages like "Enter commands, one per line. Enter 'end' when finished." * main.tcl: Initialize gdbtk_state(readline). Tom Tromey * manage.tcl (manage_open): Force focus onto toplevel. * mem_pref.tcl (build_win): Don't put binding on toplevel; instead put focus on OK button. Martin M. Hunt * main.tcl (set_target_name): Replace "com1" with the port name we really want to use. * bp.tcl (build_win): Use place manager for sizebox so it doesn't go away when window is resized. * stack.tcl (build_win): Fix stack window. * memory.tcl: Back out previous changes. * locals.tcl (build_win): Use place manager for sizebox so it doesn't go away when window is resized. Tom Tromey * mem_pref.tcl (build_win): Make OK button default. * ide.tcl (gdbtk_ide_init): Set gdb_pretty_name. Track changes to target-pretty-name property. * src.tcl (update_title): Display pretty name for target. * main.tcl (set_target): Display pretty name for target. (gdb_pretty_name): New global. * ide.tcl (target_pretty_name_changed): New proc. (receive_file_changed): Display pretty name for target. * download.tcl (download_it): Display pretty name for target. (console): Likewise. Thomas Hudson * bp.tcl (build_win): Added frame and sizebox to bottom. Returned geometry management to previous packing style and window layout. * stack.tcl (build_win): ditto * memory.tcl (build_win): ditto * watch.tcl (build_win): ditto * locals.tcl (build_win): ditto Martin M. Hunt * manage.tcl (manage_iconify): Catch iconify command. * download.tcl (download_it): If set_target fails, set gdb_downloading to 0 and return. * main.tcl (set_target): Handle target command timeouts. Pop up messagebox. Set cursor to "watch". Set title on source window. Return 0 on error. Martin M. Hunt * manage.tcl (manage_find): Fix to return a list of windows. * console.tcl (Console): Fix sizebox so it doesn't create a whole blank line and it doesn't mess up Unix. * register.tcl (build_win): Change "Show" to "Display". Tomy Hudson * console.tcl (build_win) Added frame and ide_sizebox to bottom of window. * stack.tcl (build_win) Added frame and ide_sizebox to bottom of window. * watch.tcl (build_win) Added frame and ide_sizebox to bottom of window. * locals.tcl (build_win) Added frame and ide_sizebox to bottom of window. Tom Tromey * memory.tcl (build_win): Updated -underline values. Martin M. Hunt * memory.tcl (init_addr_exp): New function. Set the initial address expression to the location of .data if it is defined. Otherwise use $pc. Tom Tromey * bp.tcl (build_win): Changed packing so content fills window. Removed `g' and `a' frames. Changed gridding on labels. (bp_add): Changed gridding on new entries. * memory.tcl (build_win): Put spaces in front of all menu labels. Martin M. Hunt * download.tcl (download_it): Change error to messagebox. Tom Tromey * register.tcl (reg_display_list): Initialize to empty list. (init_reg_display_vars): Don't unset reg_display_list; set it to empty list. (delete_from_display_list): Likewise. Martin M. Hunt * ide.tcl (ide_run_server, ide_do_run_server): Take an optional argument to indicate if program should be run or simply downloaded. * console.tcl (Console): Enable scrollbars in both directions. * main.tcl: Moved keep_raised, sleep, and toggle_debug_mode to util.tcl. (set_exe): If exe changed, set gdb_target_changed to force new target command to be sent. (set_target_name): Check to see if gdb_target_changed. (run_executable): If exe or target changed, set gdb_loaded to 0, forcing a new download. If download only, try to display function main in source window. * util.tcl: New file. * hooks.tcl: Removed. Use version in libide. * Makefile: Add util.tcl. * download.tcl (Download): Call freeze to make modal window. (_map): Deleted. (download_it): Call set_baud, then set_exe then set_target. * mem_pref.tcl (build_win): Set default number of bytes to 128. * memory.tcl (build_win): Enable horizontal scrollbar when in resize mode. Anchor to top-left. Use "nb" to count actual number of bytes displayed, instead of "numbytes" which will be 0 when in resize mode. (delete_prefs): Deleted. * src.tcl (mode): Update mode combobox with new mode name. (location): In SRC+ASM mode if we step into a function without source code, unhighlight everything in the source pane and let the assembly pane show our current location. (build_win): Enable scrollbars in both directions. (set_state): Call update_title. (update_title): Don't set title if the target or exe has changed. (trace_variable): Couldn't figure out what this did that could be useful so delete it and everything that references it. * watch.tcl: Add description and copyright. * variables.tcl, interface.tcl, locals.tcl: Add copyright. * prefs.tcl, register.tcl: Add copyright. Tomy Hudson * register.tcl (reg_select_): Modified reg_select_* movement methods to use the register display list instead of a straight index. Tomy Hudson * register.tcl (unedit): Changed input focus to $ScrolledWin.$Editing in unedit. This allows arrow and tab key bindings to work after an edit. Tomy Hudson * register.tcl (build_win): Added key bindings and support for tab and arrow keys, including four new methods; reg_select_up,reg_select_down, reg_select_left, reg_select_right * register.tcl (build_win): Added spacing frame and ide_sizebox to window. Changed geometry manager to grid. Martin M. Hunt * stack.tcl (update): Only insert entries that have length. Break when matching entry in listbox is found. * src.tcl (config_win): Fix control-v binding so it doesn't paste on Windows. Cancel binding. Martin M. Hunt * src.tcl (build_win): Force focus from toplevel down to text window. (mode): Restructure code to be clearer. Set focus when done. Tomy Hudson * src.tcl (mode): Modified key bindings for MIXED mode to be the same as ASSEMBLY mode Martin M. Hunt * manage.tcl (manage_init): set bp-save to 1. * variables.tcl (changeValue): If new value is null, cancel edit. Tomy Hudson * memory.tcl (do_popup): Added method do_popup. Changed binding of button-3 to invoke popup menu. Tomy Hudson * src.tcl (do_popup): Removed check for space in variable name that disabled popup menu items. Only check now is for "". Tomy Hudson * src.tcl (do_popup): Removed variable name from popup menu items. Added check for sane variable in selection to disable menu items when appropriate. Martin M. Hunt * bp.tcl (bp_delete): Destroy widgets in deleted line. * srcbar.tcl (_set_run): Enable View menu items when download is finished. * download_pref.tcl (LoadPref): Call loadprefs with gdbrunning set to 1. Tom Tromey * ide.tcl (gdbtk_ide_init): Use property vmake/exelist, not vmake-exelist. Martin M. Hunt * variables.tcl (build_menu_helper): Comment-out Update menu. (getVariables): Change variable name so it doesn't get confused with window variables. (postMenu): Comment-out Update entries. (UnEdit): Unbind keys when unediting. * memory.tcl (create_prefs): When prefs are already open, raise and focus the window. * bp.tcl (bp_type): Deselect current line when type changes. Martin M. Hunt * toolbar.tcl (create_menu_items): Call open_url for web connections. * src.tcl (name): When new file load fails, remove it from combobox. When load succeeds, clear status message. (location): Change how files are loaded into combobox. Call new gdb_listfiles function. Martin M. Hunt * manage.tcl (manage_create): Give newly created windows the focus on all platforms. * mem_pref.tcl (destructor): Notify parent when exiting. * srcbar.tcl (_set_run): Better state handling on pulldowns and icons. * src.tcl (build_win): Start with toolbar in right state. * memory.tcl (MemWin): Withdraw window until finished. (delete_prefs): New function. Martin M. Hunt * manage.tcl: For IDE, iconify all windows when source window is iconified. * mem_pref.tcl: Take out all the modal stuff. Leave this window non-modal. * download.tcl: Fix references to source window. (Download): Make window modal and always on top. * memory.tcl (destructor): Kill mem prefs window too. * variables.tcl (changeValue): Clean up. * register.tcl (acceptEdit): Change error messagebox. Martin M. Hunt * src.tcl (set_state): Disable items in breakpoint popups. (config_win): Change capitalization in popups. Martin M. Hunt * main.tcl: Major rewrite. Simplify. Move IDE functions to new file. Add state variables and hooks. Add copyright. * ide.tcl: New file. IDE functions. * download.tcl (download_it): Use new state variables. * src.tcl: Use new state variables. (constructor): Add state hook. (set_state): Hook to enable/disable menus and icons. * srcbar.tcl (runstop): Renamed from "running" (running): Public variable to control icons. (_set_runstop): Change Running man to stop sign. (_set_run): Enable/disable icons depending on debugger state. * manage.tcl (create_closed): Deleted function. (manage_create): Remove visibility argumnet. (manage_delete): Remove special case for debugger prefs. * prefs.tcl (pref_set_defaults): Remove gdb/advanced. * hooks.tcl: Add copyright. * Makefile: Add ide.tcl. Tom Tromey * download_pref.tcl (LoadPref): Inherit from GdbLoadPref. (constructor): Rewritten. (build_win): Removed. (change_baud): Removed. (save): Removed. (cancel): Removed. (config): Removed. (reconfig): Removed. Martin M. Hunt * main.tcl (target_name_changed): Append correct port name to target name. (gdbtk_ide_init): Don't initialize IDE preferences. Append port name to target name. * toolbar.tcl (create_menu_items): Add Debugger Preferences to File menu. * pref.tcl: Remove all ide preferences functions. * prefs.tcl (pref_set_defaults): Define gdb/load/port. * download_pref.tcl: Added serial port selection. Martin M. Hunt * register.tcl (acceptEdit): Remove leading spaces from values. * src.tcl (config_win): New tag bp_tag. Like break_tag except used when a bp is set on that line. Bind new menu to bp_tag. (insertBreakTag): Accept tag type. Remove old tag. (do_bp): When a breakpoint is set, use bp_tag. Tom Tromey * pref.tcl (pref_ide_proc): Withdraw the toplevel, not the window. Tom Tromey * tclIndex: Rebuilt. * mem_pref.tcl (build_win): Use standard_button_box. (_map): New method. (constructor): Run _map on event. * pref.tcl (pref_ide_proc): Use idewindow_check_freeze. (pref_modal_dialog): Use idewindow_freeze and idewindow_thaw. * hooks.tcl: Removed. * Makefile (TCL): Removed hooks.tcl. Tom Tromey * main.tcl (ide_run_server): Quote call to ide_do_run_server. Tom Tromey * download_pref.tcl (build_win): Make OK button default. Invoke when Return pressed. * download_pref.tcl (build_win): Don't allow pref window to resize. Use standard_button_box to lay out buttons. * pref.tcl (pref_ide_proc): Handle window freezing. (pref_modal_dialog): Freeze and thaw window around the grab. (build_win): Use standard_button_box to lay out buttons. Don't allow pref window to resize. Ian Lance Taylor * src.tcl (src_ide_proc): Download the file in an idle callback. Execute the idewindow command even if the download was cancelled. * library/main.tcl (ide_run_server): Do everything in an idle callback. (ide_do_run_server): New procedure. Martin M. Hunt * src.tcl (bp_line): Use hasBP instead of validBPLine. Allow type TC even if BP set. (validBPLine): Renamed to hasBP. Tom Tromey * manage.tcl (manage_open): Special case "about" window when running under IDE. Martin M. Hunt * main.tcl (set_target): Set the target again if the executable has changed and executed a "file" command. * memory.tcl (update_address): Accept numerical entries and catch errors. * download.tcl (Download): Cancel button should call cancel method. * main.tcl (run_executable): Fixed messageBox. Tom Tromey * floatbar.tcl (constructor): Added. * srcbar.tcl (constructor): Added. * toolbar.tcl (_ide_title): New instance variable. (create_menu_items): Pass _ide_title to idewindmenu. Martin M. Hunt * main.tcl (toggle_debug_mode): Fix typo and print debug message before disabling it. Martin M. Hunt * manage.tcl (manage_delete): Don't remove a window from the active list until after it has already deleted itself. * toolbar.tcl (create_menu_items): Change Console shortcut to Ctrl+N. * src.tcl (config_win): Change Console shortcut to Ctrl+N. Martin M. Hunt * src.tcl: (do_bp): Catch errors. (validBPLine): Valid lines have a "-" or an image. Martin M. Hunt * main.tcl (ide_run_server): Don't run executable if download was cancelled. Reset cancelled flag. (run_executable): Call download_it. (download): Renamed download_it and moved to download.tcl. (set_target): Don't set target if the name hasn't changed from the last time. * register.tcl (reg_select): Catch errors. (delete_from_display_list): Enable menu item. * src.tcl (build_win): Add progress bar for downloads. (download_progress): New function. Callback to update progress meter. (src_ide_proc): Don't open src window if download cancelled. * toolbar.tcl (create_menu_items): Call download_it. * srcbar.tcl (_set_run): New mode. Sets run button to stop sign during downloads. * prefs.tcl (pref_set_defaults): Define gdb/load/verbose. * interface.tcl: Define new hook download_progress_hook. * floatbar.tcl (create_buttons): Call download_it. * download_pref.tcl: Add download dialog prefs. * download.tcl (Download): Change back to old dialog with each section listed seperately. (download_hash): Use a hook. (download_it): New function. Replaces old "download" from main.tcl. Now deletes all breakpoints before downloading and handles cancels correctly. Martin M. Hunt * main.tcl (download): Don't quote the executable name with single quotes. Tom Tromey * src.tcl (src_ide_proc): Exit gdb when destroy request seen. Ian Lance Taylor * main.tcl (gdbtk_ide_init): Use src_ide_proc for the source window, rather than idewindow_proc. Remove extraneous line. * src.tcl (src_ide_proc): New procedure, replacing open_src. Only download if we are opening the source window. (src_no_save): New procedure. * main.tcl (gdbtk_ide_init): Initialize gdb_checking_for_exit. Register gdb_exit_check as the exit check procedure. (gdb_exit_check): New procedure. * interface.tcl (gdbtk_tcl_query): If gdb_checking_for_exit, use a system modal message box. * src.tcl (build_win): Create a FocusIn binding to push focus down from the top level. * console.tcl: Change all control, alt, and unadorned character bindings to use bind_plain_key. * memory.tcl: Likewise. * src.tcl: Likewise. * variables.tcl: Likewise. * src.tcl: Use bind_plain_key rather than explicitly ignoring Alt bindings. * src.tcl (print): Call idewindow_freeze and idewindow_thaw around call to print menu. * srcbar.tcl (create_menu_items): Likewise, around call to page setup menu. * main.tcl (gdbtk_ide_init): Use an underscore in generic window name, to set the accelerator key. (ide_run_server): Likewise. * toolbar.tcl (create_buttons): Likewise. Martin M. Hunt * register.tcl (acceptEdit): If no value is entered, set the cell to 0. Ian Lance Taylor * src.tcl (config_win): Add ignored Alt bindings for all the unmodified key bindings. * download.tcl (constructor): Withdraw the window before doing anything. Set the width of the label. Don't try to center the window. Pass toplevels to wm transient. Run keep_raised after 500. Don't call update. (done): Use after rather than a busy loop. (destructor): Cancel the after if it is defined. (after_id): New protected variable. * main.tcl (download): If download is already running, don't do anything. If .load0.load exists, delete it before calling manage create. * main.tcl (gdbtk_ide_init): Use pref_ide_proc rather than idewindow_proc when registering the preference window. * download_pref.tcl (save, cancel): Call pref_ide_finished. * pref.tcl (save, cancel): Likewise. (pref_ide_proc): New procedure. (pref_no_save): New procedure. (pref_modal_dialog): New procedure. (pref_ide_finished): New procedure. * tclIndex: Rebuild. * main.tcl (gdbtk_ide_init): Initialize gdb_download_cancelled. (run_executable): Put a trace on gdb_download_cancelled. Change the dialog box message. If the user cancels the download, clear gdb_run_pending and just return without running. (ide_do_run): Remove the traces on gdb_download_cancelled. If the user cancelled the download, just clear gdb_run_pending. (target_name_changed): Clear gdb_download_cancelled. Call set_exe_name. (download): If the executable is not up to date, ask whether the user is really really sure. If the user cancels the download using the dialog button, set gdb_download_cancelled, and don't set the breakpoints or gdb_download_complete. (set_exe_name): Clear gdb_download_cancelled. (receive_file_changed): Ask whether we should download the new executable. * src.tcl (open_src): Don't download the file if gdb_download_cancelled is set. * interface.tcl (gdbtk_tcl_query): Pass -modal task to tk_messageBox. * main.tcl (set_exe_name): Tell the src window to go back to looking at main if the file changes. * src.tcl (update): Catch errors when calling gdb_loc. * main.tcl (gdbtk_ide_init): Handle file-created, file-changed, file-removed, and file-deleted events rather than process-ended events. (set_exe_name): Call gdb_clear_file even if the file does not exist. Likewise for setting gdb_download_complete to zero. (receive_file_changed): Rename from receive_process_ended. Only check the executable mtime if the tail of the file name matches the executable name. Ian Lance Taylor * srcbar.tcl (create_menu_items): Change ``Print Setup...'' to ``Page Setup...''. Pass -parent to ide_winprint page_setup. * src.tcl (print): Pass -parent to send_printer. Ian Lance Taylor * main.tcl: Move initialization code to end of file, after all procedures have been defined. (gdbtk_ide_init): New procedure to handle IDE initialization. (gdbtk_tcl_preloop): Don't do anything if using the IDE. (ide_run_server): Error if file does not exist. Use idewindow_activate_by_name, rather than manage open. Do everything after idle. (run_executable): Clean up a bit. Consistently use ide_do_run. (target_name_changed): Rename from target_name. Rename parameter num to propset. (download): Error if the file does not exist. Call set_exe_name. Don't set gdb_download_mtime. Don't check whether gdb_run_pending is 2. (exe_name_changed): Rename from exe_name. (set_exe_name): Set gdb_exe_mtime. Quote filename passed to gdb_cmd. (receive_process_ended): Don't check the data argument. Check gdb_exe_set rather than gdb_download_complete. Check gdb_exe_mtime rather than gdb_download_mtime. * src.tcl (open_src): Set the location to main as well as downloading the file. Don't set gdb_run_pending to 2. Tue Feb 10 17:50:37 1998 Keith Seitz * bp.tcl (build_win): Do not set the disabled foreground for menus. Insert all tracepoints, too. (bp_add): Handle tracepoints. (bp_type): Handle tracepoints. (update): Handle tracepoints. (bp_all): Do tracepoints, too. (Index_to_bptype): New protected variable to index type of break (breakpoint or tracepoint) against index in window. (bp_select): Disable/Enable menu items based on type. (bp_able): Handle tracepoints. * src.tcl (do_bp): Handle disabled tracepoints. * actiondlg.tcl (change_other): Handle memranges and use info address to validate entries. * tracedlg.tcl (edit): Handle memranges when formatting data for action dialog. Mon Jan 26 11:44:39 1998 Keith Seitz * src.tcl (fill_files): Don't check for file's existance -- let SrcWin::name do that. * actiondlg.tcl (change): Add everything that is specified, not just the things about which we know. Sun Jan 25 01:01:32 1998 Martin M. Hunt * stack.tcl (update): Only insert entries that have length. Break when matching entry in listbox is found. * src.tcl (fill_files): Don't call lsort. New listfiles command sorts for us. * variables.tcl (changeValue): If new value is null, cancel edit. (build_menu_helper): Comment-out Update menu. (getVariables): Change variable name so it doesn't get confused with window variables. (postMenu): Comment-out Update entries. (UnEdit): Unbind keys when unediting. Thu Jan 22 10:38:19 1998 Keith Seitz * toolbar.tcl (create_menu_items): Disable preferences. * prefs.tcl (pref_set_defaults): Attach the toolbar to the source window by deafult. * src.tcl (SrcWin::build_win): Turn off history for the file selector. (SrcWin::name): Use SOURCEWIN_set_status to upate status. Make sure we ask gdb where the source file is before asking the source window to open it. (SrcWin::file): Do not ask gdb where the file is -- someone else already has. Set the file selector to the filename only once and only if successful finding the file. (SrcWin::fill_files): Sort the files before inserting into file selector. (SrcWin::location): Add flag idicating that a file load has failed. Resolves recursive loop with SrcWin::mode and SrcWin::location. Make sure the file and function selectors are filled only once. Use SOURCEWIN_set_status and SOURCEWIN_reset_status as appropriate. (SrcWin::set_status): Add verbatim flag to allow a generic message to be displayed. (SrcWin::mode): Add error flag to indicate that a file load failed. Resolves recursive loop with SrcWin::location. Make sure we exit with the proper mode set on the source window. (SrcWin::reset_status): New procedure. (SrcWin::current_addr): Define a default value of 0x0. (SrcWin::Status): New protected variable. (SrcWin::bp_line): Check if breakpoint set in assembly-mode, too. (SOURCEWIN_set_status): New procedure to temporarily set the status bar. (SOURCEWIN_reset_status): New procedure which is called after the status bar should be reset. (SOURCEWIN_reinit): New procedure to reinitialize the source window. (To be called when new symbol files are added and like). * interface.tcl (gdbtk_tcl_query): Properly set the name of the query dialog. (gdbtk_tcl_pre_add_symbol): Hook called from gdbtk.c to inform user that we are reading symbols. (gdbtk_tcl_post_add_symbol): Hook called from gdbtk.c to inform user that are finished reading symbols. * src.tcl (SOURCEWIN_reinit): New procedure which updates the source window with a default file, fills the file selectors, etc. (SOURCEWIN_set_status): New procedure which can be used to set the status bar on the source window. (set_status): Add flag for setting the status as-is. * main.tcl: Call SOURCEWIN_reinit to setup the source window on startup. Fri Jan 16 09:11:30 1998 Keith Seitz * src.tcl (SOURCEWIN_set_status): New procedure to allow anyone to set the status bar text at the bottom of the source window. (fill_files): Use a little more full-proof method (if slower) for eliminating duplicates int the files combobox. * interface.tcl (gdbtk_tcl_pre_add_symbol): New procedure called prior to a symbol file is loaded. (gdbtk_tcl_post_add_symbol): New procedure called after a symbol file is loaded. Thu Jan 15 12:41:27 1998 Keith Seitz * console.tcl (invoke): Use new gdb_immediate command instead of gdb_cmd. Wed Dec 31 16:50:26 1998 Keith Seitz (keiths@onions.cygnus.com) * actiondlg.tcl (change): handle '$' in register names.