================ @@ -1028,6 +1029,23 @@ DynamicLoaderDarwin::GetStepThroughTrampolinePlan(Thread &thread, thread_plan_sp = std::make_shared<ThreadPlanRunToAddress>( thread, load_addrs, stop_others); } + // One more case we have to consider is "branch islands". These are regular + // TEXT symbols but their names end in .island plus maybe a .digit suffix. + // They are to allow arm64 code to branch further than the size of the + // address slot allows. We just need to single-instruction step in that + // case. + static const char *g_branch_island_pattern = "\\.island\\.?[0-9]*$"; + static RegularExpression g_branch_island_regex(g_branch_island_pattern); + + bool is_branch_island = g_branch_island_regex.Execute(current_name); + if (!thread_plan_sp && is_branch_island) { + thread_plan_sp = std::make_shared<ThreadPlanStepInstruction>( + thread, + /* step_over= */ false, /* stop_others */ false, eVoteNoOpinion, ---------------- adrian-prantl wrote:
```suggestion /*step_over=*/ false, /*stop_others=*/ false, eVoteNoOpinion, ``` https://github.com/llvm/llvm-project/pull/138781 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits