[Lldb-commits] [lldb] Branch island with numbers (PR #138781)
Adrian Prantl via lldb-commits
lldb-commits at lists.llvm.org
Tue May 6 17:02:30 PDT 2025
================
@@ -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
More information about the lldb-commits
mailing list