В приведенном ниже коде генерируется трассировка стека исключений в обоих режимах отладки и выпуска:
static class ET
{
    public static void E1()
    {
        throw new Exception("E1");
    }
    public static void E2()
    {
        try
        {
            E1();
        }
        catch (Exception e)
        {
            throw;
        }
    }
    public static void Entry()
    {
        try
        {
            E2();
        }
        catch (Exception e)
        {           
            Console.WriteLine(e.StackTrace);
        }
    }
}
Результат в режиме отладки:
в ET.E1() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 47
в ET.E2() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 58
в ET.Entry() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 68
Результат в режиме деблокирования:
в ET.E2() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 55
в ET.Entry() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 68
Обратите внимание, что первая строка из результата в режиме Release отсутствует. Как вернуть строку нарушения в режим выпуска.
