[Lldb-commits] [lldb] [lldb] Add frame recognizer for __builtin_verbose_trap (PR #80368)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Fri Jul 12 17:07:09 PDT 2024
================
@@ -0,0 +1,122 @@
+#include "lldb/Target/VerboseTrapFrameRecognizer.h"
+
+#include "lldb/Core/Module.h"
+#include "lldb/Symbol/Function.h"
+#include "lldb/Symbol/SymbolContext.h"
+#include "lldb/Target/Process.h"
+#include "lldb/Target/StackFrameRecognizer.h"
+#include "lldb/Target/Target.h"
+
+#include "lldb/Utility/LLDBLog.h"
+#include "lldb/Utility/Log.h"
+
+#include "clang/CodeGen/ModuleBuilder.h"
+
+using namespace llvm;
+using namespace lldb;
+using namespace lldb_private;
+
+VerboseTrapRecognizedStackFrame::VerboseTrapRecognizedStackFrame(
+ StackFrameSP most_relevant_frame_sp, std::string stop_desc)
+ : m_most_relevant_frame(most_relevant_frame_sp) {
+ m_stop_desc = std::move(stop_desc);
+}
+
+lldb::RecognizedStackFrameSP
+VerboseTrapFrameRecognizer::RecognizeFrame(lldb::StackFrameSP frame_sp) {
+ if (frame_sp->GetFrameIndex())
+ return {};
+
+ ThreadSP thread_sp = frame_sp->GetThread();
+ ProcessSP process_sp = thread_sp->GetProcess();
+
+ StackFrameSP most_relevant_frame_sp = thread_sp->GetStackFrameAtIndex(1);
----------------
Michael137 wrote:
While I don't see it documented explicitly, `GetStackFrameAtIndex` handles cases where we asked for a frame index that's out-of-bounds. And according to the docs `GetStackFrameCount` can be expensive to check, so we probably don't want to do that here
https://github.com/llvm/llvm-project/pull/80368
More information about the lldb-commits
mailing list