aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAntónio Afonso <antonio.afonso@gmail.com>2021-02-18 20:31:55 -0800
committerAntónio Afonso <antonio.afonso@gmail.com>2021-02-21 09:28:04 -0800
commita83a825e9902b54b315870e9ed85723525208f09 (patch)
tree100f59858fa156ead06aa7139f91be7a3ca98b85 /clang/lib/Frontend/CompilerInvocation.cpp
parent7c706aa0d88fa2ca99be7951073454b42e1891dd (diff)
downloadllvm-a83a825e9902b54b315870e9ed85723525208f09.zip
llvm-a83a825e9902b54b315870e9ed85723525208f09.tar.gz
llvm-a83a825e9902b54b315870e9ed85723525208f09.tar.bz2
Make sure the interpreter module was loaded before making checks against it
This issue was introduced in https://reviews.llvm.org/D92187. The guard I'm changing were is supposed to act when linux is loading the linker for the second time (due to differences in paths like symlinks). This is done by checking `module_sp != m_interpreter_module.lock()` however this will be true when `m_interpreter_module` wasn't initialized, making linux unload the linker module (the most visible result here is that lldb will stop getting notified about new modules loaded by the process, because it can't set the rendezvous breakpoint again after the stepping over it once). The `m_interpreter_module` is not getting initialize when it goes through this path: https://github.com/llvm/llvm-project/blob/dbfdb139f75470a9abc78e7c9faf743fdd963c2d/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp#L332, which happens when lldb was able to read the address from the dynamic section of the executable. What I'm not sure about though, is if when we go through this path if we still load the linker twice on linux. If that's the case then it means we need to somehow set the m_interpreter_module instead of the fix I provide here. I've only tested this on Android. Differential Revision: https://reviews.llvm.org/D96637
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions