Fix rendezvous for rebase_exec=true case

When rebase_exec=true in DidAttach(), all modules are loaded
before the rendezvous breakpoint is set, which means the
LoadInterpreterModule() method is not called and m_interpreter_module
is not initialized.

This causes the very first rendezvous breakpoint hit with
m_initial_modules_added=false to accidentally unload the
module_sp that corresponds to the dynamic loader.

This bug (introduced in D92187) was causing the rendezvous
mechanism to not work in Android 28. The mechanism works
fine on older/newer versions of Android.

Test: Verified rendezvous on Android 28 and 29
Test: Added dlopen test

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D109797
This commit is contained in:
Emre Kultursay
2021-09-27 12:56:53 +02:00
committed by Pavel Labath
parent 7424deb743
commit d5629b5d4d
5 changed files with 131 additions and 8 deletions

View File

@@ -0,0 +1 @@
int LLDB_DYLIB_EXPORT b_function() { return 500; }