On 2 October 2013 10:11, Carlo Kok <[email protected]> wrote:
>
> I was trying to see how far I could get debugging with arm64 (not far yet) 
> but the code in attach patch catch the abi not existing yet, instead of 
> crashing in GetSourceName() it just logs that there's no unwind frame. If oke 
> I'll commit.

I ran into this just yesterday (and hacked in a different workaround,
which I've now undone).  What do you think of this version instead,
which perhaps makes the issue more clear for next person to add a new
architecture:

diff --git a/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
b/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
index b3d9aa3..3872add 100644
--- a/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
+++ b/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
@@ -620,6 +620,10 @@ RegisterContextLLDB::GetFullUnwindPlanForFrame ()
         arch_default_unwind_plan_sp.reset (new UnwindPlan
(lldb::eRegisterKindGeneric));
         abi->CreateDefaultUnwindPlan(*arch_default_unwind_plan_sp);
     }
+    else
+    {
+        UnwindLogMsgVerbose ("unable to get ABI for default UnwindPlan");
+    }

     bool behaves_like_zeroth_frame = false;
     if (IsFrameZero ()
@@ -759,7 +763,8 @@ RegisterContextLLDB::GetFullUnwindPlanForFrame ()
     }

     // If nothing else, use the architectural default UnwindPlan and
hope that does the job.
-    UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan",
arch_default_unwind_plan_sp->GetSourceName().GetCString());
+    if (arch_default_unwind_plan_sp)
+        UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan",
arch_default_unwind_plan_sp->GetSourceName().GetCString());
     return arch_default_unwind_plan_sp;
 }

(Otherwise, there are a couple of whitespace issues with your patch --
EOL after the else, and 2-space indents.)
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to