[Lldb-commits] [lldb] r238475 - Don't crash if we don't have a process and need

Sean Callanan scallanan at apple.com
Thu May 28 13:06:40 PDT 2015


Author: spyffe
Date: Thu May 28 15:06:40 2015
New Revision: 238475

URL: http://llvm.org/viewvc/llvm-project?rev=238475&view=rev
Log:
Don't crash if we don't have a process and need
to check for alternate manglings.

Modified:
    lldb/trunk/source/Expression/IRForTarget.cpp

Modified: lldb/trunk/source/Expression/IRForTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/IRForTarget.cpp?rev=238475&r1=238474&r2=238475&view=diff
==============================================================================
--- lldb/trunk/source/Expression/IRForTarget.cpp (original)
+++ lldb/trunk/source/Expression/IRForTarget.cpp Thu May 28 15:06:40 2015
@@ -237,21 +237,24 @@ IRForTarget::GetFunctionAddress (llvm::F
                 // For example, "std::basic_string<...>" has an alternate mangling scheme per
                 // the Itanium C++ ABI.
                 lldb::ProcessSP process_sp = m_data_allocator.GetTarget()->GetProcessSP();
-                lldb_private::CPPLanguageRuntime *cpp_runtime = process_sp->GetCPPLanguageRuntime();
-                if (cpp_runtime && cpp_runtime->GetAlternateManglings(name, alternates))
+                if (process_sp)
                 {
-                    for (size_t i = 0; i < alternates.size(); ++i)
+                    lldb_private::CPPLanguageRuntime *cpp_runtime = process_sp->GetCPPLanguageRuntime();
+                    if (cpp_runtime && cpp_runtime->GetAlternateManglings(name, alternates))
                     {
-                        const lldb_private::ConstString &alternate_name = alternates[i];
-                        if (log)
-                            log->Printf("Looking up address of function \"%s\" with alternate name \"%s\"",
-                                        name.GetCString(), alternate_name.GetCString());
-                        if ((found_it = m_decl_map->GetFunctionAddress (alternate_name, fun_addr)))
+                        for (size_t i = 0; i < alternates.size(); ++i)
                         {
+                            const lldb_private::ConstString &alternate_name = alternates[i];
                             if (log)
-                                log->Printf("Found address of function \"%s\" with alternate name \"%s\"",
+                                log->Printf("Looking up address of function \"%s\" with alternate name \"%s\"",
                                             name.GetCString(), alternate_name.GetCString());
-                            break;
+                            if ((found_it = m_decl_map->GetFunctionAddress (alternate_name, fun_addr)))
+                            {
+                                if (log)
+                                    log->Printf("Found address of function \"%s\" with alternate name \"%s\"",
+                                                name.GetCString(), alternate_name.GetCString());
+                                break;
+                            }
                         }
                     }
                 }





More information about the lldb-commits mailing list