Fix unwound funclet GC stack reporting on Unix
authorJan Vorlicek <janvorli@microsoft.com>
Mon, 15 Feb 2016 12:44:13 +0000 (13:44 +0100)
committerJan Vorlicek <janvorli@microsoft.com>
Mon, 15 Feb 2016 12:44:13 +0000 (13:44 +0100)
commit70c20f9cabf4671e5444ee44b33584507010d8c5
tree28eba4bb6dc00e9783b75594b1e0177f93a66656
parentd987642546b483bf2b834b66abe8281eba4791b0
Fix unwound funclet GC stack reporting on Unix

This change fixes a problem with reporting object on stack for GC when
GC scan is performed right after a funclet is unwound during exception handling.
In such case, the parent of the funclet should report live object references,
but it was not doing so on Unix.
On Unix, the unwound funclet is detected in a different way than on Windows due
to the fact that the stack frames of the funclet are already reclaimed, while on
Windows, they are still there.
When we detect the unwound funclet on Unix, we set state of the stack walker so
that it behaves in the same way as on Windows. But we were missing one state
variable that makes the parent report the references instead of the funclet,
the m_fDidFuncletReportGCReferences.

Commit migrated from https://github.com/dotnet/coreclr/commit/e49bd7a992ab038533b745741a26ac3d6208a877
src/coreclr/src/vm/stackwalk.cpp