summaryrefslogtreecommitdiff
path: root/lldb/test/Shell/RPC
AgeCommit message (Collapse)Author
2025-07-23 Reland "[lldb][RPC] Upstream lldb-rpc-gen tool" (#146969)" Attempt 2 (#148996)Chelsea Cassanova
Second attempt at relanding the lldb-rpc-gen tool. This should fix 2 issues: - An assert that was hitting when building on Linux. The assert would hit in the server source emitter, specifically when attemping to determine the storage size for a return type is that is a pointer, but isn't a const char *, const char ** or void pointer. The assert would hit when attempting to generate SBAttachInfo::GetProcessPluginName, which returns a const char * (meaning it shouldn't have been in the code block for the assert at all). The reason that it was hitting the assert when generating this function is that lldb_rpc_gen::TypeIsConstCharPtr was returning false for this function even though it did return a const char *. This was happening because when checking the return type for a const char *, TypeIsConstCharPtr would only check that the underlying type was a signed char. This failed on Linux (but was fine on Darwin), as the underlying type also needs to be checked for being an unsigned char. - Cross compiling support The build for lldb-rpc-gen had no support for cross compiling and as such, the sources generated for lldb-rpc-gen would get compiled too early in phase 2 when cross compiling, before the Clang toolchain was built and this led to an error when trying to include stdlib files. This reland splits this build into 2 by building the tool first and then compiling the sources in the second stage of the cross-compiled build. Original PR Description: This commit upstreams the lldb-rpc-gen tool, a ClangTool that generates the LLDB RPC client and server interfaces. This tool, as well as LLDB RPC itself is built by default. If it needs to be disabled, put -DLLDB_BUILD_LLDBRPC=OFF in your CMake invocation. https://discourse.llvm.org/t/rfc-upstreaming-lldb-rpc/85804 Original PR Link: github.com/llvm/llvm-project/pull/138031
2025-07-09Revert "Reland "[lldb][RPC] Upstream lldb-rpc-gen tool" (#146969)" (#147779)Chelsea Cassanova
Reverts llvm/llvm-project#147417. Failing an assert: `lldb-rpc-gen: ../llvm-project/lldb/tools/lldb-rpc/lldb-rpc-gen/server/RPCServerSourceEmitter.cpp:361: void lldb_rpc_gen::RPCServerSourceEmitter::EmitMethodCallAndEncode(const Method &): Assertion `Pos != MethodsWithPointerReturnTypes.end() && "Unable to determine the size of the return buffer"' failed.`
2025-07-09Reland "[lldb][RPC] Upstream lldb-rpc-gen tool" (#146969) (#147417)Chelsea Cassanova
Relands the commit to upstream the lldb-rpc-gen tool in order to fix a build failure on the linux remote bots. The reland adds the Clang resource dir unconditionally to the invocation for the tool instead of only adding it in the event that we're using a standalone build. Original PR description: This commit upstreams the lldb-rpc-gen tool, a ClangTool that generates the LLDB RPC client and server interfaces. This tool, as well as LLDB RPC itself is built by default. If it needs to be disabled, put -DLLDB_BUILD_LLDBRPC=OFF in your CMake invocation. https://discourse.llvm.org/t/rfc-upstreaming-lldb-rpc/85804 Original PR Link: https://github.com/llvm/llvm-project/pull/138031
2025-07-07[lldb][RPC] Upstream RPC server interface emitters (#138032)Chelsea Cassanova
This commit upstreams the LLDB RPC server interface emitters. These emitters generate the server-side API interfaces for RPC, which communicate directly with liblldb itself out of process using the SB API. https://discourse.llvm.org/t/rfc-upstreaming-lldb-rpc/85804
2025-07-03Revert "[lldb][RPC] Upstream lldb-rpc-gen tool" (#146969)Chelsea Cassanova
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> | ^~~~~~~~~ ```
2025-07-03[lldb][RPC] Upstream lldb-rpc-gen tool (#138031)Chelsea Cassanova
This commit upstreams the `lldb-rpc-gen` tool, a ClangTool that generates the LLDB RPC client and server interfaces. This tool, as well as LLDB RPC itself is built by default. If it needs to be disabled, put -DLLDB_BUILD_LLDBRPC=OFF in your CMake invocation. https://discourse.llvm.org/t/rfc-upstreaming-lldb-rpc/85804
2025-06-23[lldb][rpc] Fix bug in convert script for RPC (#145419)Chelsea Cassanova
In the script that's used by RPC to convert LLDB headers to LLDB RPC headers, there's a bug with how it converts namespace usage. An overeager regex pattern caused *all* text before any `lldb::` namespace usage to get replaced with `lldb_rpc::` instead of just the namespace itself. This commit changes that regex pattern to be less overeager and modifies one of the shell tests for this script to actually check that the namespace usage replacement is working correctly. rdar://154126268
2025-06-11[lldb][RPC] Upstream LLDB to RPC converstion Python script (#138028)Chelsea Cassanova
As part of upstreaming LLDB RPC, this commit adds a python script that is used by LLDB RPC to modify the public lldb header files for use with RPC. https://discourse.llvm.org/t/rfc-upstreaming-lldb-rpc/85804