Robert Sesek [Sat, 19 Jun 2010 16:14:23 +0000 (12:14 -0400)]
* In StackController, don't update the frame indices when |-push:|- or |-pop|-ing.
* Only retreive full stack frame information for frame 0. The other frames will be fetched lazily.
Robert Sesek [Thu, 15 Apr 2010 05:21:07 +0000 (01:21 -0400)]
* Factor out some code for parsing the txnID out of a command into |-transactionIDFromCommand:|.
* Change the way we use the write queue, with the aim of producing less into it and starving it infrequently.
Robert Sesek [Tue, 30 Mar 2010 05:10:00 +0000 (01:10 -0400)]
* Do not allow editing of the log table.
* Move the transaction checks from |-handleResponse:| to |-readStreamHasData|.
* Record log entries AFTER sending and receiving so that the transaction IDs make more sense.
Robert Sesek [Sun, 21 Feb 2010 16:32:50 +0000 (11:32 -0500)]
* Start plumbing data back to the UI now that we're partially working asynchronously
* Set up a callback for |-addBreakpoint:|
* Create |-transactionIDFromResponse:| helper
Robert Sesek [Wed, 17 Feb 2010 04:13:53 +0000 (23:13 -0500)]
* Start tracking the last read and last written transaction IDs
* Start numbering transactions at 1, rather than 0
* Kill some NSLogs
* Try to enfore strict ordering of read/writes using the last transaction information
Robert Sesek [Wed, 22 Jul 2009 04:34:20 +0000 (00:34 -0400)]
* Add a preference to automatically reconnect. Fixes bug #165.
* Create a GDBpConnectionDelegate formal protocol.
* No longer use notifications to pass errors from GDBpConnection to DebuggerController.
* Add delegate methods for |-debuggerConnected| and |-debuggerDisconnected|.
* Move GDBpConnection's |-socketDidAccept| implementation into a helper so it can be run on the main thread.
Robert Sesek [Wed, 22 Jul 2009 04:06:50 +0000 (00:06 -0400)]
* Completely de-couple SocketWrapper from GDBpConnection by passing the port directly to the ctor, rather than extracting it from the connection.
* Make SocketWrapperDelegate a formal protocl and GDBpConnection now conforms to it.
* Clean up delegate interface.
Robert Sesek [Sun, 17 May 2009 03:53:21 +0000 (23:53 -0400)]
More fixes for paths with spaces. We can't use single quotes to pass path names, so create a new method to escape them.
* Source/GDBpConnection.m:
(escapedURIPath): New private method that takes a path and returns a safe file:// URI
(addBreakpoint:): Use -[escapedURIPath:]
(createStackFrame:): Don't pass the escaped path to the frame, keep it internally
Robert Sesek [Sun, 17 May 2009 00:12:22 +0000 (20:12 -0400)]
Add a preference to disable automatic step-in upon connection
* English.lproj/Preferences.xib: Add checkbox to the general prefs
* Source/AppDelegate.m: Add NSUserDefaults default value
* Source/DebuggerController.m:
(startDebugger): Check pref before stepping
Robert Sesek [Sat, 16 May 2009 19:02:15 +0000 (15:02 -0400)]
Factored out the stack reloading code
* Source/DebuggerController.m:
(reloadStack): New private method to fetch and insert new stack
(run): Use reloadStack
* Source/GDBpConnection.m+h:
(getCurrentStack): New method to get the stack and create all the stack frames
(run): Return only the current stack frame instead of a whole stack
Robert Sesek [Sat, 4 Apr 2009 20:25:57 +0000 (16:25 -0400)]
Fix the run command by having it obliterate the current stack and set a new one
* Source/GDBpConnection.h+m:
(run): Now returns an NSArray of the new stack frames
(createStackFrame): Sets the StackFrame's index to be the depth
* Source/DebuggerController.m:
(run:): Set the new stack and refresh the source viewer
Robert Sesek [Sat, 4 Apr 2009 03:31:24 +0000 (23:31 -0400)]
Retain the selection in the variable list when stepping through code
* Source/DebuggerController.h: Add the selectedVariable ivar
* Source/DebuggerController.m:
(stepIn:): Save selected variable
(stepOut:): ditto
(stepOver:): ditto
(expandVariables): When looping over variables to expand, also reset the selection
Robert Sesek [Thu, 2 Apr 2009 18:35:58 +0000 (14:35 -0400)]
Have the inspector remember its visibility
* Source/AppDelegate.m:
(load): Set the default value
* Source/DebuggerController.m:
(init): Show/hide the inspector based on prefs
* English.lproj/Debugger.xib: Bind the inspector's visibility
Robert Sesek [Thu, 2 Apr 2009 18:00:24 +0000 (14:00 -0400)]
Add an item to the Window menu to allow the inspector to be shown/hidden
* Source/AppDelegate.m+h:
(showInspectorWindow:): New method
(showBreakpointWindow:): Make this toggle window visibility rather than just always bring to front
* Source/DebuggerController.m+h: Create ivar for the inspector and synth the property
* English.lproj/Debugger.xib: Hook up the outlet
* English.lproj/MainMenu.xib: Add menu item
Robert Sesek [Sun, 15 Feb 2009 16:02:27 +0000 (11:02 -0500)]
Fixed a segfault crash that would occur if you stepped at the end of a script
* Source/GDBpConnection.m:
(stepIn): Update the status before creating the stack frame so we know if we're connected or not
(stepOut): ditto
(stepOver): ditto
Robert Sesek [Tue, 10 Feb 2009 17:40:47 +0000 (12:40 -0500)]
Convert the run command to use the StackFrame system
* Source/GDBpConnection.m+h:
(run): Now returns a StackFrame object
(processData:): Return nil if the given data is nil
(createStackFrame): If we get an empty NSXMLDocument for the stack, return nil
(updateStatus): If the status is nil, the debugger is stopped
* Source/DebuggerController.m:
(run): Use the stack frame
* Source/SocketWrapper.m:
(receive): If the call to recv() returns -1 (error), return nil string
Robert Sesek [Fri, 6 Feb 2009 20:33:44 +0000 (15:33 -0500)]
The breakpoints window will now remember if it was opened or closed
* English.lproj/Breakpoints.xib: Bind the visible status to NSUserDefaults
* Source/AppDelegate.m:
(load): Add the default value for BreakpointsWindowVisible stdudef
* Source/BreakpointController.m:
(init): Only order the window back if BreakpointsWindowVisible is true