]> src.bluestatic.org Git - macgdbp.git/log
macgdbp.git
7 years agoRemove -[Breakpoint hash] and fix -isEqual:.
Robert Sesek [Mon, 5 Dec 2016 02:50:55 +0000 (21:50 -0500)]
Remove -[Breakpoint hash] and fix -isEqual:.

7 years agoStore the last-used debugger segment in prefs.
Robert Sesek [Mon, 5 Dec 2016 01:04:52 +0000 (20:04 -0500)]
Store the last-used debugger segment in prefs.

7 years agoMake the add breakpoint button a pull-down menu.
Robert Sesek [Sun, 4 Dec 2016 23:51:46 +0000 (18:51 -0500)]
Make the add breakpoint button a pull-down menu.

7 years agoAdd backend Breakpoint support for symbolic breakpoints.
Robert Sesek [Sun, 4 Dec 2016 23:01:07 +0000 (18:01 -0500)]
Add backend Breakpoint support for symbolic breakpoints.

7 years agoMake BreakpointManager a property of DebuggerModel, rather than a singleton.
Robert Sesek [Sun, 4 Dec 2016 06:08:34 +0000 (01:08 -0500)]
Make BreakpointManager a property of DebuggerModel, rather than a singleton.

7 years agoRemove the dedicated Breakpoints source view.
Robert Sesek [Sun, 4 Dec 2016 05:41:49 +0000 (00:41 -0500)]
Remove the dedicated Breakpoints source view.

Use the same source view for the stack as the breakpoints.

7 years agoFix clipping of the Bookmarks.xib add/remove buttons.
Robert Sesek [Sun, 4 Dec 2016 05:12:08 +0000 (00:12 -0500)]
Fix clipping of the Bookmarks.xib add/remove buttons.

7 years agoMake BSSourceView.markers be a set of line numbers, rather than Breakpoint*.
Robert Sesek [Fri, 2 Dec 2016 13:34:32 +0000 (08:34 -0500)]
Make BSSourceView.markers be a set of line numbers, rather than Breakpoint*.

7 years agoFix BSSourceView not re-drawing when the marked line or breakpoints change.
Robert Sesek [Wed, 30 Nov 2016 02:38:26 +0000 (21:38 -0500)]
Fix BSSourceView not re-drawing when the marked line or breakpoints change.

8 years agoMove the Eval window into a tabbed section.
Robert Sesek [Fri, 5 Aug 2016 01:53:12 +0000 (21:53 -0400)]
Move the Eval window into a tabbed section.

8 years ago-[AppDelegate showDebuggerWindow:] should select the Variables tab.
Robert Sesek [Thu, 4 Aug 2016 05:21:21 +0000 (01:21 -0400)]
-[AppDelegate showDebuggerWindow:] should select the Variables tab.

8 years agoCall -[DebuggerController updateSegmentControl] when the superview frame changes.
Robert Sesek [Thu, 4 Aug 2016 05:18:12 +0000 (01:18 -0400)]
Call -[DebuggerController updateSegmentControl] when the superview frame changes.

8 years agoSet an autosave name for the main Debugger split view.
Robert Sesek [Thu, 4 Aug 2016 05:11:38 +0000 (01:11 -0400)]
Set an autosave name for the main Debugger split view.

8 years agoMove Breakpoints from a window to a view in the main debugger.
Robert Sesek [Thu, 4 Aug 2016 05:10:02 +0000 (01:10 -0400)]
Move Breakpoints from a window to a view in the main debugger.

8 years agoAdd a tab view and segmented control for selection, for Variables and Breakpoints.
Robert Sesek [Thu, 4 Aug 2016 04:52:31 +0000 (00:52 -0400)]
Add a tab view and segmented control for selection, for Variables and Breakpoints.

8 years agoReplace explicit |-display| with |-setNeedsDisplay:YES| when updating the source...
John Cook [Mon, 15 Feb 2016 02:05:16 +0000 (13:05 +1100)]
Replace explicit |-display| with |-setNeedsDisplay:YES| when updating the source viewer.

This might improve efficiency, but is the recommended method in any case.

8 years agoCreate string constants for all preference names.
Robert Sesek [Sun, 10 Apr 2016 16:37:48 +0000 (12:37 -0400)]
Create string constants for all preference names.

8 years agoClean up +[AppDelegate load] to use ObjC 2.0 literal syntax.
Robert Sesek [Sun, 10 Apr 2016 16:22:25 +0000 (12:22 -0400)]
Clean up +[AppDelegate load] to use ObjC 2.0 literal syntax.

8 years agoUse NSData's base64 encoding/decoding and delete modp_b64.
Robert Sesek [Sun, 10 Apr 2016 16:08:57 +0000 (12:08 -0400)]
Use NSData's base64 encoding/decoding and delete modp_b64.

8 years agoUpdate copyright strings to 2016.
Robert Sesek [Sun, 10 Apr 2016 06:55:50 +0000 (02:55 -0400)]
Update copyright strings to 2016.

8 years agoRemove use of BSSplitView from Log.xib too.
Robert Sesek [Sun, 10 Apr 2016 06:54:27 +0000 (02:54 -0400)]
Remove use of BSSplitView from Log.xib too.

8 years agoFix leak of LogEntry items in ProtocolClient.
Robert Sesek [Sun, 10 Apr 2016 06:53:21 +0000 (02:53 -0400)]
Fix leak of LogEntry items in ProtocolClient.

8 years agoRemove unnecessary @synthesize directives from StackFrame and VariableNode.
Robert Sesek [Sun, 10 Apr 2016 06:51:12 +0000 (02:51 -0400)]
Remove unnecessary @synthesize directives from StackFrame and VariableNode.

8 years agoFix "Unknown class BSSplitView in Interface Builder file at path .../Breakpoints...
Robert Sesek [Sun, 10 Apr 2016 06:38:52 +0000 (02:38 -0400)]
Fix "Unknown class BSSplitView in Interface Builder file at path .../Breakpoints.nib".

8 years agoFix an unspecified crash when the file reference is not available.
John Cook [Sat, 23 Jan 2016 07:31:17 +0000 (18:31 +1100)]
Fix an unspecified crash when the file reference is not available.

-[BSSourceView errorHighlightingFile:] can be called when |file_| is nil.

8 years agoAdd John Cook to CONTRIBUTORS.
Robert Sesek [Sun, 31 Jan 2016 22:20:50 +0000 (17:20 -0500)]
Add John Cook to CONTRIBUTORS.

8 years agoIn -[DebuggerController debuggerConnected] clear out the source viewer.
John Cook [Sat, 23 Jan 2016 07:23:11 +0000 (18:23 +1100)]
In -[DebuggerController debuggerConnected] clear out the source viewer.

This prevents the cached file from being reused across runs. Fixes bug #232.

8 years agoRemove unneeded |charBuffer| variable from -[MessageQueue readMessageFromStream].
Robert Sesek [Mon, 7 Dec 2015 07:39:20 +0000 (02:39 -0500)]
Remove unneeded |charBuffer| variable from -[MessageQueue readMessageFromStream].

8 years agoInitial re-layout of the main Debugger.xib.
Robert Sesek [Mon, 7 Dec 2015 07:19:31 +0000 (02:19 -0500)]
Initial re-layout of the main Debugger.xib.

This makes the variable list full-height and makes the source view split
horizontally with the stack.

8 years agoFix two leaks found by Analyze.
Robert Sesek [Mon, 7 Dec 2015 07:08:31 +0000 (02:08 -0500)]
Fix two leaks found by Analyze.

8 years agoThis is 2.0 Beta 1.
Robert Sesek [Mon, 7 Dec 2015 06:51:23 +0000 (01:51 -0500)]
This is 2.0 Beta 1.

8 years agoCheck in the State Machine.graffle file and the output PNG.
Robert Sesek [Mon, 7 Dec 2015 06:49:27 +0000 (01:49 -0500)]
Check in the State Machine.graffle file and the output PNG.

8 years agoUpdate some .gitignore files.
Robert Sesek [Mon, 7 Dec 2015 06:48:53 +0000 (01:48 -0500)]
Update some .gitignore files.

8 years agoZero-warning build.
Robert Sesek [Mon, 7 Dec 2015 06:45:48 +0000 (01:45 -0500)]
Zero-warning build.

* Re-save all XIB files and update deployment target to match project.
* Fix some content-size warnings in Log.xib.
* Run Xcode's recommended "project settings update."
* Change some NSUInteger/NSInteger to unsigned/long types.

8 years agoMerge branch 'debugger-back-end'
Robert Sesek [Mon, 7 Dec 2015 06:30:14 +0000 (01:30 -0500)]
Merge branch 'debugger-back-end'

8 years agoSome final header nits. debugger-back-end
Robert Sesek [Mon, 7 Dec 2015 06:25:41 +0000 (01:25 -0500)]
Some final header nits.

8 years agoInject autoAttach into DebuggerBackEnd's designated initializer.
Robert Sesek [Mon, 7 Dec 2015 06:20:02 +0000 (01:20 -0500)]
Inject autoAttach into DebuggerBackEnd's designated initializer.

Also makes sure the header order matches implementation order.

8 years agoRemove -[DebuggerBackEnd isConnected].
Robert Sesek [Mon, 7 Dec 2015 06:11:19 +0000 (01:11 -0500)]
Remove -[DebuggerBackEnd isConnected].

8 years agoRemove DebuggerBackEnd.status.
Robert Sesek [Mon, 7 Dec 2015 06:04:38 +0000 (01:04 -0500)]
Remove DebuggerBackEnd.status.

8 years agoRemove DebuggerBackEndDelegate.
Robert Sesek [Mon, 7 Dec 2015 06:00:28 +0000 (01:00 -0500)]
Remove DebuggerBackEndDelegate.

The connection state is now available via the DebuggerModel, and it will
broadcast KVO to the Controller.

8 years agoRemove -[DebuggerBackEndDelegate errorEncountered:].
Robert Sesek [Mon, 7 Dec 2015 05:46:08 +0000 (00:46 -0500)]
Remove -[DebuggerBackEndDelegate errorEncountered:].

Error information is now bound via the model.

8 years agoModernize VariableNode for ObjC 2.0.
Robert Sesek [Wed, 2 Dec 2015 13:39:12 +0000 (08:39 -0500)]
Modernize VariableNode for ObjC 2.0.

8 years agoRemove -[DebuggerBackEndDelegate sourceUpdated:].
Robert Sesek [Wed, 2 Dec 2015 13:23:18 +0000 (08:23 -0500)]
Remove -[DebuggerBackEndDelegate sourceUpdated:].

Use KVO to call -[DebuggerController updateSourceViewer] instead.

8 years agoRewrite variable and property loading.
Robert Sesek [Wed, 2 Dec 2015 03:50:53 +0000 (22:50 -0500)]
Rewrite variable and property loading.

This removes the -[VariableNode dynamicChildren] hack and replaces it with
controller-driven loading.

9 years agoMerge branch 'message-queue' into debugger-back-end
Robert Sesek [Sat, 24 Oct 2015 06:38:37 +0000 (02:38 -0400)]
Merge branch 'message-queue' into debugger-back-end

9 years agoStop spamming the CPU with -[MessageQueue dequeueAndSendBlocks]. message-queue
Robert Sesek [Sat, 24 Oct 2015 06:33:44 +0000 (02:33 -0400)]
Stop spamming the CPU with -[MessageQueue dequeueAndSendBlocks].

This significantly uses CPU usage by suspending the write dispatch source until
a message comes in.

9 years agoEnsure that stack frames are loaded when the array controller selection changes.
Robert Sesek [Sat, 24 Oct 2015 05:49:16 +0000 (01:49 -0400)]
Ensure that stack frames are loaded when the array controller selection changes.

This also makes the array controller not attempt to preserve the selection.

9 years agoMove management of the stack to DebuggerModel.
Robert Sesek [Sat, 24 Oct 2015 05:23:38 +0000 (01:23 -0400)]
Move management of the stack to DebuggerModel.

This deletes the old StackController and adds a new method
-[DebuggerModel updateStack:] that updates the array, attempting to preserve
identical stack frames.

A new target MacGDBp-Tests is also added, for testing the new DebuggerModel
functionality.

9 years agoIntroduce DebuggerModel, which will be updated by the BackEnd.
Robert Sesek [Mon, 12 Oct 2015 00:05:58 +0000 (20:05 -0400)]
Introduce DebuggerModel, which will be updated by the BackEnd.

This changes the debugger status message to be updated by the new Model class.
The XIB file is also re-saved as a Xcode 7 file.

9 years agoRemove stackFirstTransactionID_ tracking from DebuggerBackEnd.
Robert Sesek [Sun, 11 Oct 2015 20:30:37 +0000 (16:30 -0400)]
Remove stackFirstTransactionID_ tracking from DebuggerBackEnd.

9 years agoClean up EvalController by using a callback in -[DebuggerBackEnd evalScript:callback:].
Robert Sesek [Sun, 11 Oct 2015 17:46:09 +0000 (13:46 -0400)]
Clean up EvalController by using a callback in -[DebuggerBackEnd evalScript:callback:].

9 years agoClean up DebuggerBackEnd and move all the ivars into the .m file.
Robert Sesek [Sun, 11 Oct 2015 17:38:17 +0000 (13:38 -0400)]
Clean up DebuggerBackEnd and move all the ivars into the .m file.

9 years agoUpdate StackFrame for ObjC 2.
Robert Sesek [Sat, 10 Oct 2015 21:30:07 +0000 (17:30 -0400)]
Update StackFrame for ObjC 2.

9 years agoRemove StackFrame.routingID.
Robert Sesek [Sat, 10 Oct 2015 17:41:26 +0000 (13:41 -0400)]
Remove StackFrame.routingID.

9 years agoUpdate xcodeproj to build with latest OS X SDK.
Robert Sesek [Sat, 10 Oct 2015 05:19:25 +0000 (01:19 -0400)]
Update xcodeproj to build with latest OS X SDK.

9 years agoRemove the old callTable_ system from DebuggerBackEnd.
Robert Sesek [Sat, 10 Oct 2015 16:59:50 +0000 (12:59 -0400)]
Remove the old callTable_ system from DebuggerBackEnd.

ProtocolClient is now responsible for dispatching blocks for response messages.

9 years agoRewrite stack building in DebuggerBackEnd.
Robert Sesek [Sat, 10 Oct 2015 16:53:33 +0000 (12:53 -0400)]
Rewrite stack building in DebuggerBackEnd.

9 years agoRefactor -[DebuggerController fetchChildProperties:].
Robert Sesek [Sat, 10 Oct 2015 16:40:56 +0000 (12:40 -0400)]
Refactor -[DebuggerController fetchChildProperties:].

9 years agoReplace -[ProtocolClient sendCustomCommandWithFormat:...] with a block-based
Robert Sesek [Sat, 10 Oct 2015 16:29:28 +0000 (12:29 -0400)]
Replace -[ProtocolClient sendCustomCommandWithFormat:...] with a block-based
version.

9 years agoRewrite parts of DebuggerBackEnd to use the new block-based ProtocolClient.
Robert Sesek [Sat, 10 Oct 2015 16:16:58 +0000 (12:16 -0400)]
Rewrite parts of DebuggerBackEnd to use the new block-based ProtocolClient.

This removes the need for callbackContext_.

9 years agoAdd a block-based -sendCommand... variant to ProtocolClient.
Robert Sesek [Sat, 10 Oct 2015 15:47:42 +0000 (11:47 -0400)]
Add a block-based -sendCommand... variant to ProtocolClient.

This starts making ProtocolClient responsible for dispatching debugger messages.

9 years agoRemove unnecessary ivars from ProtocolClient.
Robert Sesek [Sat, 10 Oct 2015 14:41:12 +0000 (10:41 -0400)]
Remove unnecessary ivars from ProtocolClient.

9 years agoStop logging transaction validation information.
Robert Sesek [Sat, 10 Oct 2015 14:33:01 +0000 (10:33 -0400)]
Stop logging transaction validation information.

9 years agoShort-circuit -[MessageQueue disconnectClient] if not connected.
Robert Sesek [Sat, 10 Oct 2015 14:32:13 +0000 (10:32 -0400)]
Short-circuit -[MessageQueue disconnectClient] if not connected.

9 years agoUpdate xcodeproj to build with latest OS X SDK.
Robert Sesek [Sat, 10 Oct 2015 05:19:25 +0000 (01:19 -0400)]
Update xcodeproj to build with latest OS X SDK.

9 years agoCleanup from the MessageQueue rewrite.
Robert Sesek [Sat, 10 Oct 2015 05:15:51 +0000 (01:15 -0400)]
Cleanup from the MessageQueue rewrite.

9 years agoRewrite MessageQueue to use libdispatch instead of CFStream and a dedicated thread.
Robert Sesek [Sat, 10 Oct 2015 03:18:37 +0000 (23:18 -0400)]
Rewrite MessageQueue to use libdispatch instead of CFStream and a dedicated thread.

9 years agoFix nil host replacement.
Robert Sesek [Sun, 21 Jun 2015 18:44:40 +0000 (14:44 -0400)]
Fix nil host replacement.

9 years agoInvalidate and release the listening socket in -[MessageQueue disconnectClient].
Robert Sesek [Mon, 18 May 2015 12:22:35 +0000 (08:22 -0400)]
Invalidate and release the listening socket in -[MessageQueue disconnectClient].

The socket could be leaked (and not re-openable) if it never accepted a
connection but was told to -disconnect.

9 years agoFix potential crash when detaching and reattaching.
Robert Sesek [Mon, 18 May 2015 12:20:28 +0000 (08:20 -0400)]
Fix potential crash when detaching and reattaching.

Waiting via sleep() in -[MessageQueue scheduleListenSocket] will ignore any
disconnect messages, since the run loop is not being serviced. Instead, wait by
pumping the loop.

9 years agoBump the SDK to 10.9.
Robert Sesek [Sun, 17 May 2015 19:07:15 +0000 (15:07 -0400)]
Bump the SDK to 10.9.

9 years agoRemove unused -[ProtocolClient shouldSendMessage].
Robert Sesek [Sun, 17 May 2015 19:06:56 +0000 (15:06 -0400)]
Remove unused -[ProtocolClient shouldSendMessage].

10 years agoMinimum target of 10.6 and 64-bit.
Robert Sesek [Thu, 5 Jun 2014 05:09:00 +0000 (01:09 -0400)]
Minimum target of 10.6 and 64-bit.

10 years agoDo not double-percent-escape the filename.
Robert Sesek [Sun, 30 Mar 2014 17:18:38 +0000 (13:18 -0400)]
Do not double-percent-escape the filename.

10 years agoRemove the thin layer around ProtocolClient that is NetworkConnection.
Robert Sesek [Thu, 2 Jan 2014 02:50:10 +0000 (21:50 -0500)]
Remove the thin layer around ProtocolClient that is NetworkConnection.

11 years agoReport stream errors from MessageQueue.
Robert Sesek [Wed, 3 Jul 2013 23:32:22 +0000 (19:32 -0400)]
Report stream errors from MessageQueue.

11 years agoWrite BSProtocolThreadInvoker to replace ThreadSafeDelegate.
Robert Sesek [Wed, 3 Jul 2013 23:14:09 +0000 (19:14 -0400)]
Write BSProtocolThreadInvoker to replace ThreadSafeDelegate.

This class protects against reentrancy, which happens when AppKit uses WebKit
on the main thread for NSAttributedString.

11 years agoConnect ProtocolClient to the LoggingController.
Robert Sesek [Fri, 28 Jun 2013 02:16:02 +0000 (22:16 -0400)]
Connect ProtocolClient to the LoggingController.

This also removes the error property from LogEntry, since it was always unused.

11 years agoImprove MessageQueueDelegate.
Robert Sesek [Thu, 20 Jun 2013 02:24:51 +0000 (22:24 -0400)]
Improve MessageQueueDelegate.

11 years agoCall -[NSInvocation retainArguments] in ThreadSafeDelegate.
Robert Sesek [Thu, 20 Jun 2013 02:16:59 +0000 (22:16 -0400)]
Call -[NSInvocation retainArguments] in ThreadSafeDelegate.

11 years agoRename NetworkConnection to not be ObjC++
Robert Sesek [Thu, 20 Jun 2013 02:12:03 +0000 (22:12 -0400)]
Rename NetworkConnection to not be ObjC++

11 years agoConvert MessageQueue to use a ThreadSafeDelegate.
Robert Sesek [Thu, 20 Jun 2013 02:11:29 +0000 (22:11 -0400)]
Convert MessageQueue to use a ThreadSafeDelegate.

11 years agoWrite a ThreadSafeDelegate implementation, which will be used by MessageQueue.
Robert Sesek [Thu, 20 Jun 2013 02:05:32 +0000 (22:05 -0400)]
Write a ThreadSafeDelegate implementation, which will be used by MessageQueue.

11 years agoAttempt to send after successfully reading a message.
Robert Sesek [Tue, 18 Jun 2013 23:45:54 +0000 (19:45 -0400)]
Attempt to send after successfully reading a message.

11 years agoWhen the MessageQueue disconnects, release it in ProtocolClient.
Robert Sesek [Tue, 18 Jun 2013 23:33:34 +0000 (19:33 -0400)]
When the MessageQueue disconnects, release it in ProtocolClient.

11 years agoFix a silly memory bug where MessageQueue._message was autoreleased.
Robert Sesek [Tue, 18 Jun 2013 23:33:19 +0000 (19:33 -0400)]
Fix a silly memory bug where MessageQueue._message was autoreleased.

11 years agoFix use-after-free by not removing the dequeued message until after it is sent.
Robert Sesek [Tue, 18 Jun 2013 05:50:05 +0000 (01:50 -0400)]
Fix use-after-free by not removing the dequeued message until after it is sent.

11 years agoPerform -postReceivedMessage: only in the default mode.
Robert Sesek [Tue, 18 Jun 2013 05:49:18 +0000 (01:49 -0400)]
Perform -postReceivedMessage: only in the default mode.

11 years agoProtocolClient was both a superclass and a member. Fix.
Robert Sesek [Tue, 18 Jun 2013 05:44:55 +0000 (01:44 -0400)]
ProtocolClient was both a superclass and a member. Fix.

11 years agoUse the correct socket for CFStreamCreatePairWithSocket.
Robert Sesek [Tue, 18 Jun 2013 05:40:00 +0000 (01:40 -0400)]
Use the correct socket for CFStreamCreatePairWithSocket.

And some minor message passing cleanup.

11 years agoGut the old NetworkConnection and NetworkCallbackController classes.
Robert Sesek [Tue, 18 Jun 2013 05:21:05 +0000 (01:21 -0400)]
Gut the old NetworkConnection and NetworkCallbackController classes.

The old API will bridge to the new ProtocolClient until the callers can be
updated.

11 years agoWrite ProtocolClient, the layer that talks XML on top of a MessageQueue.
Robert Sesek [Tue, 18 Jun 2013 05:05:46 +0000 (01:05 -0400)]
Write ProtocolClient, the layer that talks XML on top of a MessageQueue.

This is the other piece of the split NetworkConnection class.

11 years agoWrite MessageQueue to replace most NetworkCallbackController.
Robert Sesek [Tue, 18 Jun 2013 02:29:10 +0000 (22:29 -0400)]
Write MessageQueue to replace most NetworkCallbackController.

This refactors pieces of NetworkConnection and NetworkCallbackController into
a simpler class that merely deals with sequenced strings over a socket.

11 years agoUpdate the comments in NetworkCallbackController::WriteString
Robert Sesek [Sun, 16 Jun 2013 05:19:46 +0000 (01:19 -0400)]
Update the comments in NetworkCallbackController::WriteString

11 years agoReplace deprecated -compositeToPoint:operation: call.
Robert Sesek [Sun, 16 Jun 2013 03:16:39 +0000 (23:16 -0400)]
Replace deprecated -compositeToPoint:operation: call.

11 years agoFix 64-bit Debug builds.
Robert Sesek [Sun, 16 Jun 2013 03:12:13 +0000 (23:12 -0400)]
Fix 64-bit Debug builds.

11 years agoDelete some obsolete Xcode project settings.
Robert Sesek [Sun, 16 Jun 2013 01:45:41 +0000 (21:45 -0400)]
Delete some obsolete Xcode project settings.

11 years agoRewrite NetworkCallbackController::WriteString to actually deal in bytes properly.
Robert Sesek [Sun, 16 Jun 2013 00:27:37 +0000 (20:27 -0400)]
Rewrite NetworkCallbackController::WriteString to actually deal in bytes properly.

11 years agoSwitch to using the 10.8 SDK with a 10.5 deployment target.
Robert Sesek [Sun, 16 Jun 2013 00:05:28 +0000 (20:05 -0400)]
Switch to using the 10.8 SDK with a 10.5 deployment target.

12 years agoFix a somewhat serious bug in the WriteString loop.
Robert Sesek [Tue, 11 Sep 2012 04:20:34 +0000 (00:20 -0400)]
Fix a somewhat serious bug in the WriteString loop.

memmove was being performed on |string|, which is an NSString. The proper variable
to operate on is |cString|. But even then, that's not correct because the
destination buffer is not owned. Use pointer arithmetic instead.