【发布时间】:2019-08-10 21:05:50
【问题描述】:
我有以下使用 asyc 方法的简单 C# 代码 sn-p:
class SUT
{
public async Task<int> GetValue()
{
await Task.Delay(1000);
return 42;
}
}
class Program
{
static async Task<int> CallAsync()
{
SUT sut = new SUT();
int result = await sut.GetValue();
return result;
}
static void Main(string[] args)
{
CallAsync().GetAwaiter().GetResult();
}
}
我在“return 42”语句上放置断点并观察 Visual Studio 调用堆栈和从 System.Diagnostics.StackTrace() 获得的 StackTrace。在 VS 调用堆栈窗口中有一些可见的帧,这些帧没有出现在 StackTrace 中,如下图所示: StackTrace is missing frames from VS Call Stack window
有没有办法使用 System.Diagnostics.StackTrace 完全按照在 Visual Studio 调用堆栈窗口中观察到的方式获取堆栈跟踪?
【问题讨论】:
标签: c# .net visual-studio stack stack-trace