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

Reply via email to