summaryrefslogtreecommitdiff
path: root/lldb/source/API
diff options
context:
space:
mode:
authorMichael Buch <michaelbuch12@gmail.com>2025-11-12 10:13:43 +0000
committerGitHub <noreply@github.com>2025-11-12 10:13:43 +0000
commitb7bc4a2103a77328f50f7e0b08ca073e34673755 (patch)
treec33b48b04c50902c8d69cff1cbe31cd91ce6fce6 /lldb/source/API
parent5e4f17714259361ca3b355085ff61288aad6f30f (diff)
Revert "[lldb] Introduce ScriptedFrameProvider for real threads" (#167662)
The new test fails on x86 and arm64 public macOS bots: ``` 09:27:59 ====================================================================== 09:27:59 FAIL: test_append_frames (TestScriptedFrameProvider.ScriptedFrameProviderTestCase) 09:27:59 Test that we can add frames after real stack. 09:27:59 ---------------------------------------------------------------------- 09:27:59 Traceback (most recent call last): 09:27:59 File "/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/llvm-project/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py", line 122, in test_append_frames 09:27:59 self.assertEqual(new_frame_count, original_frame_count + 1) 09:27:59 AssertionError: 5 != 6 09:27:59 Config=arm64-/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/lldb-build/bin/clang 09:27:59 ====================================================================== 09:27:59 FAIL: test_applies_to_thread (TestScriptedFrameProvider.ScriptedFrameProviderTestCase) 09:27:59 Test that applies_to_thread filters which threads get the provider. 09:27:59 ---------------------------------------------------------------------- 09:27:59 Traceback (most recent call last): 09:27:59 File "/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/llvm-project/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py", line 218, in test_applies_to_thread 09:27:59 self.assertEqual( 09:27:59 AssertionError: 5 != 1 : Thread with ID 1 should have 1 synthetic frame 09:27:59 Config=arm64-/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/lldb-build/bin/clang 09:27:59 ====================================================================== 09:27:59 FAIL: test_prepend_frames (TestScriptedFrameProvider.ScriptedFrameProviderTestCase) 09:27:59 Test that we can add frames before real stack. 09:27:59 ---------------------------------------------------------------------- 09:27:59 Traceback (most recent call last): 09:27:59 File "/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/llvm-project/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py", line 84, in test_prepend_frames 09:27:59 self.assertEqual(new_frame_count, original_frame_count + 2) 09:27:59 AssertionError: 5 != 7 09:27:59 Config=arm64-/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/lldb-build/bin/clang 09:27:59 ====================================================================== 09:27:59 FAIL: test_remove_frame_provider_by_id (TestScriptedFrameProvider.ScriptedFrameProviderTestCase) 09:27:59 Test that RemoveScriptedFrameProvider removes a specific provider by ID. 09:27:59 ---------------------------------------------------------------------- 09:27:59 Traceback (most recent call last): 09:27:59 File "/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/llvm-project/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py", line 272, in test_remove_frame_provider_by_id 09:27:59 self.assertEqual(thread.GetNumFrames(), 3, "Should have 3 synthetic frames") 09:27:59 AssertionError: 5 != 3 : Should have 3 synthetic frames 09:27:59 Config=arm64-/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/lldb-build/bin/clang 09:27:59 ====================================================================== 09:27:59 FAIL: test_replace_all_frames (TestScriptedFrameProvider.ScriptedFrameProviderTestCase) 09:27:59 Test that we can replace the entire stack. 09:27:59 ---------------------------------------------------------------------- 09:27:59 Traceback (most recent call last): 09:27:59 File "/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/llvm-project/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py", line 41, in test_replace_all_frames 09:27:59 self.assertEqual(thread.GetNumFrames(), 3, "Should have 3 synthetic frames") 09:27:59 AssertionError: 5 != 3 : Should have 3 synthetic frames 09:27:59 Config=arm64-/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/lldb-build/bin/clang 09:27:59 ====================================================================== 09:27:59 FAIL: test_scripted_frame_objects (TestScriptedFrameProvider.ScriptedFrameProviderTestCase) 09:27:59 Test that provider can return ScriptedFrame objects. 09:27:59 ---------------------------------------------------------------------- 09:27:59 Traceback (most recent call last): 09:27:59 File "/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/llvm-project/lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py", line 159, in test_scripted_frame_objects 09:27:59 self.assertEqual(frame0.GetFunctionName(), "custom_scripted_frame_0") 09:27:59 AssertionError: 'thread_func(int)' != 'custom_scripted_frame_0' 09:27:59 - thread_func(int) 09:27:59 + custom_scripted_frame_0 09:27:59 09:27:59 Config=arm64-/Users/ec2-user/jenkins/workspace/llvm.org/as-lldb-cmake/lldb-build/bin/clang 09:27:59 ---------------------------------------------------------------------- 09:27:59 Ran 6 tests in 14.242s 09:27:59 09:27:59 FAILED (failures=6) ``` Reverts llvm/llvm-project#161870
Diffstat (limited to 'lldb/source/API')
-rw-r--r--lldb/source/API/SBTarget.cpp82
1 files changed, 0 insertions, 82 deletions
diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp
index bb1d98b6e15c..98d10aa07c53 100644
--- a/lldb/source/API/SBTarget.cpp
+++ b/lldb/source/API/SBTarget.cpp
@@ -23,7 +23,6 @@
#include "lldb/API/SBStringList.h"
#include "lldb/API/SBStructuredData.h"
#include "lldb/API/SBSymbolContextList.h"
-#include "lldb/API/SBThreadCollection.h"
#include "lldb/API/SBTrace.h"
#include "lldb/Breakpoint/BreakpointID.h"
#include "lldb/Breakpoint/BreakpointIDList.h"
@@ -40,7 +39,6 @@
#include "lldb/Core/Section.h"
#include "lldb/Core/StructuredDataImpl.h"
#include "lldb/Host/Host.h"
-#include "lldb/Interpreter/Interfaces/ScriptedFrameProviderInterface.h"
#include "lldb/Symbol/DeclVendor.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolFile.h"
@@ -52,7 +50,6 @@
#include "lldb/Target/LanguageRuntime.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/StackFrame.h"
-#include "lldb/Target/SyntheticFrameProvider.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/TargetList.h"
#include "lldb/Utility/ArchSpec.h"
@@ -62,7 +59,6 @@
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/ProcessInfo.h"
#include "lldb/Utility/RegularExpression.h"
-#include "lldb/Utility/ScriptedMetadata.h"
#include "lldb/ValueObject/ValueObjectConstResult.h"
#include "lldb/ValueObject/ValueObjectList.h"
#include "lldb/ValueObject/ValueObjectVariable.h"
@@ -2412,81 +2408,3 @@ lldb::SBMutex SBTarget::GetAPIMutex() const {
return lldb::SBMutex(target_sp);
return lldb::SBMutex();
}
-
-uint32_t
-SBTarget::RegisterScriptedFrameProvider(const char *class_name,
- lldb::SBStructuredData args_dict,
- lldb::SBError &error) {
- LLDB_INSTRUMENT_VA(this, class_name, args_dict, error);
-
- TargetSP target_sp = GetSP();
- if (!target_sp) {
- error.SetErrorString("invalid target");
- return 0;
- }
-
- if (!class_name || !class_name[0]) {
- error.SetErrorString("invalid class name");
- return 0;
- }
-
- // Extract the dictionary from SBStructuredData.
- StructuredData::DictionarySP dict_sp;
- if (args_dict.IsValid() && args_dict.m_impl_up) {
- StructuredData::ObjectSP obj_sp = args_dict.m_impl_up->GetObjectSP();
- if (obj_sp && obj_sp->GetType() != lldb::eStructuredDataTypeDictionary) {
- error.SetErrorString("SBStructuredData argument isn't a dictionary");
- return 0;
- }
- dict_sp = std::make_shared<StructuredData::Dictionary>(obj_sp);
- }
-
- // Create the ScriptedMetadata.
- ScriptedMetadataSP metadata_sp =
- std::make_shared<ScriptedMetadata>(class_name, dict_sp);
-
- // Create the interface for calling static methods.
- ScriptedFrameProviderInterfaceSP interface_sp =
- target_sp->GetDebugger()
- .GetScriptInterpreter()
- ->CreateScriptedFrameProviderInterface();
-
- // Create a descriptor (applies to all threads by default).
- ScriptedFrameProviderDescriptor descriptor(metadata_sp);
- descriptor.interface_sp = interface_sp;
-
- llvm::Expected<uint32_t> descriptor_id_or_err =
- target_sp->AddScriptedFrameProviderDescriptor(descriptor);
- if (!descriptor_id_or_err) {
- error.SetErrorString(
- llvm::toString(descriptor_id_or_err.takeError()).c_str());
- return 0;
- }
-
- // Register the descriptor with the target.
- return *descriptor_id_or_err;
-}
-
-lldb::SBError SBTarget::RemoveScriptedFrameProvider(uint32_t provider_id) {
- LLDB_INSTRUMENT_VA(this, provider_id);
-
- SBError error;
- TargetSP target_sp = GetSP();
- if (!target_sp) {
- error.SetErrorString("invalid target");
- return error;
- }
-
- if (!provider_id) {
- error.SetErrorString("invalid provider id");
- return error;
- }
-
- if (!target_sp->RemoveScriptedFrameProviderDescriptor(provider_id)) {
- error.SetErrorStringWithFormat("no frame provider named '%u' found",
- provider_id);
- return error;
- }
-
- return {};
-}