[Lldb-commits] [lldb] Revert "[lldb][RPC] Upstream lldb-rpc-gen tool" (PR #146969)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 3 15:53:49 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Chelsea Cassanova (chelcassanova)
<details>
<summary>Changes</summary>
Reverts llvm/llvm-project#<!-- -->138031. This is failing during the build phase on the Ubuntu buildbot:
```
Error while processing /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/API/SBWatchpoint.h.
[78/78] Processing file /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/API/SBWatchpointOptions.h.
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-class-memaccess'; did you mean '-Wno-class-varargs'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-stringop-truncation'; did you mean '-Wno-format-truncation'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-class-memaccess'; did you mean '-Wno-class-varargs'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-stringop-truncation'; did you mean '-Wno-format-truncation'? [-Wunknown-warning-option]
In file included from /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/API/SBWatchpointOptions.h:12:
In file included from /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/API/SBDefines.h:12:
In file included from /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/lldb-defines.h:12:
In file included from /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/lldb-types.h:12:
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/include/lldb/lldb-enumerations.h:12:10: fatal error: 'cstdint' file not found
12 | #include <cstdint>
| ^~~~~~~~~
```
---
Patch is 48.14 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/146969.diff
15 Files Affected:
- (modified) lldb/cmake/modules/LLDBConfig.cmake (-2)
- (modified) lldb/test/CMakeLists.txt (+1-6)
- (removed) lldb/test/Shell/RPC/Generator/Inputs/SBDummy.h ()
- (removed) lldb/test/Shell/RPC/Generator/Tests/CheckRPCGenToolByproducts.test (-9)
- (removed) lldb/test/Shell/RPC/Generator/lit.local.cfg (-3)
- (modified) lldb/test/Shell/helper/toolchain.py (-10)
- (modified) lldb/test/Shell/lit.site.cfg.py.in (-1)
- (modified) lldb/tools/CMakeLists.txt (-3)
- (removed) lldb/tools/lldb-rpc/CMakeLists.txt (-22)
- (removed) lldb/tools/lldb-rpc/LLDBRPCGeneration.cmake (-60)
- (removed) lldb/tools/lldb-rpc/LLDBRPCHeaders.cmake (-101)
- (removed) lldb/tools/lldb-rpc/lldb-rpc-gen/CMakeLists.txt (-21)
- (removed) lldb/tools/lldb-rpc/lldb-rpc-gen/RPCCommon.cpp (-501)
- (removed) lldb/tools/lldb-rpc/lldb-rpc-gen/RPCCommon.h (-108)
- (removed) lldb/tools/lldb-rpc/lldb-rpc-gen/lldb-rpc-gen.cpp (-346)
``````````diff
diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
index f674c29682160..8c30b6e09d2c7 100644
--- a/lldb/cmake/modules/LLDBConfig.cmake
+++ b/lldb/cmake/modules/LLDBConfig.cmake
@@ -323,6 +323,4 @@ else()
set(LLDB_CAN_USE_DEBUGSERVER OFF)
endif()
-set(LLDB_BUILD_LLDBRPC ON CACHE BOOL "")
-
include(LLDBGenerateConfig)
diff --git a/lldb/test/CMakeLists.txt b/lldb/test/CMakeLists.txt
index 7cf239c7f95ab..6449ac5a9247f 100644
--- a/lldb/test/CMakeLists.txt
+++ b/lldb/test/CMakeLists.txt
@@ -132,10 +132,6 @@ if(TARGET lldb-framework)
add_lldb_test_dependency(lldb-framework)
endif()
-if (LLDB_BUILD_LLDBRPC)
- add_lldb_test_dependency(lldb-rpc-generate-sources)
-endif()
-
# Add dependencies that are not exported targets when building standalone.
if(NOT LLDB_BUILT_STANDALONE)
add_lldb_test_dependency(
@@ -253,8 +249,7 @@ llvm_canonicalize_cmake_booleans(
LLDB_TEST_SHELL_DISABLE_REMOTE
LLDB_TOOL_LLDB_SERVER_BUILD
LLDB_USE_SYSTEM_DEBUGSERVER
- LLDB_IS_64_BITS
- LLDB_BUILD_LLDBRPC)
+ LLDB_IS_64_BITS)
# Configure the individual test suites.
add_subdirectory(API)
diff --git a/lldb/test/Shell/RPC/Generator/Inputs/SBDummy.h b/lldb/test/Shell/RPC/Generator/Inputs/SBDummy.h
deleted file mode 100644
index e69de29bb2d1d..0000000000000
diff --git a/lldb/test/Shell/RPC/Generator/Tests/CheckRPCGenToolByproducts.test b/lldb/test/Shell/RPC/Generator/Tests/CheckRPCGenToolByproducts.test
deleted file mode 100644
index 15fcf8fb39c7d..0000000000000
--- a/lldb/test/Shell/RPC/Generator/Tests/CheckRPCGenToolByproducts.test
+++ /dev/null
@@ -1,9 +0,0 @@
-RUN: %lldb-rpc-gen --output-dir=%t %S/../Inputs/SBDummy.h
-
-RUN: ls %t | FileCheck %s
-
-# We're just making sure that the tool emits the class names,
-# methods and skipped methods file in the output directory.
-CHECK: SBAPI.def
-CHECK: SBClasses.def
-CHECK: SkippedMethods.txt
diff --git a/lldb/test/Shell/RPC/Generator/lit.local.cfg b/lldb/test/Shell/RPC/Generator/lit.local.cfg
deleted file mode 100644
index db9494781c00c..0000000000000
--- a/lldb/test/Shell/RPC/Generator/lit.local.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# All tests for the tool need lldb-rpc-gen to be built.
-if not config.lldb_has_lldbrpc:
- config.unsupported = True
diff --git a/lldb/test/Shell/helper/toolchain.py b/lldb/test/Shell/helper/toolchain.py
index 728f6347242f1..42968128f2702 100644
--- a/lldb/test/Shell/helper/toolchain.py
+++ b/lldb/test/Shell/helper/toolchain.py
@@ -156,16 +156,6 @@ def use_lldb_substitutions(config):
extra_args=["platform"],
unresolved="ignore",
),
- ToolSubst(
- "%lldb-rpc-gen",
- command=FindTool("lldb-rpc-gen"),
- # We need the LLDB build directory root to pass into the tool, not the test build root.
- extra_args=[
- "-p " + config.lldb_build_directory + "/..",
- '--extra-arg="-resource-dir=' + config.clang_resource_dir + '"',
- ],
- unresolved="ignore",
- ),
"lldb-test",
"lldb-dap",
ToolSubst(
diff --git a/lldb/test/Shell/lit.site.cfg.py.in b/lldb/test/Shell/lit.site.cfg.py.in
index beaa41e6fd379..5be5359217769 100644
--- a/lldb/test/Shell/lit.site.cfg.py.in
+++ b/lldb/test/Shell/lit.site.cfg.py.in
@@ -33,7 +33,6 @@ config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@"
config.have_lldb_server = @LLDB_TOOL_LLDB_SERVER_BUILD@
config.lldb_system_debugserver = @LLDB_USE_SYSTEM_DEBUGSERVER@
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
-config.lldb_has_lldbrpc = @LLDB_BUILD_LLDBRPC@
# The shell tests use their own module caches.
config.lldb_module_cache = os.path.join("@LLDB_TEST_MODULE_CACHE_LLDB@", "lldb-shell")
config.clang_module_cache = os.path.join("@LLDB_TEST_MODULE_CACHE_CLANG@", "lldb-shell")
diff --git a/lldb/tools/CMakeLists.txt b/lldb/tools/CMakeLists.txt
index 73ffbbbee3056..6804dc234555b 100644
--- a/lldb/tools/CMakeLists.txt
+++ b/lldb/tools/CMakeLists.txt
@@ -10,9 +10,6 @@ add_subdirectory(lldb-fuzzer EXCLUDE_FROM_ALL)
add_lldb_tool_subdirectory(lldb-instr)
add_lldb_tool_subdirectory(lldb-dap)
-if (LLDB_BUILD_LLDBRPC)
- add_lldb_tool_subdirectory(lldb-rpc)
-endif()
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_lldb_tool_subdirectory(darwin-debug)
diff --git a/lldb/tools/lldb-rpc/CMakeLists.txt b/lldb/tools/lldb-rpc/CMakeLists.txt
deleted file mode 100644
index fdd6cf9163e96..0000000000000
--- a/lldb/tools/lldb-rpc/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-include(CheckCXXCompilerFlag)
-# Umbrella target for the entire framework is a default target.
-add_custom_target(lldb-rpc ALL)
-
-if(LLDB_CODESIGN_IDENTITY)
- # Use explicit LLDB identity
- set(LLVM_CODESIGNING_IDENTITY ${LLDB_CODESIGN_IDENTITY})
-else()
- # Use explicit LLVM identity or default to ad-hoc signing if empty
- if(NOT LLVM_CODESIGNING_IDENTITY)
- set(LLVM_CODESIGNING_IDENTITY -)
- endif()
-endif()
-
-# LLDBRPCGeneration.cmake needs the LLDB_RPC_GEN_EXE variable
-# which gets defined in the lldb-rpc-gen folder, so we're adding
-# this folder before we add that file.
-add_lldb_tool_subdirectory(lldb-rpc-gen)
-include(${CMAKE_CURRENT_SOURCE_DIR}/LLDBRPCGeneration.cmake)
-include(${CMAKE_CURRENT_SOURCE_DIR}/LLDBRPCHeaders.cmake)
-
-add_dependencies(lldb-rpc lldb-rpc-generate-sources liblldbrpc-headers)
diff --git a/lldb/tools/lldb-rpc/LLDBRPCGeneration.cmake b/lldb/tools/lldb-rpc/LLDBRPCGeneration.cmake
deleted file mode 100644
index e093f150701b3..0000000000000
--- a/lldb/tools/lldb-rpc/LLDBRPCGeneration.cmake
+++ /dev/null
@@ -1,60 +0,0 @@
-if (NOT DEFINED LLDB_RPC_GEN_EXE)
- message(FATAL_ERROR
- "Unable to generate lldb-rpc sources because LLDB_RPC_GEN_EXE is not
- defined. If you are cross-compiling, please build lldb-rpc-gen for your host
- platform.")
-endif()
-set(lldb_rpc_generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
-
-file(GLOB api_headers ${LLDB_SOURCE_DIR}/include/lldb/API/SB*.h)
-# We don't generate SBCommunication
-list(REMOVE_ITEM api_headers ${LLDB_SOURCE_DIR}/include/lldb/API/SBCommunication.h)
-# SBDefines.h is mostly definitions and forward declarations, nothing to
-# generate.
-list(REMOVE_ITEM api_headers ${LLDB_SOURCE_DIR}/include/lldb/API/SBDefines.h)
-
-# Generate the list of byproducts. Note that we cannot just glob the files in
-# the directory with the generated sources because BYPRODUCTS needs to be known
-# at configure time but the files are generated at build time.
-set(lldb_rpc_gen_byproducts
- ${lldb_rpc_generated_dir}/SBClasses.def
- ${lldb_rpc_generated_dir}/SBAPI.def
- ${lldb_rpc_generated_dir}/lldb.py
- ${lldb_rpc_server_generated_source_dir}/SBAPI.h
-)
-
-# Make sure that the clang-resource-dir is set correctly or else the tool will
-# fail to run. This is only needed when we do a standalone build.
-set(clang_resource_dir_arg)
-if (LLDB_BUILT_STANDALONE)
- if (TARGET clang-resource-headers)
- set(clang_resource_headers_dir
- $<TARGET_PROPERTY:clang-resource-headers,INTERFACE_INCLUDE_DIRECTORIES>)
- set(clang_resource_dir_arg --extra-arg="-resource-dir=${clang_resource_headers_dir}/..")
- else()
- set(clang_resource_dir_arg --extra-arg="-resource-dir=${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}")
- endif()
-endif()
-
-add_custom_command(OUTPUT ${lldb_rpc_gen_byproducts}
- COMMAND ${CMAKE_COMMAND} -E make_directory
- ${lldb_rpc_generated_dir}
-
- COMMAND ${LLDB_RPC_GEN_EXE}
- -p ${CMAKE_BINARY_DIR}
- --output-dir=${lldb_rpc_generated_dir}
- ${clang_resource_dir_arg}
- --extra-arg="-USWIG"
- ${api_headers}
-
- DEPENDS ${LLDB_RPC_GEN_EXE} ${api_headers}
- COMMENT "Generating sources for lldb-rpc-server..."
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-)
-
-add_custom_target(lldb-rpc-generate-sources
- DEPENDS
- ${lldb_rpc_gen_byproducts}
- lldb-sbapi-dwarf-enums)
-
-add_dependencies(lldb-rpc-generate-sources clang-resource-headers)
diff --git a/lldb/tools/lldb-rpc/LLDBRPCHeaders.cmake b/lldb/tools/lldb-rpc/LLDBRPCHeaders.cmake
deleted file mode 100644
index 97ad481140248..0000000000000
--- a/lldb/tools/lldb-rpc/LLDBRPCHeaders.cmake
+++ /dev/null
@@ -1,101 +0,0 @@
-set(derived_headers_location "${CMAKE_CURRENT_BINARY_DIR}/DerivedHeaders")
-
-# Obtain the original headers from their staged location in the build directory.
-set(original_headers_location "${CMAKE_BINARY_DIR}/include/lldb")
-set(headers_to_process
- SBDefines.h
- lldb-defines.h
- lldb-enumerations.h
- lldb-types.h
-)
-
-file(MAKE_DIRECTORY ${derived_headers_location})
-
-# Take the original headers and convert them RPC as necessary using the conversion script.
-set(original_headers)
-set(derived_headers)
-foreach(header ${headers_to_process})
- set(original_header "${original_headers_location}/${header}")
-
- get_filename_component(header_filename ${header} NAME)
- string(REPLACE "lldb-" "lldb-rpc-" rpc_header_filename "${header_filename}")
- set(derived_header "${derived_headers_location}/${rpc_header_filename}")
-
- list(APPEND original_headers "${original_header}")
- list(APPEND derived_headers "${derived_header}")
- add_custom_command(OUTPUT ${derived_header}
- COMMAND ${Python3_EXECUTABLE} ${LLDB_SOURCE_DIR}/scripts/convert-lldb-header-to-rpc-header.py
- ${original_header} ${derived_header}
- DEPENDS ${original_header}
-
- COMMENT "Creating ${derived_header}"
- )
-endforeach()
-
-# Do the same thing for any header files that were autogenerated.
-set(generated_headers_to_process
- API/SBLanguages.h
-)
-foreach(header ${generated_headers_to_process})
- set(original_header "${LLDB_OBJ_DIR}/include/lldb/${header}")
-
- get_filename_component(header_filename ${header} NAME)
- string(REPLACE "lldb-" "lldb-rpc-" rpc_header_filename "${header_filename}")
- set(derived_header "${derived_headers_location}/${rpc_header_filename}")
-
- list(APPEND original_headers "${original_header}")
- list(APPEND derived_headers "${derived_header}")
- add_custom_command(OUTPUT ${derived_header}
- COMMAND ${CMAKE_COMMAND} -E copy ${original_header} ${derived_header}
- COMMAND ${Python3_EXECUTABLE} ${LLDB_SOURCE_DIR}/scripts/convert-lldb-header-to-rpc-header.py
- ${original_header} ${derived_header}
- DEPENDS lldb-sbapi-dwarf-enums
-
- COMMENT "Creating ${derived_header}"
- )
-endforeach()
-
-add_custom_target(copy-aux-rpc-headers DEPENDS ${derived_headers})
-add_dependencies(copy-aux-rpc-headers liblldb-header-staging)
-
-list(APPEND public_headers
- ${derived_headers_location}/SBDefines.h
- ${derived_headers_location}/SBLanguages.h
- ${derived_headers_location}/lldb-rpc-enumerations.h
- ${derived_headers_location}/lldb-rpc-types.h
- ${derived_headers_location}/lldb-rpc-defines.h
-)
-
-# Collect and preprocess headers for the framework bundle
-set(version_header
- ${derived_headers_location}/lldb-rpc-defines.h
-)
-
-function(FixIncludePaths in subfolder out)
- get_filename_component(base_name ${in} NAME)
- set(parked_header ${CMAKE_CURRENT_BINARY_DIR}/ParkedHeaders/${subfolder}/${base_name})
- set(${out} ${parked_header} PARENT_SCOPE)
- find_program(unifdef_EXECUTABLE unifdef)
-
- add_custom_command(OUTPUT ${parked_header}
- COMMAND ${LLDB_SOURCE_DIR}/scripts/framework-header-fix.py
- -f lldb_rpc -i ${in} -o ${parked_header} -p ${unifdef_EXECUTABLE} USWIG
- DEPENDS ${in}
- COMMENT "Fixing includes in ${in}"
- )
-endfunction()
-
-set(preprocessed_headers)
-
-# Apply include-paths fix and any version fix on all headers and park them.
-foreach(source_header ${public_headers})
- FixIncludePaths(${source_header} Headers parked_header)
- list(APPEND preprocessed_headers ${parked_header})
-endforeach()
-
-# Wrap header preprocessing in a target, so liblldbrpc can depend on.
-add_custom_target(liblldbrpc-headers DEPENDS ${preprocessed_headers})
-add_dependencies(liblldbrpc-headers copy-aux-rpc-headers liblldb-header-staging)
-set_target_properties(liblldbrpc-headers PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ParkedHeaders
-)
diff --git a/lldb/tools/lldb-rpc/lldb-rpc-gen/CMakeLists.txt b/lldb/tools/lldb-rpc/lldb-rpc-gen/CMakeLists.txt
deleted file mode 100644
index 0a7d80519c564..0000000000000
--- a/lldb/tools/lldb-rpc/lldb-rpc-gen/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-add_lldb_tool(lldb-rpc-gen
- RPCCommon.cpp
- lldb-rpc-gen.cpp
-
- CLANG_LIBS
- clangAST
- clangBasic
- clangCodeGen
- clangFrontend
- clangLex
- clangRewrite
- clangSerialization
- clangTooling
-
- LINK_COMPONENTS
- Support
- )
-
-if (NOT DEFINED LLDB_RPC_GEN_EXE)
- set(LLDB_RPC_GEN_EXE $<TARGET_FILE:lldb-rpc-gen> CACHE STRING "Executable that generates lldb-rpc-server")
-endif()
diff --git a/lldb/tools/lldb-rpc/lldb-rpc-gen/RPCCommon.cpp b/lldb/tools/lldb-rpc/lldb-rpc-gen/RPCCommon.cpp
deleted file mode 100644
index 37831a0cf195c..0000000000000
--- a/lldb/tools/lldb-rpc/lldb-rpc-gen/RPCCommon.cpp
+++ /dev/null
@@ -1,501 +0,0 @@
-//===-- RPCCommon.cpp -----------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "RPCCommon.h"
-
-#include "clang/AST/AST.h"
-#include "clang/AST/Attr.h"
-#include "clang/AST/DeclBase.h"
-#include "clang/AST/Mangle.h"
-#include "clang/Lex/Lexer.h"
-
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/ADT/StringMap.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Support/raw_ostream.h"
-
-#include <cstring>
-
-using namespace clang;
-
-// We intentionally do not generate some classes because they are currently
-// inconvenient, they aren't really used by most consumers, or we're not sure
-// why they exist.
-static constexpr llvm::StringRef DisallowedClasses[] = {
- "SBCommunication", // This class is pretty much unused by consumers, so we
- // skip it.
- "SBInputReader", // This class is pretty much unused by consumers, so we
- // skip it.
- "SBCommandPluginInterface", // This class uses virtual functions, and the SB
- // API should not have those, so we skip this
- // class.
- "SBCommand", // There's nothing too difficult about this one, but many of
- // its methods take a SBCommandPluginInterface pointer so
- // there's no reason to support this.
-};
-
-// NOTE: In lldb-rpc-gen, we use mangled names when we need to work with
-// functions. We do this because we support many functions that have overloads,
-// and mangled names have no ambiguity which makes it easier to keep track of.
-// This is also possible since the LLDB SB API is stable.
-
-// We intentionally avoid generating certain methods either because they are
-// difficult to support correctly or they aren't really used much from C++.
-// NOTE: These methods are marked as deprecated using LLDB_DEPRECATED.
-// Normally this macro defines to the deprecated annotation, but this
-// functionality is removed in SBDefines.h when generating SWIG bindings which
-// we use for testing. Because of this, there is no annotation for the tool to
-// pick up on so this list will be used while we have this restriction in
-// SBDefines.h.
-static constexpr llvm::StringRef DisallowedMethods[] = {
- // The threading functionality in SBHostOS is deprecated and thus we do not
- // generate them. It would be ideal to add the annotations to the methods
- // and then support not generating deprecated methods. However, without
- // annotations the generator generates most things correctly. This one is
- // problematic because it returns a pointer to an "opaque" structure
- // (thread_t) that is not `void *`, so special casing it is more effort than
- // it's worth.
- "_ZN4lldb8SBHostOS10ThreadJoinEP17_opaque_pthread_tPPvPNS_7SBErrorE",
- "_ZN4lldb8SBHostOS12ThreadCancelEP17_opaque_pthread_tPNS_7SBErrorE",
- "_ZN4lldb8SBHostOS12ThreadCreateEPKcPFPvS3_ES3_PNS_7SBErrorE",
- "_ZN4lldb8SBHostOS12ThreadDetachEP17_opaque_pthread_tPNS_7SBErrorE",
- "_ZN4lldb8SBHostOS13ThreadCreatedEPKc",
-};
-
-static constexpr llvm::StringRef ClassesWithoutDefaultCtor[] = {
- "SBHostOS",
- "SBReproducer",
-};
-
-static constexpr llvm::StringRef ClassesWithoutCopyOperations[] = {
- "SBHostOS",
- "SBReproducer",
- "SBStream",
- "SBProgress",
-};
-
-static constexpr llvm::StringRef MethodsWithPointerPlusLen[] = {
- "_ZN4lldb6SBData11ReadRawDataERNS_7SBErrorEyPvm",
- "_ZN4lldb6SBData7SetDataERNS_7SBErrorEPKvmNS_9ByteOrderEh",
- "_ZN4lldb6SBData20SetDataWithOwnershipERNS_7SBErrorEPKvmNS_9ByteOrderEh",
- "_ZN4lldb6SBData25CreateDataFromUInt64ArrayENS_9ByteOrderEjPym",
- "_ZN4lldb6SBData25CreateDataFromUInt32ArrayENS_9ByteOrderEjPjm",
- "_ZN4lldb6SBData25CreateDataFromSInt64ArrayENS_9ByteOrderEjPxm",
- "_ZN4lldb6SBData25CreateDataFromSInt32ArrayENS_9ByteOrderEjPim",
- "_ZN4lldb6SBData25CreateDataFromDoubleArrayENS_9ByteOrderEjPdm",
- "_ZN4lldb6SBData22SetDataFromUInt64ArrayEPym",
- "_ZN4lldb6SBData22SetDataFromUInt32ArrayEPjm",
- "_ZN4lldb6SBData22SetDataFromSInt64ArrayEPxm",
- "_ZN4lldb6SBData22SetDataFromSInt32ArrayEPim",
- "_ZN4lldb6SBData22SetDataFromDoubleArrayEPdm",
- "_ZN4lldb10SBDebugger22GetDefaultArchitectureEPcm",
- "_ZN4lldb10SBDebugger13DispatchInputEPvPKvm",
- "_ZN4lldb10SBDebugger13DispatchInputEPKvm",
- "_ZN4lldb6SBFile4ReadEPhmPm",
- "_ZN4lldb6SBFile5WriteEPKhmPm",
- "_ZNK4lldb10SBFileSpec7GetPathEPcm",
- "_ZN4lldb10SBFileSpec11ResolvePathEPKcPcm",
- "_ZN4lldb8SBModule10GetVersionEPjj",
- "_ZN4lldb12SBModuleSpec12SetUUIDBytesEPKhm",
- "_ZNK4lldb9SBProcess9GetSTDOUTEPcm",
- "_ZNK4lldb9SBProcess9GetSTDERREPcm",
- "_ZNK4lldb9SBProcess19GetAsyncProfileDataEPcm",
- "_ZN4lldb9SBProcess10ReadMemoryEyPvmRNS_7SBErrorE",
- "_ZN4lldb9SBProcess11WriteMemoryEyPKvmRNS_7SBErrorE",
- "_ZN4lldb9SBProcess21ReadCStringFromMemoryEyPvmRNS_7SBErrorE",
- "_ZNK4lldb16SBStructuredData14GetStringValueEPcm",
- "_ZN4lldb8SBTarget23BreakpointCreateByNamesEPPKcjjRKNS_"
- "14SBFileSpecListES6_",
- "_ZN4lldb8SBTarget10ReadMemoryENS_9SBAddressEPvmRNS_7SBErrorE",
- "_ZN4lldb8SBTarget15GetInstructionsENS_9SBAddressEPKvm",
- "_ZN4lldb8SBTarget25GetInstructionsWithFlavorENS_9SBAddressEPKcPKvm",
- "_ZN4lldb8SBTarget15GetInstructionsEyPKvm",
- "_ZN4lldb8SBTarget25GetInstructionsWithFlavorEyPKcPKvm",
- "_ZN4lldb8SBThread18GetStopDescriptionEPcm",
- // The below mangled names are used for dummy methods in shell tests
- // that test the emitters' output. If you're adding any new mangled names
- // from the actual SB API to this list please add them above.
- "_ZN4lldb33SBRPC_"
- "CHECKCONSTCHARPTRPTRWITHLEN27CheckConstCharPtrPtrWithLenEPPKcm",
- "_ZN4lldb19SBRPC_CHECKARRAYPTR13CheckArrayPtrEPPKcm",
- "_ZN4lldb18SBRPC_CHECKVOIDPTR12CheckVoidPtrEPvm",
-};
-
-// These classes inherit from rpc::ObjectRef directly (as opposed to
-// rpc::LocalObjectRef). Changing them from ObjectRef to LocalObjectRef is ABI
-// breaking, so we preserve that compatibility here.
-//
-// lldb-rpc-gen emits classes as LocalObjectRefs by default.
-//
-// FIXME: Does it matter which one it emits by default?
-static constexpr llvm::StringRef ClassesThatInheritFromObjectRef[] = {
- "SBAddress",
- "SBBreakpointName",
- "SBCommandInterpreter",
- "SBCommandReturnObject",
- "SBError",
- "SBExecutionContext",
- "SBExpressionOptions",
- "SBFileSpec",
- "SBFileSpecList",
- "SBFormat",
- "SBFunction",
- "SBHistoricalFrame",
- "SBHistoricalLineEntry",
- "SBHistoricalLineEntryList",
- "SBLineEntry",
- "SBStream",
- "SBStringList",
- "SBStructuredData",
- "SBSymbolContext",
- "SBSymbolContextList",
- "SBTypeMember",
- "SBTypeSummaryOptions",
- "SBValueList",
-};
-
-QualType lldb_rpc_gen::GetUnderlyingType(QualType T) {
- QualType UnderlyingType;
- if (T->isPointerType())
- UnderlyingType = T->getPointeeType();
- else if (T->isReferenceType())
- UnderlyingType = T.getNonReferenceType();
- else
- UnderlyingType = T;
-
- return U...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/146969
More information about the lldb-commits
mailing list