diff options
author | Mikhail Kurinnoi <m.kurinnoi@samsung.com> | 2020-06-04 17:57:17 +0300 |
---|---|---|
committer | Hyungju Lee <leee.lee@samsung.com> | 2020-09-18 14:58:13 +0900 |
commit | 1200faf6de87e60718cb96f729441fe880bacc78 (patch) | |
tree | fa1f428850b5427451f743c6d205dacf16d2dee8 /Tools/dotnetcli/sdk/NuGetFallbackFolder/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtimes/debian.8-x64 | |
parent | acfc7408960548202d6ac9dc8898b1d5c9b9dea8 (diff) | |
download | coreclr-accepted/tizen_5.0_base.tar.gz coreclr-accepted/tizen_5.0_base.tar.bz2 coreclr-accepted/tizen_5.0_base.zip |
[x86/Linux] Fix SIGSEGV during evaluation abort routine.submit/tizen_5.0_base/20200920.212751accepted/tizen/5.0/base/20200922.044748accepted/tizen_5.0_base
In case of evaluation with implicit function call aborted by ```ICorDebugEval::Abort()```, CoreCLR crash with SIGSEGV at line https://github.com/dotnet/runtime/blob/e25517ea27311297c1e3946acb3b4382d5fa7fef/src/coreclr/src/vm/jitinterface.cpp#L14293 since ```m_pJM``` is ```NULL```.
This happens because during ```EECodeInfo::Init()``` call, ```codeAddress``` parameter provide address inside native code region (this address belong to CallDescrWorkerInternal(), libcoreclr.so), but not address inside managed code, so, ```ExecutionManager::FindCodeRange()``` can't find appropriate ```RangeSection```.
During investigation I found, that at line https://github.com/dotnet/runtime/blob/e25517ea27311297c1e3946acb3b4382d5fa7fef/src/coreclr/src/vm/stackwalk.cpp#L2584 current context was not changed properly (we have wrong ```Eip``` register value).
I found, that ```FuncEvalFrame::UpdateRegDisplay()``` code
https://github.com/dotnet/runtime/blob/e25517ea27311297c1e3946acb3b4382d5fa7fef/src/coreclr/src/debug/ee/debugger.inl#L238-L247
don't have x86/Linux support implemented.
I propose changes, that were already made for other ```UpdateRegDisplay()``` implementations in order to provide proper context for x86/Linux.
Diffstat (limited to 'Tools/dotnetcli/sdk/NuGetFallbackFolder/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtimes/debian.8-x64')
0 files changed, 0 insertions, 0 deletions