From 4b7924775044884c3669591890348b5f623f984d Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Fri, 3 Jan 2014 22:06:25 +0000 Subject: Don't enforce ABI stack alignment rules on the sigtramp frame -- its stack frame is a constructed, fake thing that may not conform correctly to these rules. This fixes a problem where lldb couldn't backtrace past an asynchronous signal handler (_sigtramp) frame on a stack on Mac OS X. llvm-svn: 198450 --- lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp') diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp index b258f7fede4..f5f499fd01a 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp @@ -949,6 +949,12 @@ RegisterContextLLDB::IsValid () const return m_frame_type != eNotAValidFrame; } +bool +RegisterContextLLDB::IsSigtrampFrame () const +{ + return m_frame_type == eSigtrampFrame; +} + // A skip frame is a bogus frame on the stack -- but one where we're likely to find a real frame farther // up the stack if we keep looking. It's always the second frame in an unwind (i.e. the first frame after // frame zero) where unwinding can be the trickiest. Ideally we'll mark up this frame in some way so the -- cgit v1.2.3