Поскольку среды выполнения до .NET 4.5 (включая SL / WP) не учитывают асинхронность, трассировки стека, которые они генерируют, показывают сгенерированные компилятором имена классов / методов (например, d_15
).
Кто-нибудь знает о утилите, которая генерирует лучше трассировки стека, учитывая трассировку стека во время выполнения, сборку и pdb?
Чтобы было понятно: I ' я не ищу полный асинхронный стек , просто лучшее представление о том, какой метод на самом деле вызвал исключение
Кажется, вышеприведенное утверждение недостаточно ясно, так что вот пример:
public async void Foo()
{
await Bar();
}
public async Task Bar()
{
async SomethingToMakeThisMethodAsync();
throw new Exception()
}
Когда генерируется исключение Bar
, трассировка стека будет содержать только сгенерированные имена методов (d_15()
). 1112 Мне все равно, что Фу по имени Бар. Я просто хочу знать, что Бар был методом, который бросил исключение