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 [Thu, 15 Apr 2010 05:06:26 +0000 (01:06 -0400)]
Use the new VersionCast URL.
Robert Sesek [Thu, 15 Apr 2010 04:56:02 +0000 (00:56 -0400)]
Remove duplicated logic.
Robert Sesek [Thu, 15 Apr 2010 04:40:25 +0000 (00:40 -0400)]
Try to recover from erroneous XML packets.
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 [Mon, 29 Mar 2010 21:53:44 +0000 (17:53 -0400)]
Officially kill TransportDebug env setting.
Robert Sesek [Mon, 29 Mar 2010 17:13:52 +0000 (13:13 -0400)]
Create a LoggingController that shows all the commands sent and received.
This will replace the TransportDebug variable. This first pass just adds very
basic support for this functionality. The view still needs some work.
Robert Sesek [Mon, 29 Mar 2010 15:37:26 +0000 (11:37 -0400)]
Create a top-level dev/ directory. Move resource masters there and import CFNetworkTest.
Robert Sesek [Sun, 28 Mar 2010 17:27:27 +0000 (13:27 -0400)]
Don't crash after pressing the "run" button or at end of script.
Robert Sesek [Sat, 27 Mar 2010 20:33:12 +0000 (16:33 -0400)]
Remove two obsolete methods: |-[DebuggerConnection getCurrentStack]| and |-[DebuggerController reloadStack]|.
Robert Sesek [Sat, 27 Mar 2010 20:26:09 +0000 (16:26 -0400)]
Rewrite |-[DebuggerConnection getProperty:]| to be asynchronous.
Robert Sesek [Sat, 27 Mar 2010 20:14:51 +0000 (16:14 -0400)]
Try to recover from malformed XML errors by manually parsing out the transaction_id.
Robert Sesek [Sat, 27 Mar 2010 19:44:53 +0000 (15:44 -0400)]
Rename GDBpConnection to DebuggerConnection. Also organize all the ivars and methods.
Robert Sesek [Sat, 27 Mar 2010 16:42:13 +0000 (12:42 -0400)]
Switch some basic ints to NSUInteger in GDBpConnection.
Robert Sesek [Sat, 27 Mar 2010 16:24:17 +0000 (12:24 -0400)]
Switch from GCC to Clang compiler.
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 [Sun, 21 Feb 2010 02:25:52 +0000 (21:25 -0500)]
Receive contexts and then request their variables; finish rewriting |-createStackFrame:|.
Robert Sesek [Sat, 20 Feb 2010 18:06:34 +0000 (13:06 -0500)]
Ditch the hybrid routed/command dispatcher system for a pure callback system.
Everything is still broken, but this change did not regress anything further.
Robert Sesek [Sat, 20 Feb 2010 04:27:28 +0000 (23:27 -0500)]
Fix encoding issues by not implicit casting UInt8 to char. Go through CFString instead.
Robert Sesek [Wed, 17 Feb 2010 06:43:24 +0000 (01:43 -0500)]
Always clobber the stack in |-debuggerStep:|
Robert Sesek [Wed, 17 Feb 2010 04:35:23 +0000 (23:35 -0500)]
Use a lock to make |-sendQueuedWrites| a critical section
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 [Tue, 16 Feb 2010 22:41:39 +0000 (17:41 -0500)]
* Start making |-createStackFrame:| asynchronous
* Give StackFrame objects a routingID_
* Queue writes in GDBpConnection
Robert Sesek [Tue, 16 Feb 2010 16:43:48 +0000 (11:43 -0500)]
Happy new year!
Robert Sesek [Tue, 16 Feb 2010 16:42:28 +0000 (11:42 -0500)]
Xcode project updates:
* Make Gitcrement less annoying to work with
* Xcode 3.2 updates
Robert Sesek [Tue, 16 Feb 2010 16:36:54 +0000 (11:36 -0500)]
* Create functionality to perform non-blocking writes using a write queue
* Fix up the debugger step commands to use async communication
Robert Sesek [Tue, 16 Feb 2010 15:54:07 +0000 (10:54 -0500)]
Remove SocketWrapper and start using CFSocket with CFStreams in GDBpConnection. This compiles but not much else.
Robert Sesek [Mon, 1 Feb 2010 06:15:52 +0000 (01:15 -0500)]
Prevent the Preferences window from jumping around when it opens by disabling
the "Visible on Launch" property.
Robert Sesek [Mon, 1 Feb 2010 06:10:56 +0000 (01:10 -0500)]
Remove IDE key preference because this is a property from the engine, not the IDE.
Robert Sesek [Mon, 1 Feb 2010 06:05:26 +0000 (01:05 -0500)]
Remove the |session| ivar from GDBpConnection. Use |transactionID| to keep
track of individual message transactions with the debugger engine.
Robert Sesek [Thu, 30 Jul 2009 11:48:57 +0000 (07:48 -0400)]
Make our project Xcode 3.1+ compatible.
Robert Sesek [Thu, 30 Jul 2009 11:28:32 +0000 (07:28 -0400)]
Change NSXMLElementAdditions to use UTF8 strings when converting, rather than ASCII.
Robert Sesek [Sun, 26 Jul 2009 16:23:32 +0000 (12:23 -0400)]
Make the transport logging an environmental setting.
To enable: `setenv TransportDebug YES`.
Robert Sesek [Wed, 22 Jul 2009 04:58:12 +0000 (00:58 -0400)]
In |-debuggerDisconnected|, unmark the program counter line so it doesn't look like we're connected.
Robert Sesek [Wed, 22 Jul 2009 04:49:29 +0000 (00:49 -0400)]
Fix warnings about GDBpConnectionDelegate by including the header in DebuggerController.h.
Robert Sesek [Wed, 22 Jul 2009 04:40:12 +0000 (00:40 -0400)]
Version to 1.4b.
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 [Wed, 22 Jul 2009 03:37:32 +0000 (23:37 -0400)]
Add a tooltip to the "break on first line" preference.
Robert Sesek [Wed, 22 Jul 2009 02:55:49 +0000 (22:55 -0400)]
Switch to using -[NSString stringWithUTF8String:] in SocketWrapper.
Robert Sesek [Tue, 19 May 2009 04:37:01 +0000 (00:37 -0400)]
Mark one of the fixes as bug 157
Robert Sesek [Tue, 19 May 2009 03:14:54 +0000 (23:14 -0400)]
Add a toolbar icon for the HUD window, which required making DebuggerController the action handler.
* Icons/HUDIcon.png: New icon
* CONTRIBUTORS: Add credits for icon
* MacGDBp.xcodeproj/project.pbxproj: Project updates for icon
* Source/AppDelegate.h+m:
(showInspectorWindow:): Moved to...
* Source/DebuggerController.h+m:
(showInspectorWindow:): new from ^
* English.lproj/Debugger.xib: Add toolbar item
* English.lproj/MainMenu.xib: Change Window-->Inspector's target
Robert Sesek [Tue, 19 May 2009 01:58:11 +0000 (21:58 -0400)]
We need to use UTF8 string encoding instead of ASCII because we're receiving XML. Socket code should be perfect now.
* Source/SocketWrapper.m:
(receive)
Robert Sesek [Sun, 17 May 2009 14:11:33 +0000 (10:11 -0400)]
Put the debugger behavior settings above the Xdebug ones
* English.lproj/Preferences.xib
Robert Sesek [Sun, 17 May 2009 14:07:33 +0000 (10:07 -0400)]
Rewrote -[SocketWrapper receive] so that we do not get any more partial/broken packets, hopefully.
* Source/SocketWrapper.m:
(receive)
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 03:29:33 +0000 (23:29 -0400)]
Don't try to manage the stack using internal state anymore, simply grab it every time from the engine
* Soure/DebuggerController.m:
(stepIn:): The GDBpConnection methods no longer return anything, get entire stack now
(stepOut:): ditto
(stepOver:): ditto
* Soure/GDBpConnection.h+m:
(run): Return void
(stepIn): ditto
(stepOut): ditto
(stepOver): ditto
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 [Sun, 17 May 2009 00:10:59 +0000 (20:10 -0400)]
Fix a type mismatch compile error
* Source/GDBpConnection.h: Change NSArray to StackFrame for -[run]
Robert Sesek [Sat, 16 May 2009 19:10:53 +0000 (15:10 -0400)]
Merge branch 'bug-157'
Conflicts:
Source/DebuggerController.m
Source/GDBpConnection.m
Robert Sesek [Sat, 16 May 2009 19:06:20 +0000 (15:06 -0400)]
Merge branch 'cosmetics'
Conflicts:
CHANGES
Source/GDBpConnection.m
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 [Sun, 10 May 2009 14:46:16 +0000 (10:46 -0400)]
Add NSLog()s around the send/receive stuff so we can track activity with Xdebug
* MacGDBp.xcodeproj: In debug mode, define BLU_DEBUG as a C flag
* Source/GDBpConnection.m:
(createCommand:)
(processData:)
Robert Sesek [Sun, 10 May 2009 14:44:53 +0000 (10:44 -0400)]
When getting the source, we need to escape the '%20' space character so the source displays properly
* Source/GDBpConnection.m:
(createStackFrame)
Robert Sesek [Sun, 10 May 2009 14:32:26 +0000 (10:32 -0400)]
Breakpoints with a space in the filename would not be set.
* Source/GDBpConnection.m:
(addBreakpoint:): Quote the breakpoint path before sending the GDBp command
Robert Sesek [Sun, 10 May 2009 14:08:37 +0000 (10:08 -0400)]
Make the asterisk attached to the type, rather than the variable.
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 19:28:59 +0000 (15:28 -0400)]
Change -[createStackFrame] to take a depth and create private -[createCurrentStackFrame] to call it with depth 0
* Source/GDBpConnection.m:
(createStackFrame:): Take a new depth argument
(createCurrentStackFrame): New method to call above with 0
Robert Sesek [Mon, 4 May 2009 16:38:19 +0000 (12:38 -0400)]
Set the version to be 1.3
* Info.plist
Robert Sesek [Fri, 1 May 2009 21:49:30 +0000 (17:49 -0400)]
Set the SourceView.file to nil and tell the stack NSArrayController to rearrange
* Source/DebuggerController.m:
(resetDisplays)
Robert Sesek [Sat, 4 Apr 2009 19:17:38 +0000 (15:17 -0400)]
Make -[GDBpConnection(Private) createCommand:] take a variable number of arguments to parse
* Source/GDBpConnection.m:
(createCommand:)
Robert Sesek [Sat, 4 Apr 2009 03:50:50 +0000 (23:50 -0400)]
Before setting selectedVariable, we need to make sure there is a selection!
* Source/DebuggerController.m:
(stepIn:)
(stepOut:)
(stepOver:)
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 [Sat, 4 Apr 2009 03:07:58 +0000 (23:07 -0400)]
NSLog() when Xdebug returns us an error
* Source/GDBpConnection.m:
(processData:)
Robert Sesek [Thu, 2 Apr 2009 19:08:58 +0000 (15:08 -0400)]
Not all breakpoint markers would be displayed in the active code debugger
* Source/DebuggerController.m:
(updateSourceViewer): Get all the breakpoints for the file and set the markers
Robert Sesek [Thu, 2 Apr 2009 18:50:53 +0000 (14:50 -0400)]
Update the changelog
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:34:49 +0000 (14:34 -0400)]
When toggling the breakpoints window, we also need to check to make sure if it's visible but not key
* Source/AppDelegate.m:
(showBreakpointWindow:): If the window is visible but not key, order it front
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 [Thu, 2 Apr 2009 17:43:53 +0000 (13:43 -0400)]
Add a variable value inspector
* English.lproj/Debugger.xib: Needed to remove the "Content" binding to make this work. Added a foating HUD window.
Robert Sesek [Mon, 23 Feb 2009 20:03:54 +0000 (15:03 -0500)]
Update version to 1.2.1
* Info.plist
Robert Sesek [Mon, 23 Feb 2009 19:51:39 +0000 (14:51 -0500)]
Add the public key for Sparkle updates
* Info.plist: Add the key file entry
* dsa_pub.pem: New file
* MacGDBp.xcodeproj: Project updates for keyfile
Robert Sesek [Mon, 23 Feb 2009 19:51:07 +0000 (14:51 -0500)]
Update Sparkle to be a vanilla build now that we properly use CFBundleVersion
Robert Sesek [Fri, 20 Feb 2009 17:44:26 +0000 (12:44 -0500)]
Update the project to use Gitcrement versioning
* MacGDBp.xcodeproj
Robert Sesek [Sun, 15 Feb 2009 16:31:36 +0000 (11:31 -0500)]
Updated Sparkle to the latest bzr version
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 [Sun, 15 Feb 2009 15:49:03 +0000 (10:49 -0500)]
When writing the temporary file to use for highlighting, use NSUTF8StringEncoding rather than NSASCIIStringEncoding
* Source/BSSourceView.m:
(setString:asFile:)
Robert Sesek [Thu, 12 Feb 2009 15:07:30 +0000 (10:07 -0500)]
Don't include the final .0 in 1.2
* Info.plist
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 [Mon, 9 Feb 2009 12:55:06 +0000 (07:55 -0500)]
Merge branch 'path-replacement'
Conflicts:
CHANGES
Source/AppDelegate.m
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
Robert Sesek [Fri, 6 Feb 2009 20:16:28 +0000 (15:16 -0500)]
Bumping the version number to 1.2.0
* Info.plist
Robert Sesek [Fri, 6 Feb 2009 20:13:29 +0000 (15:13 -0500)]
Add a changelog entry for the path replacements prefs
Robert Sesek [Fri, 6 Feb 2009 20:12:31 +0000 (15:12 -0500)]
Add a change to the changelog
Robert Sesek [Fri, 6 Feb 2009 06:31:09 +0000 (01:31 -0500)]
When sending breakpoints to Xdebug, use the [transformedPath]
* Source/GDBpConnection.m:
(addBreakpoint:): Use [transformedPath] instead of [file]
Robert Sesek [Fri, 6 Feb 2009 06:21:43 +0000 (01:21 -0500)]
Add the actual path replacement procedure and flip/rename the columns in the preferences
* English.lproj/Preferences.xib: Flip and rename the path columns
* Source/Breakpoint.m+h:
(transformedPath): New method
Robert Sesek [Fri, 6 Feb 2009 05:57:00 +0000 (00:57 -0500)]
Add a custom NSArrayController for the paths preferences so we can customize the default dictionary values
* English.lproj/Preferences.xib: Update the bindings
* Source/PreferencesPathsArrayController.h+m: New files
* MacGDBp.xcodeproj/project.pbxproj: Project updates for new files
Robert Sesek [Fri, 6 Feb 2009 05:32:10 +0000 (00:32 -0500)]
Add the path management bindings and array controller
* English.lproj/Preferences.xib: Hook up the interface using bindings and NSUserDefaultsController
* Source/AppDelegate.m:
(load): Add a default for the PathReplacements user defaults
Robert Sesek [Fri, 6 Feb 2009 01:35:30 +0000 (20:35 -0500)]
Design the paths replacement interface
* English.lproj/Preferences.xib: Design the paths panel
* Source/PreferencesController.m:
(showPreferencesWindow): Center the window before opening
Robert Sesek [Fri, 6 Feb 2009 01:26:05 +0000 (20:26 -0500)]
Implement preferences window resizing
* Source/PreferencesController.h: Add blankView ivar
* Source/PreferencesController.m: Create private interface for resizing
(init): Create the blankView
(dealloc): New method
(awakeFromNib): New method
(showGeneral:): Call the resize method
(showPaths:): ditto
(resizeWindowToSize:): New private method
Robert Sesek [Thu, 5 Feb 2009 20:44:24 +0000 (15:44 -0500)]
Add the paths replacement panel but don't implement anything in it
Robert Sesek [Thu, 5 Feb 2009 20:35:54 +0000 (15:35 -0500)]
Implement a toolbar for the preferences window
* Source/AppDelegate.m:
(showPreferences:): Don't call methods on the [prefs window] anymore, but [showPreferencesWindow]
* Source/PreferencesController.m+h: Add toolbar outlet ivars
(showPreferencesWindow): New method
(showGeneral:): New method
(toolbarSelectableItemIdentifiers:): New method
Robert Sesek [Thu, 5 Feb 2009 18:57:33 +0000 (13:57 -0500)]
Adding a CONTRIBUTORS file
Robert Sesek [Thu, 5 Feb 2009 18:47:45 +0000 (13:47 -0500)]
Word wrap CHANGES
Robert Sesek [Thu, 5 Feb 2009 18:43:12 +0000 (13:43 -0500)]
Show the variables in all contexts instead of just Locals. Fixes #147.
Patch partial from Nicola Ferruzzi.
* Source/StackFrame.m+h: Change "contexts" to "variables"
(initWithIndex:withFilename:withSource:atLine:inFunction:withContexts:): Renamed to be ...withVariables:
* Source/GDBpConnection.m:
(createStackFrame): Collect all the contexts into an array and send that to StackFrame
* English.lproj/Debugger.xib: Rebind to simply "variables"
Robert Sesek [Wed, 28 Jan 2009 17:16:50 +0000 (12:16 -0500)]
When the debugger connects, automatically step in to the first frame to make the debugger look active
* Source/DebuggerController.m+h:
(startDebugger): New method
* Source/GDBpConnection.m:
(socketDidAccept:): Call the -[startDebugger] method
Robert Sesek [Wed, 28 Jan 2009 17:16:15 +0000 (12:16 -0500)]
Updating the changelog for 1.2.0
* CHANGES
Robert Sesek [Thu, 22 Jan 2009 19:47:52 +0000 (14:47 -0500)]
Happy new year! Bump copyright.
Robert Sesek [Thu, 22 Jan 2009 19:04:17 +0000 (14:04 -0500)]
Highlighting of the currently debugged file will now get the source from Xdebug rather than reading local files
* Source/BSSourceView.m+h:
(setString:asFile:): New method that will highlight strings rather than files
(scrollToLine:): Change the sanity check to be based off of text in the textStorage, rather than if a file has been set
* Source/DebuggerController.m:
(updateSourceViewer): Use the new setString:asFile: instead of just setFile:
Robert Sesek [Thu, 22 Jan 2009 16:44:52 +0000 (11:44 -0500)]
Merge branch 'refactoring'
Conflicts:
English.lproj/Debugger.xib