Enabled the namespace-specific search functionality,
which had previously been commented out while I tested
it.  It's not fully working yet, but it doesn't break
our testsuite and it's an important piece of
functionality.

Also added some logging to SymbolFileDWARF to help
diagnose entities that are found in a symbol file,
but do not reside in the expected namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141894 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangExpressionDeclMap.cpp b/source/Expression/ClangExpressionDeclMap.cpp
index 3534147..6db3757 100644
--- a/source/Expression/ClangExpressionDeclMap.cpp
+++ b/source/Expression/ClangExpressionDeclMap.cpp
@@ -2070,10 +2070,10 @@
                             i->second.GetNamespaceDecl()->getNameAsString().c_str(),
                             i->first->GetFileSpec().GetFilename().GetCString());
                 
-            //FindExternalVisibleDecls(context,
-            //                         i->first,
-            //                         i->second,
-            //                         name);
+            FindExternalVisibleDecls(context,
+                                     i->first,
+                                     i->second,
+                                     name);
         }
     }
     else if (!isa<TranslationUnitDecl>(context.m_decl_context))
diff --git a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 94f7b89..848becf 100644
--- a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -1982,6 +1982,8 @@
     // No namespace specified, so the answesr i
     if (namespace_decl == NULL)
         return true;
+    
+    LogSP log (LogChannelDWARF::GetLogIfAll(DWARF_LOG_LOOKUPS));
 
     const DWARFDebugInfoEntry *decl_ctx_die = GetDeclContextDIEContainingDIE (cu, die);
     if (decl_ctx_die)
@@ -1991,12 +1993,21 @@
         if (clang_namespace_decl)
         {
             if (decl_ctx_die->Tag() != DW_TAG_namespace)
+            {
+                if (log)
+                    log->Printf("Found a match, but its parent is not a namespace");
                 return false;
-
+            }
+                
             DeclContextToDIEMap::iterator pos = m_decl_ctx_to_die.find(clang_namespace_decl);
             
             if (pos == m_decl_ctx_to_die.end())
+            {
+                if (log)
+                    log->Printf("Found a match in a namespace, but its parent is not the requested namespace");
+                
                 return false;
+            }
             
             return decl_ctx_die == pos->second;
         }
@@ -2010,6 +2021,10 @@
                 return true;
         }
     }
+    
+    if (log)
+        log->Printf("Found a match, but its parent doesn't exist");
+    
     return false;
 }
 uint32_t