Author: gclayton Date: Tue Jun 21 15:00:36 2016 New Revision: 273307 URL: http://llvm.org/viewvc/llvm-project?rev=273307&view=rev Log: Fix the use of lldb::eSymbolContextVariable.
In Address.cpp, we were asking for the lldb::eSymbolContextVariable to be resolved, yet we weren't using the variable. This code gets called when disassembling and can cause the manual creation of all global variables variables which can take minutes. Removing eSymbolContextVariable allows disassembly to not create these long pauses. In Module.cpp, if someone only specified the lldb::eSymbolContextVariable flag, we would not look into a module's debug info, now we will. <rdar://problem/26907449> Modified: lldb/trunk/source/Core/Address.cpp lldb/trunk/source/Core/Module.cpp Modified: lldb/trunk/source/Core/Address.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Address.cpp?rev=273307&r1=273306&r2=273307&view=diff ============================================================================== --- lldb/trunk/source/Core/Address.cpp (original) +++ lldb/trunk/source/Core/Address.cpp Tue Jun 21 15:00:36 2016 @@ -678,7 +678,7 @@ Address::Dump (Stream *s, ExecutionConte if (module_sp) { SymbolContext sc; - module_sp->ResolveSymbolContextForAddress(*this, eSymbolContextEverything | eSymbolContextVariable, sc); + module_sp->ResolveSymbolContextForAddress(*this, eSymbolContextEverything, sc); if (sc.function || sc.symbol) { bool show_stop_context = true; Modified: lldb/trunk/source/Core/Module.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Module.cpp?rev=273307&r1=273306&r2=273307&view=diff ============================================================================== --- lldb/trunk/source/Core/Module.cpp (original) +++ lldb/trunk/source/Core/Module.cpp Tue Jun 21 15:00:36 2016 @@ -542,7 +542,8 @@ Module::ResolveSymbolContextForAddress ( if (resolve_scope & eSymbolContextCompUnit || resolve_scope & eSymbolContextFunction || resolve_scope & eSymbolContextBlock || - resolve_scope & eSymbolContextLineEntry ) + resolve_scope & eSymbolContextLineEntry || + resolve_scope & eSymbolContextVariable ) { resolved_flags |= sym_vendor->ResolveSymbolContext (so_addr, resolve_scope, sc); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits