summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2016-03-03 21:23:15 +0000
committerLang Hames <lhames@gmail.com>2016-03-03 21:23:15 +0000
commit3b514554a2ab643813c91f161d69c5a5c305efcf (patch)
tree9d4c90086d2f8914b1a2f10ff9b3402675a9d747 /lldb/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py
parent30138256fa629a78da3bcc587a0885dd4a8bdd7a (diff)
downloadbcm5719-llvm-3b514554a2ab643813c91f161d69c5a5c305efcf.tar.gz
bcm5719-llvm-3b514554a2ab643813c91f161d69c5a5c305efcf.zip
[RuntimeDyld] Fix '_' stripping in RTDyldMemoryManager::getSymbolAddressInProcess.
The RTDyldMemoryManager::getSymbolAddressInProcess method accepts a linker-mangled symbol name, but it calls through to dlsym to do the lookup (via DynamicLibrary::SearchForAddressOfSymbol), and dlsym expects an unmangled symbol name. Historically we've attempted to "demangle" by removing leading '_'s on all platforms, and fallen back to an extra search if that failed. That's broken, as it can cause symbols to resolve incorrectly on platforms that don't do mangling if you query '_foo' and the process also happens to contain a 'foo'. Fix this by demangling conditionally based on the host platform. That's safe here because this function is specifically for symbols in the host process, so the usual cross-process JIT looking concerns don't apply. M unittests/ExecutionEngine/ExecutionEngineTest.cpp M lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp llvm-svn: 262657
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud