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"
value, allowing you to see the last part of the path URI
- Fix: #129 Debugging files on a remote server will now work if the remote path does not exist on the local debugging client
- Change: The debugger will automatically step in to the first frame when the connection is made
+- New: #147 Show super globals (and variables in other contexts) in the
+variable viewer
1.1.2
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9F33</string>
+ <string key="IBDocument.SystemVersion">9G55</string>
<string key="IBDocument.InterfaceBuilderVersion">672</string>
- <string key="IBDocument.AppKitVersion">949.34</string>
- <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <string key="IBDocument.AppKitVersion">949.43</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="460"/>
+ <integer value="14"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>lineNumber</string>
<string>function</string>
<string>contexts.Locals</string>
+ <string>variables</string>
</object>
<string key="NSObjectClassName">StackFrame</string>
<bool key="NSEditable">YES</bool>
</object>
<int key="connectionID">564</int>
</object>
- <object class="IBConnectionRecord">
- <object class="IBBindingConnection" key="connection">
- <string key="label">contentArray: selection.contexts.Locals</string>
- <reference key="source" ref="240336030"/>
- <reference key="destination" ref="988542050"/>
- <object class="NSNibBindingConnector" key="connector">
- <reference key="NSSource" ref="240336030"/>
- <reference key="NSDestination" ref="988542050"/>
- <string key="NSLabel">contentArray: selection.contexts.Locals</string>
- <string key="NSBinding">contentArray</string>
- <string key="NSKeyPath">selection.contexts.Locals</string>
- <int key="NSNibBindingConnectorVersion">2</int>
- </object>
- </object>
- <int key="connectionID">565</int>
- </object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">variablesTreeController</string>
</object>
<int key="connectionID">567</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">contentArray: selection.variables</string>
+ <reference key="source" ref="240336030"/>
+ <reference key="destination" ref="988542050"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="240336030"/>
+ <reference key="NSDestination" ref="988542050"/>
+ <string key="NSLabel">contentArray: selection.variables</string>
+ <string key="NSBinding">contentArray</string>
+ <string key="NSKeyPath">selection.variables</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">568</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">567</int>
+ <int key="maxID">568</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
// get the names of all the contexts
[socket send:[self createCommand:@"context_names -d 0"]];
NSXMLElement *contextNames = [[self processData:[socket receive]] rootElement];
- NSMutableDictionary *contexts = [NSMutableDictionary dictionary];
+ NSMutableArray *variables = [NSMutableArray array];
for (NSXMLElement *context in [contextNames children])
{
NSString *name = [[context attributeForName:@"name"] stringValue];
// fetch the contexts
[socket send:[self createCommand:[NSString stringWithFormat:@"context_get -d 0 -c %d", cid]]];
- NSArray *variables = [[[self processData:[socket receive]] rootElement] children];
- if (variables != nil && name != nil)
- [contexts setObject:variables forKey:name];
+ NSArray *addVars = [[[self processData:[socket receive]] rootElement] children];
+ if (addVars != nil && name != nil)
+ [variables addObjectsFromArray:addVars];
}
// get the source
withSource:source
atLine:[[[xmlframe attributeForName:@"lineno"] stringValue] intValue]
inFunction:[[xmlframe attributeForName:@"where"] stringValue]
- withContexts:contexts
+ withVariables:variables
];
return [frame autorelease];
NSString *function;
/**
- * Variable contexts (e.g. locals, class, etc.)
+ * Variable list
*/
- NSDictionary *contexts;
+ NSArray *variables;
}
@property(readwrite) int index;
@property(readonly, copy) NSString *source;
@property(readwrite) int lineNumber;
@property(readwrite, copy) NSString *function;
-@property(readonly, copy) NSDictionary *contexts;
+@property(readonly, copy) NSArray *variables;
- (id)initWithIndex:(int)anIndex
withFilename:(NSString *)aFilename
withSource:(NSString *)aSource
atLine:(int)aLineNumber
inFunction:(NSString *)function
- withContexts:(NSDictionary *)contexts;
+ withVariables:(NSArray *)variables;
- (BOOL)isShiftedFrame:(StackFrame *)frame;
@interface StackFrame()
@property(readwrite, copy) NSString *filename;
@property(readwrite, copy) NSString *source;
-@property(readwrite, copy) NSDictionary *contexts;
+@property(readwrite, copy) NSArray *variables;
@end
/***/
@implementation StackFrame
-@synthesize index, filename, source, lineNumber, function, contexts;
+@synthesize index, filename, source, lineNumber, function, variables;
/**
* Constructor
withSource:(NSString *)aSource
atLine:(int)aLineNumber
inFunction:(NSString *)aFunction
- withContexts:(NSDictionary *)aContexts
+ withVariables:(NSArray *)aVariables
{
if (self = [super init])
{
self.source = aSource;
self.lineNumber = aLineNumber;
self.function = aFunction;
- self.contexts = aContexts;
+ self.variables = aVariables;
}
return self;
}