[all-commits] [llvm/llvm-project] d5629b: Fix rendezvous for rebase_exec=true case

Emre Kultursay via All-commits all-commits at lists.llvm.org
Mon Sep 27 04:27:49 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d5629b5d4d41ce71703105362f58dfcdbb6cc175
      https://github.com/llvm/llvm-project/commit/d5629b5d4d41ce71703105362f58dfcdbb6cc175
  Author: Emre Kultursay <emrekultursay at google.com>
  Date:   2021-09-27 (Mon, 27 Sep 2021)

  Changed paths:
    M lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
    A lldb/test/API/functionalities/load_after_attach/Makefile
    A lldb/test/API/functionalities/load_after_attach/TestLoadAfterAttach.py
    A lldb/test/API/functionalities/load_after_attach/b.cpp
    A lldb/test/API/functionalities/load_after_attach/main.cpp

  Log Message:
  -----------
  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




More information about the All-commits mailing list