The current implementation of TracedFunction is bad design. We should use one class for tracing an active function, then generate a new object (of a different) class when that function completes. The object for the completed function won't require any of the active-only information such as the active instruction, allocas, byval areas, stack saves, or current runtime values. The object for the active function won't require information such as the offset of the FunctionEnd event, or the thread time at which the function was exited.
The current implementation of TracedFunction is bad design. We should use one class for tracing an active function, then generate a new object (of a different) class when that function completes. The object for the completed function won't require any of the active-only information such as the active instruction, allocas, byval areas, stack saves, or current runtime values. The object for the active function won't require information such as the offset of the FunctionEnd event, or the thread time at which the function was exited.