display variables
This commit is contained in:
@@ -151,14 +151,16 @@ public class DebuggingService
|
|||||||
var stackTrace = _debugProtocolHost.SendRequestSync(new StackTraceRequest { ThreadId = thread.Id });
|
var stackTrace = _debugProtocolHost.SendRequestSync(new StackTraceRequest { ThreadId = thread.Id });
|
||||||
var frame = stackTrace.StackFrames!.FirstOrDefault();
|
var frame = stackTrace.StackFrames!.FirstOrDefault();
|
||||||
if (frame == null) continue;
|
if (frame == null) continue;
|
||||||
// Infrastructure.dll!Infrastructure.DependencyInjection.AddInfrastructure(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration configuration) Line 23
|
|
||||||
var name = frame.Name;
|
var name = frame.Name;
|
||||||
if (name == "[External Code]") continue; // TODO: handle this case
|
if (name == "[External Code]") continue; // TODO: handle this case
|
||||||
|
|
||||||
|
// Infrastructure.dll!Infrastructure.DependencyInjection.AddInfrastructure(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration configuration) Line 23
|
||||||
// need to parse out the class name, method name, namespace, assembly name
|
// need to parse out the class name, method name, namespace, assembly name
|
||||||
var methodName = name.Split('!')[1].Split('(')[0];
|
var methodName = name.Split('!')[1].Split('(')[0];
|
||||||
var className = methodName.Split('.').Reverse().Skip(1).First();
|
var className = methodName.Split('.').Reverse().Skip(1).First();
|
||||||
var namespaceName = string.Join('.', methodName.Split('.').Reverse().Skip(2).Reverse());
|
var namespaceName = string.Join('.', methodName.Split('.').Reverse().Skip(2).Reverse());
|
||||||
var assemblyName = name.Split('!')[0];
|
var assemblyName = name.Split('!')[0];
|
||||||
|
methodName = methodName.Split('.').Reverse().First();
|
||||||
var frameModel = new StackFrameModel
|
var frameModel = new StackFrameModel
|
||||||
{
|
{
|
||||||
Id = frame.Id,
|
Id = frame.Id,
|
||||||
|
|||||||
@@ -58,5 +58,20 @@ public partial class ThreadsVariablesSubTab : Control
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var currentFrame = stoppedThread.StackFrames.First();
|
||||||
|
var variableScenes = currentFrame.Scopes.SelectMany(s => s.Variables).Select(v =>
|
||||||
|
{
|
||||||
|
var variableListItem = _threadListItemScene.Instantiate<Control>();
|
||||||
|
variableListItem.GetNode<Label>("Label").Text = $"{v.Name}";
|
||||||
|
return variableListItem;
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
await this.InvokeAsync(() =>
|
||||||
|
{
|
||||||
|
foreach (var scene in variableScenes)
|
||||||
|
{
|
||||||
|
_variablesVboxContainer.AddChild(scene);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user