macgdbp.git
2 years agoAdd support for call breakpoints to BreakpointManager. master
Robert Sesek [Tue, 6 Dec 2016 04:40:46 +0000 (23:40 -0500)]
Add support for call breakpoints to BreakpointManager.

Also switch Breakpoint to using convience constructors.

2 years agoAdd UI for setting sybmolic breakpoints.
Robert Sesek [Mon, 5 Dec 2016 05:04:02 +0000 (00:04 -0500)]
Add UI for setting sybmolic breakpoints.

This also modifies the breakpoint list to show them.

2 years agoMove the status into the toolbar, and remove it from the bottom of the window.
Robert Sesek [Mon, 5 Dec 2016 03:44:45 +0000 (22:44 -0500)]
Move the status into the toolbar, and remove it from the bottom of the window.

2 years agoFix up Eval after moving it into the debugger.
Robert Sesek [Mon, 5 Dec 2016 02:54:12 +0000 (21:54 -0500)]
Fix up Eval after moving it into the debugger.

- Unconditionally validate the main menu item.
- Remove the close button from the XIB.

2 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:.

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

2 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*.

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

2 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.

3 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.

3 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.

3 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.

3 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.

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

3 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.

3 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.

3 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.

3 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".

3 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.

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

3 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.

3 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].

3 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.

3 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.

3 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.

3 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.

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

3 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.

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

3 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.

3 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.

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

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

3 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.

3 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.

3 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.

3 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.

3 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.

3 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

3 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.

3 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.

3 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.

3 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.

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

3 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:].

3 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.

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

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

3 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.

3 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.

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

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

3 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.

3 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_.

3 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.

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

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

3 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.

3 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.

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

3 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.

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

3 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.

3 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.

3 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.

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

4 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.

5 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.

5 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.

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

5 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.

5 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.

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

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

5 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++

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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

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

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