Revert "Revert "[lldb] Extend frame recognizers to hide frames from backtraces (#104523)""
This reverts commit 547917aebd.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user