2626#include " lldb/Target/Thread.h"
2727#include " lldb/Target/ThreadPlanCallFunction.h"
2828#include " lldb/Target/ThreadPlanRunToAddress.h"
29- #include " lldb/Target/ThreadPlanStepInstruction.h"
3029#include " lldb/Utility/DataBuffer.h"
3130#include " lldb/Utility/DataBufferHeap.h"
3231#include " lldb/Utility/LLDBLog.h"
@@ -924,15 +923,15 @@ DynamicLoaderDarwin::GetStepThroughTrampolinePlan(Thread &thread,
924923 if (current_symbol != nullptr ) {
925924 std::vector<Address> addresses;
926925
927- ConstString current_name =
928- current_symbol->GetMangled ().GetName (Mangled::ePreferMangled);
929926 if (current_symbol->IsTrampoline ()) {
927+ ConstString trampoline_name =
928+ current_symbol->GetMangled ().GetName (Mangled::ePreferMangled);
930929
931- if (current_name ) {
930+ if (trampoline_name ) {
932931 const ModuleList &images = target_sp->GetImages ();
933932
934933 SymbolContextList code_symbols;
935- images.FindSymbolsWithNameAndType (current_name , eSymbolTypeCode,
934+ images.FindSymbolsWithNameAndType (trampoline_name , eSymbolTypeCode,
936935 code_symbols);
937936 for (const SymbolContext &context : code_symbols) {
938937 Address addr = context.GetFunctionOrSymbolAddress ();
@@ -946,8 +945,8 @@ DynamicLoaderDarwin::GetStepThroughTrampolinePlan(Thread &thread,
946945 }
947946
948947 SymbolContextList reexported_symbols;
949- images.FindSymbolsWithNameAndType (current_name, eSymbolTypeReExported,
950- reexported_symbols);
948+ images.FindSymbolsWithNameAndType (
949+ trampoline_name, eSymbolTypeReExported, reexported_symbols);
951950 for (const SymbolContext &context : reexported_symbols) {
952951 if (context.symbol ) {
953952 Symbol *actual_symbol =
@@ -969,7 +968,7 @@ DynamicLoaderDarwin::GetStepThroughTrampolinePlan(Thread &thread,
969968 }
970969
971970 SymbolContextList indirect_symbols;
972- images.FindSymbolsWithNameAndType (current_name , eSymbolTypeResolver,
971+ images.FindSymbolsWithNameAndType (trampoline_name , eSymbolTypeResolver,
973972 indirect_symbols);
974973
975974 for (const SymbolContext &context : indirect_symbols) {
@@ -1029,18 +1028,6 @@ DynamicLoaderDarwin::GetStepThroughTrampolinePlan(Thread &thread,
10291028 thread_plan_sp = std::make_shared<ThreadPlanRunToAddress>(
10301029 thread, load_addrs, stop_others);
10311030 }
1032- // One more case we have to consider is "branch islands". These are regular
1033- // TEXT symbols but their names end in .island. They are to allow arm64
1034- // code to branch further than the size of the address slot allows. We
1035- // just need to single-instruction step in that case.
1036- if (!thread_plan_sp && current_name.GetStringRef ().ends_with (" .island" )) {
1037- thread_plan_sp = std::make_shared<ThreadPlanStepInstruction>(
1038- thread,
1039- /* step_over= */ false , /* stop_others */ false , eVoteNoOpinion,
1040- eVoteNoOpinion);
1041- LLDB_LOG (log, " Stepping one instruction over branch island: '{0}'." ,
1042- current_name);
1043- }
10441031 } else {
10451032 LLDB_LOGF (log, " Could not find symbol for step through." );
10461033 }
0 commit comments