* Do not allow editing of the log table.
authorRobert Sesek <rsesek@bluestatic.org>
Tue, 30 Mar 2010 05:10:00 +0000 (01:10 -0400)
committerRobert Sesek <rsesek@bluestatic.org>
Tue, 30 Mar 2010 05:10:00 +0000 (01:10 -0400)
* Move the transaction checks from |-handleResponse:| to |-readStreamHasData|.
* Record log entries AFTER sending and receiving so that the transaction IDs make more sense.

English.lproj/Log.xib
Source/DebuggerConnection.m

index b889944235c71de13d8cdca2cc1c7fba0e8a4995..99249cfe5d17840a447f877fe42180802130f50f 100644 (file)
@@ -12,7 +12,7 @@
                </object>
                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
                        <bool key="EncodedWithXMLCoder">YES</bool>
-                       <integer value="27"/>
+                       <integer value="1"/>
                </object>
                <object class="NSArray" key="IBDocument.PluginDependencies">
                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -47,6 +47,7 @@
                                <string key="NSWindowClass">NSWindow</string>
                                <nil key="NSViewClass"/>
                                <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+                               <string key="NSWindowContentMinSize">{663, 487}</string>
                                <object class="NSView" key="NSWindowView" id="1006">
                                        <reference key="NSNextResponder"/>
                                        <int key="NSvFlags">256</int>
                                                                                                                        </object>
                                                                                                                        <int key="NSResizingMask">3</int>
                                                                                                                        <bool key="NSIsResizeable">YES</bool>
-                                                                                                                       <bool key="NSIsEditable">YES</bool>
                                                                                                                        <reference key="NSTableView" ref="447532789"/>
                                                                                                                </object>
                                                                                                                <object class="NSTableColumn" id="193627041">
                                                                                                                        </object>
                                                                                                                        <int key="NSResizingMask">3</int>
                                                                                                                        <bool key="NSIsResizeable">YES</bool>
-                                                                                                                       <bool key="NSIsEditable">YES</bool>
                                                                                                                        <reference key="NSTableView" ref="447532789"/>
                                                                                                                </object>
                                                                                                                <object class="NSTableColumn" id="1035045555">
                                                                                                                        </object>
                                                                                                                        <int key="NSResizingMask">3</int>
                                                                                                                        <bool key="NSIsResizeable">YES</bool>
-                                                                                                                       <bool key="NSIsEditable">YES</bool>
                                                                                                                        <reference key="NSTableView" ref="447532789"/>
                                                                                                                </object>
                                                                                                                <object class="NSTableColumn" id="18061222">
                                                                                                                        </object>
                                                                                                                        <int key="NSResizingMask">3</int>
                                                                                                                        <bool key="NSIsResizeable">YES</bool>
-                                                                                                                       <bool key="NSIsEditable">YES</bool>
                                                                                                                        <reference key="NSTableView" ref="447532789"/>
                                                                                                                </object>
                                                                                                                <object class="NSTableColumn" id="996030306">
                                                                                                                        </object>
                                                                                                                        <int key="NSResizingMask">3</int>
                                                                                                                        <bool key="NSIsResizeable">YES</bool>
-                                                                                                                       <bool key="NSIsEditable">YES</bool>
                                                                                                                        <reference key="NSTableView" ref="447532789"/>
                                                                                                                </object>
                                                                                                        </object>
                                                                                <object class="NSTextField" id="154598522">
                                                                                        <reference key="NSNextResponder" ref="152948114"/>
                                                                                        <int key="NSvFlags">268</int>
-                                                                                       <string key="NSFrame">{{92, 286}, {249, 17}}</string>
+                                                                                       <string key="NSFrame">{{92, 287}, {249, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSTextFieldCell" key="NSCell" id="88110380">
                                                                                <object class="NSTextField" id="153517349">
                                                                                        <reference key="NSNextResponder" ref="152948114"/>
                                                                                        <int key="NSvFlags">265</int>
-                                                                                       <string key="NSFrame">{{553, 287}, {18, 17}}</string>
+                                                                                       <string key="NSFrame">{{553, 288}, {18, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSTextFieldCell" key="NSCell" id="754808791">
                                                                                <object class="NSTextField" id="936367292">
                                                                                        <reference key="NSNextResponder" ref="152948114"/>
                                                                                        <int key="NSvFlags">265</int>
-                                                                                       <string key="NSFrame">{{579, 286}, {67, 17}}</string>
+                                                                                       <string key="NSFrame">{{579, 287}, {67, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSTextFieldCell" key="NSCell" id="308919605">
                                                                                                                <object class="NSTextView" id="398004462">
                                                                                                                        <reference key="NSNextResponder" ref="20006492"/>
                                                                                                                        <int key="NSvFlags">2322</int>
-                                                                                                                       <object class="NSMutableSet" key="NSDragTypes">
-                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                                                                                                               <object class="NSArray" key="set.sortedObjects">
-                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
-                                                                                                                                       <string>Apple HTML pasteboard type</string>
-                                                                                                                                       <string>Apple PDF pasteboard type</string>
-                                                                                                                                       <string>Apple PICT pasteboard type</string>
-                                                                                                                                       <string>Apple PNG pasteboard type</string>
-                                                                                                                                       <string>Apple URL pasteboard type</string>
-                                                                                                                                       <string>CorePasteboardFlavorType 0x6D6F6F76</string>
-                                                                                                                                       <string>NSColor pasteboard type</string>
-                                                                                                                                       <string>NSFilenamesPboardType</string>
-                                                                                                                                       <string>NSStringPboardType</string>
-                                                                                                                                       <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
-                                                                                                                                       <string>NeXT RTFD pasteboard type</string>
-                                                                                                                                       <string>NeXT Rich Text Format v1.0 pasteboard type</string>
-                                                                                                                                       <string>NeXT TIFF v4.0 pasteboard type</string>
-                                                                                                                                       <string>NeXT font pasteboard type</string>
-                                                                                                                                       <string>NeXT ruler pasteboard type</string>
-                                                                                                                                       <string>WebURLsWithTitlesPboardType</string>
-                                                                                                                                       <string>public.url</string>
-                                                                                                                               </object>
-                                                                                                                       </object>
-                                                                                                                       <string key="NSFrameSize">{606, 28}</string>
+                                                                                                                       <string key="NSFrameSize">{606, 15}</string>
                                                                                                                        <reference key="NSSuperview" ref="20006492"/>
                                                                                                                        <object class="NSTextContainer" key="NSTextContainer" id="297918450">
                                                                                                                                <object class="NSLayoutManager" key="NSLayoutManager">
                                                                                                                                <int key="NSTCFlags">1</int>
                                                                                                                        </object>
                                                                                                                        <object class="NSTextViewSharedData" key="NSSharedData">
-                                                                                                                               <int key="NSFlags">12263</int>
+                                                                                                                               <int key="NSFlags">12257</int>
                                                                                                                                <int key="NSTextCheckingTypes">0</int>
                                                                                                                                <nil key="NSMarkedAttributes"/>
                                                                                                                                <reference key="NSBackgroundColor" ref="574895260"/>
                                                                                                                                <nil key="NSDefaultParagraphStyle"/>
                                                                                                                        </object>
                                                                                                                        <int key="NSTVFlags">6</int>
-                                                                                                                       <string key="NSMaxSize">{606, 1e+07}</string>
-                                                                                                                       <string key="NSMinize">{223, 27}</string>
+                                                                                                                       <string key="NSMaxSize">{1229, 1e+07}</string>
+                                                                                                                       <string key="NSMinize">{223, 0}</string>
                                                                                                                        <nil key="NSDelegate"/>
                                                                                                                </object>
                                                                                                        </object>
-                                                                                                       <string key="NSFrame">{{1, 1}, {606, 195}}</string>
+                                                                                                       <string key="NSFrame">{{1, 1}, {606, 196}}</string>
                                                                                                        <reference key="NSSuperview" ref="797090722"/>
                                                                                                        <reference key="NSNextKeyView" ref="398004462"/>
                                                                                                        <reference key="NSDocView" ref="398004462"/>
                                                                                                <object class="NSScroller" id="960911919">
                                                                                                        <reference key="NSNextResponder" ref="797090722"/>
                                                                                                        <int key="NSvFlags">256</int>
-                                                                                                       <string key="NSFrame">{{607, 1}, {15, 195}}</string>
+                                                                                                       <string key="NSFrame">{{607, 1}, {15, 196}}</string>
                                                                                                        <reference key="NSSuperview" ref="797090722"/>
                                                                                                        <reference key="NSTarget" ref="797090722"/>
                                                                                                        <string key="NSAction">_doScroller:</string>
-                                                                                                       <double key="NSCurValue">0.9642857142857143</double>
                                                                                                        <double key="NSPercent">0.85256409645080566</double>
                                                                                                </object>
                                                                                                <object class="NSScroller" id="1015162958">
                                                                                                        <double key="NSPercent">0.94565218687057495</double>
                                                                                                </object>
                                                                                        </object>
-                                                                                       <string key="NSFrame">{{20, 81}, {623, 197}}</string>
+                                                                                       <string key="NSFrame">{{20, 81}, {623, 198}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <reference key="NSNextKeyView" ref="20006492"/>
                                                                                        <int key="NSsFlags">18</int>
                                                                                <object class="NSTextField" id="742576817">
                                                                                        <reference key="NSNextResponder" ref="152948114"/>
                                                                                        <int key="NSvFlags">265</int>
-                                                                                       <string key="NSFrame">{{476, 286}, {67, 17}}</string>
+                                                                                       <string key="NSFrame">{{476, 287}, {67, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSTextFieldCell" key="NSCell" id="601294440">
                                                                                <object class="NSTextField" id="788424811">
                                                                                        <reference key="NSNextResponder" ref="152948114"/>
                                                                                        <int key="NSvFlags">265</int>
-                                                                                       <string key="NSFrame">{{343, 286}, {131, 17}}</string>
+                                                                                       <string key="NSFrame">{{343, 287}, {131, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSTextFieldCell" key="NSCell" id="276231212">
                                                                                <object class="NSTextField" id="116365784">
                                                                                        <reference key="NSNextResponder" ref="152948114"/>
                                                                                        <int key="NSvFlags">268</int>
-                                                                                       <string key="NSFrame">{{17, 286}, {73, 17}}</string>
+                                                                                       <string key="NSFrame">{{17, 287}, {73, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="152948114"/>
                                                                                        <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSTextFieldCell" key="NSCell" id="1007621878">
                                                                                        </object>
                                                                                </object>
                                                                        </object>
-                                                                       <string key="NSFrame">{{0, 181}, {665, 307}}</string>
+                                                                       <string key="NSFrame">{{0, 180}, {665, 308}}</string>
                                                                        <reference key="NSSuperview" ref="717245508"/>
                                                                        <string key="NSClassName">NSView</string>
                                                                </object>
                                                        </object>
                                                        <string key="NSFrame">{{-1, 0}, {665, 488}}</string>
                                                        <reference key="NSSuperview" ref="1006"/>
-                                                       <int key="NSDividerStyle">3</int>
+                                                       <string key="NSAutosaveName">ConnectionSplitView</string>
                                                </object>
                                        </object>
                                        <string key="NSFrameSize">{663, 487}</string>
                                        <reference key="NSSuperview"/>
                                </object>
                                <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+                               <string key="NSMinSize">{663, 509}</string>
                                <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
                                <string key="NSFrameAutosaveName">ConnectionLog</string>
                        </object>
                                        <string>contents</string>
                                        <string>error</string>
                                        <string>directionName</string>
-                                       <string>fontColor</string>
                                </object>
                                <string key="NSObjectClassName">LogEntry</string>
                                <bool key="NSAutomaticallyPreparesContent">YES</bool>
                                        </object>
                                        <int key="connectionID">96</int>
                                </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBBindingConnection" key="connection">
-                                               <string key="label">textColor: selection.fontColor</string>
-                                               <reference key="source" ref="555857254"/>
-                                               <reference key="destination" ref="762164530"/>
-                                               <object class="NSNibBindingConnector" key="connector">
-                                                       <reference key="NSSource" ref="555857254"/>
-                                                       <reference key="NSDestination" ref="762164530"/>
-                                                       <string key="NSLabel">textColor: selection.fontColor</string>
-                                                       <string key="NSBinding">textColor</string>
-                                                       <string key="NSKeyPath">selection.fontColor</string>
-                                                       <int key="NSNibBindingConnectorVersion">2</int>
-                                               </object>
-                                       </object>
-                                       <int key="connectionID">105</int>
-                               </object>
                        </object>
                        <object class="IBMutableOrderedSet" key="objectRecords">
                                <object class="NSArray" key="orderedObjects">
                                        <string>1.NSWindowTemplate.visibleAtLaunch</string>
                                        <string>1.WindowOrigin</string>
                                        <string>1.editorWindowContentRectSynchronizationRect</string>
+                                       <string>1.windowTemplate.hasMinSize</string>
+                                       <string>1.windowTemplate.minSize</string>
                                        <string>10.IBPluginDependency</string>
                                        <string>11.IBPluginDependency</string>
                                        <string>2.IBPluginDependency</string>
                                        <string>23.IBPluginDependency</string>
                                        <string>3.IBPluginDependency</string>
+                                       <string>37.CustomClassName</string>
                                        <string>38.IBPluginDependency</string>
                                        <string>39.IBPluginDependency</string>
                                        <string>4.IBPluginDependency</string>
                                </object>
                                <object class="NSMutableArray" key="dict.values">
                                        <bool key="EncodedWithXMLCoder">YES</bool>
-                                       <string>{{435, 323}, {663, 487}}</string>
+                                       <string>{{403, 154}, {663, 487}}</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <boolean value="YES"/>
-                                       <string>{{435, 323}, {663, 487}}</string>
+                                       <string>{{403, 154}, {663, 487}}</string>
                                        <boolean value="NO"/>
                                        <string>{196, 240}</string>
                                        <string>{{202, 428}, {480, 270}}</string>
+                                       <boolean value="YES"/>
+                                       <string>{663, 487}</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>BSSplitView</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                </object>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">105</int>
+                       <int key="maxID">106</int>
                </object>
                <object class="IBClassDescriber" key="IBDocument.Classes">
                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
                                <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">BSSplitView</string>
+                                       <string key="superclassName">NSSplitView</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">Source/BSSplitView.h</string>
+                                       </object>
+                               </object>
                                <object class="IBPartialClassDescription">
                                        <string key="className">LoggingController</string>
                                        <string key="superclassName">NSWindowController</string>
index a884af0b1bbc29a4758166f55d626f7b1b86775c..f6280799e9e7e9e58e4a8012de250caa90d52c61 100644 (file)
@@ -501,20 +501,9 @@ void SocketAcceptCallback(CFSocketRef socket,
                NSError* error = nil;
                NSXMLDocument* xmlTest = [[NSXMLDocument alloc] initWithXMLString:currentPacket_ options:NSXMLDocumentTidyXML error:&error];
 
-               // Log this receive event.
-               LoggingController* logger = [(AppDelegate*)[NSApp delegate] loggingController];
-               LogEntry* log = [logger recordReceive:currentPacket_];
-               log.error = error;
-               log.lastWrittenTransactionID = lastWrittenTransaction_;
-               log.lastReadTransactionID = lastReadTransaction_;
-
                // Try to recover if we encountered an error.
                if (error)
                {
-                       NSLog(@"Could not parse XML? --- %@", error);
-                       NSLog(@"Error UserInfo: %@", [error userInfo]);
-                       NSLog(@"This is the XML Document: %@", currentPacket_);
-                       
                        // We do not want to starve the write queue, so manually parse out the
                        // transaction ID.
                        NSRange location = [currentPacket_ rangeOfString:@"transaction_id"];
@@ -564,7 +553,32 @@ void SocketAcceptCallback(CFSocketRef socket,
                        // Otherwise, assume +1 and hope it works.
                        ++lastReadTransaction_;
                        return;
-               }               
+               }
+               else
+               {
+                       // See if the transaction can be parsed out.
+                       NSInteger transaction = [self transactionIDFromResponse:xmlTest];
+                       if (transaction < lastReadTransaction_ || transaction != lastWrittenTransaction_)
+                       {
+                               NSLog(@"tx = %d vs %d", transaction, lastReadTransaction_);
+                               NSLog(@"out of date transaction %@", xmlTest);
+                               return;
+                       }
+                       
+                       if (transaction != lastWrittenTransaction_)
+                               NSLog(@"txn doesn't match last written %@", xmlTest);
+                       
+                       lastReadTransaction_ = transaction;
+               }
+
+               // Log this receive event.
+               LoggingController* logger = [(AppDelegate*)[NSApp delegate] loggingController];
+               LogEntry* log = [logger recordReceive:currentPacket_];
+               log.error = error;
+               log.lastWrittenTransactionID = lastWrittenTransaction_;
+               log.lastReadTransactionID = lastReadTransaction_;               
+
+               // Finally, dispatch the handler for this response.
                [self handleResponse:[xmlTest autorelease]];
        }       
 }
@@ -594,12 +608,6 @@ void SocketAcceptCallback(CFSocketRef socket,
        char* string = (char*)[command UTF8String];
        int stringLength = strlen(string);
 
-       // Log this trancation.
-       LoggingController* logger = [(AppDelegate*)[NSApp delegate] loggingController];
-       LogEntry* log = [logger recordSend:command];
-       log.lastWrittenTransactionID = lastWrittenTransaction_;
-       log.lastReadTransactionID = lastReadTransaction_;       
-
        // Busy wait while writing. BAADD. Should background this operation.
        while (!done)
        {
@@ -634,6 +642,12 @@ void SocketAcceptCallback(CFSocketRef socket,
                        }
                }
        }
+
+       // Log this trancation.
+       LoggingController* logger = [(AppDelegate*)[NSApp delegate] loggingController];
+       LogEntry* log = [logger recordSend:command];
+       log.lastWrittenTransactionID = lastWrittenTransaction_;
+       log.lastReadTransactionID = lastReadTransaction_;
 }
 
 - (void)handleResponse:(NSXMLDocument*)response
@@ -645,17 +659,7 @@ void SocketAcceptCallback(CFSocketRef socket,
                NSLog(@"Xdebug error: %@", error);
                [delegate errorEncountered:[[[[error objectAtIndex:0] children] objectAtIndex:0] stringValue]];
        }
-       
-       // Get the name of the command from the engine's response.
-       NSInteger transaction = [self transactionIDFromResponse:response];
-       if (transaction < lastReadTransaction_)
-               NSLog(@"out of date transaction %@", response);
-       
-       if (transaction != lastWrittenTransaction_)
-               NSLog(@"txn doesn't match last written %@", response);
-       
-       lastReadTransaction_ = transaction;
-       
+
        if ([[[response rootElement] name] isEqualToString:@"init"])
        {
                [self initReceived:response];