Unmangling (до .NET 4.5) асинхронные / ожидающие трассировки стека

Поскольку среды выполнения до .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 Мне все равно, что Фу по имени Бар. Я просто хочу знать, что Бар был методом, который бросил исключение

10
задан Richard Szalay 14 May 2013 в 22:31
поделиться