[x86/Linux] Get Frame Pointer from CallerSp#9235
Conversation
GetGSCookieAddress uses pEbp to get the current frame pointer, but pEbp is not properly initialized as discussed in #8980. This commit revises GetGSCookieAddress to use CallerSp (as in other architectures) to get Frame Pointer in order to fix #8980.
|
\CC @seanshpark @wateret |
|
To resolve #8980, #9232 is required in addition to this PR. |
|
It is still unclear to me how come the pEbp (or pCurrentContext->Ebp in the new world) is not initialized. Looking at the code and the callstack you have dumped in the other issue, it seems that the FillRegDisplay should set it and that it should be called on that code path. |
|
@janvorli I tested whether #9121 resolves #8980, but unfortunately it turns out that #9121 is not enough. As discussed in #8981, the context pointers that |
|
Ah, I have remembered it wrong then. I have thought the problem was that the pEbp was garbage. The change makes sense then. |
GetGSCookieAddress uses pEbp to get the current frame pointer, but pEbp is not properly initialized as discussed in dotnet/coreclr#8980. This commit revises GetGSCookieAddress to use CallerSp (as in other architectures) to get Frame Pointer in order to fix dotnet/coreclr#8980. Commit migrated from dotnet/coreclr@6be2bed
GetGSCookieAddress uses pEbp to get the current frame pointer, but pEbp
is not properly initialized as discussed in #8980.
This commit revises GetGSCookieAddress to use CallerSp (as in other
architectures) to get Frame Pointer in order to fix #8980.