Revert "Revert "[lldb] Extend frame recognizers to hide frames from backtraces (#104523)""

This reverts commit 547917aebd.
This commit is contained in:
Adrian Prantl
2024-08-23 09:55:47 -07:00
parent b7c1be1a7f
commit 3c0fba4f24
32 changed files with 424 additions and 75 deletions

View File

@@ -1524,6 +1524,35 @@ lldb::ValueObjectListSP ScriptInterpreterPythonImpl::GetRecognizedArguments(
return ValueObjectListSP();
}
bool ScriptInterpreterPythonImpl::ShouldHide(
const StructuredData::ObjectSP &os_plugin_object_sp,
lldb::StackFrameSP frame_sp) {
Locker py_lock(this, Locker::AcquireLock | Locker::NoSTDIN, Locker::FreeLock);
if (!os_plugin_object_sp)
return false;
StructuredData::Generic *generic = os_plugin_object_sp->GetAsGeneric();
if (!generic)
return false;
PythonObject implementor(PyRefType::Borrowed,
(PyObject *)generic->GetValue());
if (!implementor.IsAllocated())
return false;
bool result =
SWIGBridge::LLDBSwigPython_ShouldHide(implementor.get(), frame_sp);
// if it fails, print the error but otherwise go on
if (PyErr_Occurred()) {
PyErr_Print();
PyErr_Clear();
}
return result;
}
ScriptedProcessInterfaceUP
ScriptInterpreterPythonImpl::CreateScriptedProcessInterface() {
return std::make_unique<ScriptedProcessPythonInterface>(*this);