-
|
Hi, I am investigating exceptions in a couple of Linux core dumps from ASP.NET Core 9.0 applications, running in containers (mcr.microsoft.com/dotnet/aspnet:9.0). The first core dump contains 264 exceptions and the second one 532 exceptions. Between the two dumps, only 24 exceptions have I am looking to understand the logic (or rules) that determine when the exception stack trace is populated. My assumption is that, since stack walk is an expensive operation, exception allocation and stack trace generation are handled by different components. Any pointers would be greatly appreciated. Marian. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
|
The try runtime/src/coreclr/vm/excep.cpp Lines 3134 to 3144 in 02bea82 _stackTrace.
|
Beta Was this translation helpful? Give feedback.
-
|
I did some further digging and for
So it seems the rest of the empty stack trace instance have similar pattern - either static field, instance field or a parameter of type Feel free to close this discussion. I have no further questions. Thanks. |
Beta Was this translation helpful? Give feedback.
The
_stackTracefield is populated once the exception is thrown.try
{
Exception e = new Exception();
// e._stackTrace is null here
throw e;
}
catch (Exception e)
{
// e._stackTrace is non-null here
}
runtime/src/coreclr/vm/excep.cpp
Lines 3134 to 3144 in 02bea82