title: Mono does not include full stacktrace while rethrowing exception
body: <p>This behavior makes difficult to troubleshoot errors, especially in external libraries.
  Example code:</p>
  
  <pre><code>public class ExceptionReThrow
  {
      public void Test(){
          try
          {
              M1 ();
          }
          catch (Exception ex)
          {
              Console.WriteLine(ex);
          }
      }
  
      public void M1()
      {
          M2();
      }
  
      private void M2()
      {
          try{
              M3();
          }catch{
              throw;
          }
      }
  
      private void M3()
      {
          throw new NotImplementedException();
      }
  }
  </code></pre>
  
  <p>For Microsoft .Net output will be:</p>
  
  <blockquote>
    <p>System.NotImplementedException: The method or operation is not implemented.
      at TestApp.ExceptionReThrow.M3() in D:\source\TestApp\TestApp\ExceptionReThrow.cs:line 38
      at TestApp.ExceptionReThrow.M2() in D:\source\TestApp\TestApp\ExceptionReThrow.cs:line 32
      at TestApp.ExceptionReThrow.M1() in D:\source\TestApp\TestApp\ExceptionReThrow.cs:line 24
      at TestApp.ExceptionReThrow.Test() in D:\source\TestApp\TestApp\ExceptionReThrow.cs:line 14</p>
  </blockquote>
  
  <p>For mono (4.2.3) output will be:</p>
  
  <blockquote>
    <p>System.NotImplementedException: The method or operation is not implemented.
      at TestApp.ExceptionReThrow.M3 () [0x00001] in D:\source\TestApp\TestApp\ExceptionReThrow.cs:38 
      at TestApp.ExceptionReThrow.M2 () [0x00003] in D:\source\TestApp\TestApp\ExceptionReThrow.cs:30</p>
  </blockquote>
  
  <p>As you can see, mono looses stack between first and second catch statements.
  What is the explanation for this feature? Can I disable it?</p>