You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While I have added support for emitting function calls conforming to Go ABI (passing parameters on stack) for binary rewriting, it is not sufficient. The key issue is that if we call a function written in Go in instrumentation, the Go function may trigger dynamic stack growth and initialize stack unwinding.
However, currently I only generate a return address mapping for existing function call. The table does not include any recipe for unwinding through instrumentation. Note that function calls in instrumentation are newly generated code, so there is not existing .eh_frame corresponding.
The text was updated successfully, but these errors were encountered:
@ManojKumarChauhan I looked at the case where mybin_out does not crash but mybin_out_p crashes. The root cause of mybin_out_p crash is mentioned above. I think the fact that mybin_out does not crash is just accidental.
I have some ongoing work that serves as a foundation to resolve this problem. I am not there yet. This is something that I am interested to support. I will think about how to incorporate this issue my plan. It will probably take several weeks.
Hi @mxz297,
Thanks for the clarification.
The crash also exists when the instrumented function is the part of a go library with c-shared or plugin option.
While I have added support for emitting function calls conforming to Go ABI (passing parameters on stack) for binary rewriting, it is not sufficient. The key issue is that if we call a function written in Go in instrumentation, the Go function may trigger dynamic stack growth and initialize stack unwinding.
However, currently I only generate a return address mapping for existing function call. The table does not include any recipe for unwinding through instrumentation. Note that function calls in instrumentation are newly generated code, so there is not existing .eh_frame corresponding.
The text was updated successfully, but these errors were encountered: