[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen updated https://github.com/llvm/llvm-project/pull/137448 >From d0d8c7e24fd7ee37f4a3678537df1e28c8318d04 Mon Sep 17 00:00:00 2001 From: Ely Ronnen Date: Sat, 26 Apr 2025 10:25:21 +0200 Subject: [PATCH 1/4] adding breakpoints protocol types --- lldb/tools/lldb-dap/Protocol/ProtocolTypes.h | 178 +++ llvm/include/llvm/Support/JSON.h | 8 + 2 files changed, 186 insertions(+) diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h index 54941f24efbd9..8b193287acc19 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h @@ -322,6 +322,184 @@ enum SteppingGranularity : unsigned { bool fromJSON(const llvm::json::Value &, SteppingGranularity &, llvm::json::Path); +/// Information about a breakpoint created in `setBreakpoints`, `setFunctionBreakpoints`, `setInstructionBreakpoints`, or `setDataBreakpoints` requests. +struct Breakpoint { + /// A machine-readable explanation of why a breakpoint may not be verified. + enum class Reason : unsigned { +/// Indicates a breakpoint might be verified in the future, but +/// the adapter cannot verify it in the current state. +eBreakpointReasonPending, +/// Indicates a breakpoint was not able to be verified, and the +/// adapter does not believe it can be verified without intervention. +eBreakpointReasonFailed, + }; + + /// The identifier for the breakpoint. It is needed if breakpoint events are + /// used to update or remove breakpoints. + std::optional id; + + /// If true, the breakpoint could be set (but not necessarily at the desired + /// location). + bool verified; + + /// A message about the state of the breakpoint. + /// This is shown to the user and can be used to explain why a breakpoint could + /// not be verified. + std::optional message; + + /// The source where the breakpoint is located. + std::optional source; + + /// The start line of the actual range covered by the breakpoint. + std::optional line; + + /// Start position of the source range covered by the breakpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The end line of the actual range covered by the breakpoint. + std::optional endLine; + + /// End position of the source range covered by the breakpoint. It is measured + /// in UTF-16 code units and the client capability `columnsStartAt1` determines + /// whether it is 0- or 1-based. + /// If no end line is given, then the end column is assumed to be in the start + /// line. + std::optional endColumn; + + /// A memory reference to where the breakpoint is set. + std::optional instructionReference; + + /// The offset from the instruction reference. + /// This can be negative. + std::optional offset; + + /// A machine-readable explanation of why a breakpoint may not be verified. If + /// a breakpoint is verified or a specific reason is not known, the adapter + /// should omit this property. + std::optional reason; +}; +llvm::json::Value toJSON(const Breakpoint &); + +/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` request +struct SourceBreakpoint { + /// The source line of the breakpoint or logpoint. + uint32_t line; + + /// Start position within source line of the breakpoint or logpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The expression for conditional breakpoints. + /// It is only honored by a debug adapter if the corresponding capability + /// `supportsConditionalBreakpoints` is true. + std::optional condition; + + /// The expression that controls how many hits of the breakpoint are ignored. + /// The debug adapter is expected to interpret the expression as needed. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsHitConditionalBreakpoints` is true. + /// If both this property and `condition` are specified, `hitCondition` should + /// be evaluated only if the `condition` is met, and the debug adapter should + /// stop only if both conditions are met. + std::optional hitCondition; + + /// If this attribute exists and is non-empty, the debug adapter must not + /// 'break' (stop) + /// but log the message instead. Expressions within `{}` are interpolated. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsLogPoints` is true. + /// If either `hitCondition` or `condition` is specified, then the message + /// should only be logged if those conditions are met. + std::optional logMessage; + + /// The mode of this breakpoint. If defined, this must be one of the + /// `breakpointModes` the debug adapter advertised i
[Lldb-commits] [lldb] [llvm] [lldb] Add new per-language frame-format variables for formatting function names (PR #131836)
slydiman wrote: https://github.com/llvm/llvm-project/commit/e6f7e3418eb8519d6cf12da8576ad75aac6b307b broke [lldb-remote-linux-win](https://lab.llvm.org/buildbot/#/builders/197/builds/4542) again. Note the special case Windows host and non-Windows target. Note the buildbot cannot report the problem because the issue/PR is missing in the commit message. https://github.com/llvm/llvm-project/pull/131836 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb] Add new per-language frame-format variables for formatting function names (PR #131836)
Michael137 wrote: > https://github.com/llvm/llvm-project/commit/e6f7e3418eb8519d6cf12da8576ad75aac6b307b > broke > [lldb-remote-linux-win](https://lab.llvm.org/buildbot/#/builders/197/builds/4542) > again. > > Note the special case Windows host and non-Windows target. > > Note the buildbot cannot report the problem because the issue/PR is missing > in the commit message. Yea i saw that. Will need to not generate PDB in those tests i guess https://github.com/llvm/llvm-project/pull/131836 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen edited https://github.com/llvm/llvm-project/pull/137448 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff HEAD~1 HEAD --extensions h -- lldb/tools/lldb-dap/Protocol/ProtocolRequests.h lldb/tools/lldb-dap/Protocol/ProtocolTypes.h llvm/include/llvm/Support/JSON.h `` View the diff from clang-format here. ``diff diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.h b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.h index ae515bd18..b1a395ec4 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.h @@ -398,9 +398,9 @@ bool fromJSON(const llvm::json::Value &, SetBreakpointsArguments &, /// Response to `setBreakpoints` request. /// Returned is information about each breakpoint created by this request. -/// This includes the actual code location and whether the breakpoint could be verified. -/// The breakpoints returned are in the same order as the elements of the breakpoints -/// (or the deprecated lines) array in the arguments. +/// This includes the actual code location and whether the breakpoint could be +/// verified. The breakpoints returned are in the same order as the elements of +/// the breakpoints (or the deprecated lines) array in the arguments. struct SetBreakpointsResponseBody { /// Information about the breakpoints. /// The array elements are in the same order as the elements of the diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h index f10adbac9..fd49de99a 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h @@ -322,7 +322,9 @@ enum SteppingGranularity : unsigned { bool fromJSON(const llvm::json::Value &, SteppingGranularity &, llvm::json::Path); -/// Information about a breakpoint created in `setBreakpoints`, `setFunctionBreakpoints`, `setInstructionBreakpoints`, or `setDataBreakpoints` requests. +/// Information about a breakpoint created in `setBreakpoints`, +/// `setFunctionBreakpoints`, `setInstructionBreakpoints`, or +/// `setDataBreakpoints` requests. struct Breakpoint { /// A machine-readable explanation of why a breakpoint may not be verified. enum class Reason : unsigned { @@ -343,8 +345,8 @@ struct Breakpoint { bool verified; /// A message about the state of the breakpoint. - /// This is shown to the user and can be used to explain why a breakpoint could - /// not be verified. + /// This is shown to the user and can be used to explain why a breakpoint + /// could not be verified. std::optional message; /// The source where the breakpoint is located. @@ -362,10 +364,9 @@ struct Breakpoint { std::optional endLine; /// End position of the source range covered by the breakpoint. It is measured - /// in UTF-16 code units and the client capability `columnsStartAt1` determines - /// whether it is 0- or 1-based. - /// If no end line is given, then the end column is assumed to be in the start - /// line. + /// in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. If no end line is given, then the + /// end column is assumed to be in the start line. std::optional endColumn; /// A memory reference to where the breakpoint is set. @@ -382,7 +383,8 @@ struct Breakpoint { }; llvm::json::Value toJSON(const Breakpoint &); -/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` request +/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` +/// request struct SourceBreakpoint { /// The source line of the breakpoint or logpoint. uint32_t line; @@ -419,8 +421,7 @@ struct SourceBreakpoint { /// `breakpointModes` the debug adapter advertised in its `Capabilities`. std::optional mode; }; -bool fromJSON(const llvm::json::Value &, SourceBreakpoint &, - llvm::json::Path); +bool fromJSON(const llvm::json::Value &, SourceBreakpoint &, llvm::json::Path); /// Properties of a breakpoint passed to the `setFunctionBreakpoints` request. struct FunctionBreakpoint { @@ -441,7 +442,8 @@ struct FunctionBreakpoint { bool fromJSON(const llvm::json::Value &, FunctionBreakpoint &, llvm::json::Path); -/// This enumeration defines all possible access types for data breakpoints. Values: ‘read’, ‘write’, ‘readWrite’ +/// This enumeration defines all possible access types for data breakpoints. +/// Values: ‘read’, ‘write’, ‘readWrite’ enum DataBreakpointAccessType : unsigned { eDataBreakpointAccessTypeRead, eDataBreakpointAccessTypeWrite, @@ -499,7 +501,8 @@ struct InstructionBreakpoint { bool fromJSON(const llvm::json::Value &, InstructionBreakpoint &, llvm::json::Path); -/// An ExceptionFilterOptions is used to specify an exception filter together with a condition for
[Lldb-commits] [lldb] [llvm] Lldb dap migrate set breakpoint requests (PR #137448)
https://github.com/eronnen created https://github.com/llvm/llvm-project/pull/137448 None >From d0d8c7e24fd7ee37f4a3678537df1e28c8318d04 Mon Sep 17 00:00:00 2001 From: Ely Ronnen Date: Sat, 26 Apr 2025 10:25:21 +0200 Subject: [PATCH 1/2] adding breakpoints protocol types --- lldb/tools/lldb-dap/Protocol/ProtocolTypes.h | 178 +++ llvm/include/llvm/Support/JSON.h | 8 + 2 files changed, 186 insertions(+) diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h index 54941f24efbd9..8b193287acc19 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h @@ -322,6 +322,184 @@ enum SteppingGranularity : unsigned { bool fromJSON(const llvm::json::Value &, SteppingGranularity &, llvm::json::Path); +/// Information about a breakpoint created in `setBreakpoints`, `setFunctionBreakpoints`, `setInstructionBreakpoints`, or `setDataBreakpoints` requests. +struct Breakpoint { + /// A machine-readable explanation of why a breakpoint may not be verified. + enum class Reason : unsigned { +/// Indicates a breakpoint might be verified in the future, but +/// the adapter cannot verify it in the current state. +eBreakpointReasonPending, +/// Indicates a breakpoint was not able to be verified, and the +/// adapter does not believe it can be verified without intervention. +eBreakpointReasonFailed, + }; + + /// The identifier for the breakpoint. It is needed if breakpoint events are + /// used to update or remove breakpoints. + std::optional id; + + /// If true, the breakpoint could be set (but not necessarily at the desired + /// location). + bool verified; + + /// A message about the state of the breakpoint. + /// This is shown to the user and can be used to explain why a breakpoint could + /// not be verified. + std::optional message; + + /// The source where the breakpoint is located. + std::optional source; + + /// The start line of the actual range covered by the breakpoint. + std::optional line; + + /// Start position of the source range covered by the breakpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The end line of the actual range covered by the breakpoint. + std::optional endLine; + + /// End position of the source range covered by the breakpoint. It is measured + /// in UTF-16 code units and the client capability `columnsStartAt1` determines + /// whether it is 0- or 1-based. + /// If no end line is given, then the end column is assumed to be in the start + /// line. + std::optional endColumn; + + /// A memory reference to where the breakpoint is set. + std::optional instructionReference; + + /// The offset from the instruction reference. + /// This can be negative. + std::optional offset; + + /// A machine-readable explanation of why a breakpoint may not be verified. If + /// a breakpoint is verified or a specific reason is not known, the adapter + /// should omit this property. + std::optional reason; +}; +llvm::json::Value toJSON(const Breakpoint &); + +/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` request +struct SourceBreakpoint { + /// The source line of the breakpoint or logpoint. + uint32_t line; + + /// Start position within source line of the breakpoint or logpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The expression for conditional breakpoints. + /// It is only honored by a debug adapter if the corresponding capability + /// `supportsConditionalBreakpoints` is true. + std::optional condition; + + /// The expression that controls how many hits of the breakpoint are ignored. + /// The debug adapter is expected to interpret the expression as needed. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsHitConditionalBreakpoints` is true. + /// If both this property and `condition` are specified, `hitCondition` should + /// be evaluated only if the `condition` is met, and the debug adapter should + /// stop only if both conditions are met. + std::optional hitCondition; + + /// If this attribute exists and is non-empty, the debug adapter must not + /// 'break' (stop) + /// but log the message instead. Expressions within `{}` are interpolated. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsLogPoints` is true. + /// If either `hitCondition` or `condition` is specified, then the message + /// should only be logged if those conditions are met. + std::optional logMessage; + + /// The mode of this breakpoint. If defined, this must be one of the + /// `breakpointModes` the debug adapter advert
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen edited https://github.com/llvm/llvm-project/pull/137448 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb] Add new per-language frame-format variables for formatting function names (PR #131836)
dzhidzhoev wrote: > > [e6f7e34](https://github.com/llvm/llvm-project/commit/e6f7e3418eb8519d6cf12da8576ad75aac6b307b) > > broke > > [lldb-remote-linux-win](https://lab.llvm.org/buildbot/#/builders/197/builds/4542) > > again. > > Note the special case Windows host and non-Windows target. > > Note the buildbot cannot report the problem because the issue/PR is missing > > in the commit message. > > Yea i saw that. Will need to not generate PDB in those tests i guess `XFAIL: target-windows` may also help, I guess. https://github.com/llvm/llvm-project/pull/131836 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb-dap] Make lldb-dap.executable-path machine specific (PR #137485)
https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/137485 Change the scope [1] of lldb-dap.executable-path to "machine-overridable": > Machine specific settings that can be overridden by workspace or > folder settings. Practically speaking, this means that the path won't be synced across machines and "(Not synced)" will show up next to the setting. I believe it doesn't make sense to sync this setting (and I remember a bug report where this caused trouble when using VS Code remotely), plus it matches what clangd does for its corresponding setting. [1] https://code.visualstudio.com/api/references/contribution-points#Configuration-property-schema >From ad5a6c59685f1c298455e0384391823dfe2d49ff Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Sat, 26 Apr 2025 19:31:27 -0700 Subject: [PATCH] [lldb-dap] Make lldb-dap.executable-path machine specific Change the scope [1] of lldb-dap.executable-path to "machine-overridable": > Machine specific settings that can be overridden by workspace or > folder settings. Practically speaking, this means that the path won't be synced across machines and "(Not synced)" will show up next to the setting. I believe it doesn't make sense to sync this setting (and I remember a bug report where this caused trouble when using VS Code remotely), plus it matches what clangd does for its corresponding setting. [1] https://code.visualstudio.com/api/references/contribution-points#Configuration-property-schema --- lldb/tools/lldb-dap/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/tools/lldb-dap/package.json b/lldb/tools/lldb-dap/package.json index 3957e3f27f297..c25d5033d09f1 100644 --- a/lldb/tools/lldb-dap/package.json +++ b/lldb/tools/lldb-dap/package.json @@ -74,7 +74,8 @@ "lldb-dap.executable-path": { "scope": "resource", "type": "string", - "description": "The path to the lldb-dap binary." + "scope": "machine-overridable", + "description": "The path to the lldb-dap binary, e.g. /usr/local/bin/lldb-dap" }, "lldb-dap.arguments": { "scope": "resource", ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb-dap] Make lldb-dap.executable-path machine specific (PR #137485)
llvmbot wrote: @llvm/pr-subscribers-lldb Author: Jonas Devlieghere (JDevlieghere) Changes Change the scope [1] of lldb-dap.executable-path to "machine-overridable": > Machine specific settings that can be overridden by workspace or > folder settings. Practically speaking, this means that the path won't be synced across machines and "(Not synced)" will show up next to the setting. I believe it doesn't make sense to sync this setting (and I remember a bug report where this caused trouble when using VS Code remotely), plus it matches what clangd does for its corresponding setting. [1] https://code.visualstudio.com/api/references/contribution-points#Configuration-property-schema --- Full diff: https://github.com/llvm/llvm-project/pull/137485.diff 1 Files Affected: - (modified) lldb/tools/lldb-dap/package.json (+2-1) ``diff diff --git a/lldb/tools/lldb-dap/package.json b/lldb/tools/lldb-dap/package.json index 3957e3f27f297..c25d5033d09f1 100644 --- a/lldb/tools/lldb-dap/package.json +++ b/lldb/tools/lldb-dap/package.json @@ -74,7 +74,8 @@ "lldb-dap.executable-path": { "scope": "resource", "type": "string", - "description": "The path to the lldb-dap binary." + "scope": "machine-overridable", + "description": "The path to the lldb-dap binary, e.g. /usr/local/bin/lldb-dap" }, "lldb-dap.arguments": { "scope": "resource", `` https://github.com/llvm/llvm-project/pull/137485 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb-dap] Make lldb-dap.executable-path machine specific (PR #137485)
https://github.com/JDevlieghere edited https://github.com/llvm/llvm-project/pull/137485 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb-dap] Make lldb-dap.executable-path machine specific (PR #137485)
JDevlieghere wrote: Here's what this looks like in the UI: https://github.com/user-attachments/assets/9a790028-03a0-42ca-91ce-177360a1660a"; /> https://github.com/llvm/llvm-project/pull/137485 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] e6f7e34 - [lldb][test] Fix/XFAIL FrameFormat tests on Windows
Author: Michael Buch Date: 2025-04-26T08:56:16+01:00 New Revision: e6f7e3418eb8519d6cf12da8576ad75aac6b307b URL: https://github.com/llvm/llvm-project/commit/e6f7e3418eb8519d6cf12da8576ad75aac6b307b DIFF: https://github.com/llvm/llvm-project/commit/e6f7e3418eb8519d6cf12da8576ad75aac6b307b.diff LOG: [lldb][test] Fix/XFAIL FrameFormat tests on Windows All of these were failing on Windows CI. Some are failing because breakpoints on template functions can't be set by name. Others are failing because of slight textual differences. Most are failing because we can't track components of a mangled name from PDB, so XFAIL those. Added: Modified: lldb/test/Shell/Settings/TestCxxFrameFormat.test lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test Removed: diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormat.test b/lldb/test/Shell/Settings/TestCxxFrameFormat.test index c26d339f57130..babb14bed4440 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormat.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormat.test @@ -1,3 +1,5 @@ +# XFAIL: system-windows + # Test the plugin.cplusplus.display.function-name-format setting. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test b/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test index 73564ae41837b..0ae48d4eb541e 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test @@ -20,7 +20,7 @@ int main(int argc, const char *argv[]) { #--- commands.input settings set plugin.cplusplus.display.function-name-format "${function.basename}${script.target:invalid_func}" settings set -f frame-format "custom-frame '${function.name-with-args}'\n" -break set -n gunc +break set -l 2 run bt diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test index 249a5fac5b55e..ae405be44578d 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test @@ -1,3 +1,5 @@ +# XFAIL: system-windows + # Test the ${function.basename} frame-format variable. # RUN: split-file %s %t @@ -36,7 +38,7 @@ int main() { #--- commands.input settings set -f frame-format "custom-frame '${function.basename}'\n" -break set -n bar +break set -l 5 run bt diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test index 5554830d3a247..31602c83b17c9 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test @@ -37,6 +37,6 @@ bt # CHECK: custom-frame '(this={{.*}})' # CHECK: custom-frame '()' -# CHECK: custom-frame '((null)=5, x=10)' -# CHECK: custom-frame '(str="hello", fptr=({{.*}}.out`foo(int, int) at main.cpp:{{[0-9]+}}))' +# CHECK: custom-frame '({{.*}}=5, x=10)' +# CHECK: custom-frame '(str="hello", fptr=({{.*}}.out`{{.*}}foo(int,{{.*}}int) at main.cpp:{{[0-9]+}}))' # CHECK: custom-frame '(argc=1, argv={{.*}})' diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test index 95a3be3811d85..3848f7d527f6b 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test @@ -1,3 +1,5 @@ +# XFAIL: system-windows + # Test the ${function.qualifiers} frame-format variable. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test index a5e49a1054c86..f06753157d2c7 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test @@ -1,3 +1,5 @@ +# XFAIL: system-windows + # Test the ${function.return-left} and ${function.return-right} # frame-format variables. diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test index 28f0ab7ca39e3..a5da652372dbc 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test @@ -1,3 +1,5 @@ +# XFAIL: system-windows + # Test the
[Lldb-commits] [lldb] [lldb/Format] Make progress count show thousands separators (NFC) (PR #137446)
https://github.com/JDevlieghere approved this pull request. LGTM! https://github.com/llvm/llvm-project/pull/137446 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen edited https://github.com/llvm/llvm-project/pull/137448 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen updated https://github.com/llvm/llvm-project/pull/137448 >From d0d8c7e24fd7ee37f4a3678537df1e28c8318d04 Mon Sep 17 00:00:00 2001 From: Ely Ronnen Date: Sat, 26 Apr 2025 10:25:21 +0200 Subject: [PATCH 1/6] adding breakpoints protocol types --- lldb/tools/lldb-dap/Protocol/ProtocolTypes.h | 178 +++ llvm/include/llvm/Support/JSON.h | 8 + 2 files changed, 186 insertions(+) diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h index 54941f24efbd9..8b193287acc19 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h @@ -322,6 +322,184 @@ enum SteppingGranularity : unsigned { bool fromJSON(const llvm::json::Value &, SteppingGranularity &, llvm::json::Path); +/// Information about a breakpoint created in `setBreakpoints`, `setFunctionBreakpoints`, `setInstructionBreakpoints`, or `setDataBreakpoints` requests. +struct Breakpoint { + /// A machine-readable explanation of why a breakpoint may not be verified. + enum class Reason : unsigned { +/// Indicates a breakpoint might be verified in the future, but +/// the adapter cannot verify it in the current state. +eBreakpointReasonPending, +/// Indicates a breakpoint was not able to be verified, and the +/// adapter does not believe it can be verified without intervention. +eBreakpointReasonFailed, + }; + + /// The identifier for the breakpoint. It is needed if breakpoint events are + /// used to update or remove breakpoints. + std::optional id; + + /// If true, the breakpoint could be set (but not necessarily at the desired + /// location). + bool verified; + + /// A message about the state of the breakpoint. + /// This is shown to the user and can be used to explain why a breakpoint could + /// not be verified. + std::optional message; + + /// The source where the breakpoint is located. + std::optional source; + + /// The start line of the actual range covered by the breakpoint. + std::optional line; + + /// Start position of the source range covered by the breakpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The end line of the actual range covered by the breakpoint. + std::optional endLine; + + /// End position of the source range covered by the breakpoint. It is measured + /// in UTF-16 code units and the client capability `columnsStartAt1` determines + /// whether it is 0- or 1-based. + /// If no end line is given, then the end column is assumed to be in the start + /// line. + std::optional endColumn; + + /// A memory reference to where the breakpoint is set. + std::optional instructionReference; + + /// The offset from the instruction reference. + /// This can be negative. + std::optional offset; + + /// A machine-readable explanation of why a breakpoint may not be verified. If + /// a breakpoint is verified or a specific reason is not known, the adapter + /// should omit this property. + std::optional reason; +}; +llvm::json::Value toJSON(const Breakpoint &); + +/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` request +struct SourceBreakpoint { + /// The source line of the breakpoint or logpoint. + uint32_t line; + + /// Start position within source line of the breakpoint or logpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The expression for conditional breakpoints. + /// It is only honored by a debug adapter if the corresponding capability + /// `supportsConditionalBreakpoints` is true. + std::optional condition; + + /// The expression that controls how many hits of the breakpoint are ignored. + /// The debug adapter is expected to interpret the expression as needed. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsHitConditionalBreakpoints` is true. + /// If both this property and `condition` are specified, `hitCondition` should + /// be evaluated only if the `condition` is met, and the debug adapter should + /// stop only if both conditions are met. + std::optional hitCondition; + + /// If this attribute exists and is non-empty, the debug adapter must not + /// 'break' (stop) + /// but log the message instead. Expressions within `{}` are interpolated. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsLogPoints` is true. + /// If either `hitCondition` or `condition` is specified, then the message + /// should only be logged if those conditions are met. + std::optional logMessage; + + /// The mode of this breakpoint. If defined, this must be one of the + /// `breakpointModes` the debug adapter advertised i
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen updated https://github.com/llvm/llvm-project/pull/137448 >From d0d8c7e24fd7ee37f4a3678537df1e28c8318d04 Mon Sep 17 00:00:00 2001 From: Ely Ronnen Date: Sat, 26 Apr 2025 10:25:21 +0200 Subject: [PATCH 1/6] adding breakpoints protocol types --- lldb/tools/lldb-dap/Protocol/ProtocolTypes.h | 178 +++ llvm/include/llvm/Support/JSON.h | 8 + 2 files changed, 186 insertions(+) diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h index 54941f24efbd9..8b193287acc19 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.h @@ -322,6 +322,184 @@ enum SteppingGranularity : unsigned { bool fromJSON(const llvm::json::Value &, SteppingGranularity &, llvm::json::Path); +/// Information about a breakpoint created in `setBreakpoints`, `setFunctionBreakpoints`, `setInstructionBreakpoints`, or `setDataBreakpoints` requests. +struct Breakpoint { + /// A machine-readable explanation of why a breakpoint may not be verified. + enum class Reason : unsigned { +/// Indicates a breakpoint might be verified in the future, but +/// the adapter cannot verify it in the current state. +eBreakpointReasonPending, +/// Indicates a breakpoint was not able to be verified, and the +/// adapter does not believe it can be verified without intervention. +eBreakpointReasonFailed, + }; + + /// The identifier for the breakpoint. It is needed if breakpoint events are + /// used to update or remove breakpoints. + std::optional id; + + /// If true, the breakpoint could be set (but not necessarily at the desired + /// location). + bool verified; + + /// A message about the state of the breakpoint. + /// This is shown to the user and can be used to explain why a breakpoint could + /// not be verified. + std::optional message; + + /// The source where the breakpoint is located. + std::optional source; + + /// The start line of the actual range covered by the breakpoint. + std::optional line; + + /// Start position of the source range covered by the breakpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The end line of the actual range covered by the breakpoint. + std::optional endLine; + + /// End position of the source range covered by the breakpoint. It is measured + /// in UTF-16 code units and the client capability `columnsStartAt1` determines + /// whether it is 0- or 1-based. + /// If no end line is given, then the end column is assumed to be in the start + /// line. + std::optional endColumn; + + /// A memory reference to where the breakpoint is set. + std::optional instructionReference; + + /// The offset from the instruction reference. + /// This can be negative. + std::optional offset; + + /// A machine-readable explanation of why a breakpoint may not be verified. If + /// a breakpoint is verified or a specific reason is not known, the adapter + /// should omit this property. + std::optional reason; +}; +llvm::json::Value toJSON(const Breakpoint &); + +/// Properties of a breakpoint or logpoint passed to the `setBreakpoints` request +struct SourceBreakpoint { + /// The source line of the breakpoint or logpoint. + uint32_t line; + + /// Start position within source line of the breakpoint or logpoint. It is + /// measured in UTF-16 code units and the client capability `columnsStartAt1` + /// determines whether it is 0- or 1-based. + std::optional column; + + /// The expression for conditional breakpoints. + /// It is only honored by a debug adapter if the corresponding capability + /// `supportsConditionalBreakpoints` is true. + std::optional condition; + + /// The expression that controls how many hits of the breakpoint are ignored. + /// The debug adapter is expected to interpret the expression as needed. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsHitConditionalBreakpoints` is true. + /// If both this property and `condition` are specified, `hitCondition` should + /// be evaluated only if the `condition` is met, and the debug adapter should + /// stop only if both conditions are met. + std::optional hitCondition; + + /// If this attribute exists and is non-empty, the debug adapter must not + /// 'break' (stop) + /// but log the message instead. Expressions within `{}` are interpolated. + /// The attribute is only honored by a debug adapter if the corresponding + /// capability `supportsLogPoints` is true. + /// If either `hitCondition` or `condition` is specified, then the message + /// should only be logged if those conditions are met. + std::optional logMessage; + + /// The mode of this breakpoint. If defined, this must be one of the + /// `breakpointModes` the debug adapter advertised i
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen edited https://github.com/llvm/llvm-project/pull/137448 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] 8a5bc9e - [lldb][test] Un-XFAIL TestCxxFrameFormat.test for now
Author: Michael Buch Date: 2025-04-26T13:04:23+01:00 New Revision: 8a5bc9e340f88d2651fe743d6b7a820ecd839516 URL: https://github.com/llvm/llvm-project/commit/8a5bc9e340f88d2651fe743d6b7a820ecd839516 DIFF: https://github.com/llvm/llvm-project/commit/8a5bc9e340f88d2651fe743d6b7a820ecd839516.diff LOG: [lldb][test] Un-XFAIL TestCxxFrameFormat.test for now This was XPASSing on the linux-win remote CI jobs. Since we're now compiling with DWARF (not PDB), lets see if these pass on Windows again. Added: Modified: lldb/test/Shell/Settings/TestCxxFrameFormat.test Removed: diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormat.test b/lldb/test/Shell/Settings/TestCxxFrameFormat.test index 3751dfa737eae..d2d89b7014511 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormat.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormat.test @@ -1,5 +1,3 @@ -# XFAIL: system-windows - # Test the plugin.cplusplus.display.function-name-format setting. # RUN: split-file %s %t ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] 28293ea - [lldb][test] XFAIL FrameFormat tests on Windows again
Author: Michael Buch Date: 2025-04-26T13:23:47+01:00 New Revision: 28293ea023c1aeeed3bff0e2d06feacc9bc365cd URL: https://github.com/llvm/llvm-project/commit/28293ea023c1aeeed3bff0e2d06feacc9bc365cd DIFF: https://github.com/llvm/llvm-project/commit/28293ea023c1aeeed3bff0e2d06feacc9bc365cd.diff LOG: [lldb][test] XFAIL FrameFormat tests on Windows again These are failing for various reasons on CI, most likely due to us requiring the Microsoft mangler. So XFAIL these. Added: Modified: lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test Removed: diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test b/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test index 249c25bab0f47..f10de878b8d88 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test that the plugin.cplusplus.display.function-name-format setting # doesn't print into the frame-format setting unless all its format variables # were successful. diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test index 32e6dcec43ce6..a2cb1c6adf064 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the ${function.basename} frame-format variable. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test index 2a7860fbf0e24..c4c9062b640f1 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the ${function.formatted-arguments} frame-format variable. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test index c53023732afcf..c4b74b7d7defa 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the ${function.qualifiers} frame-format variable. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test index 55ebcbfa8812c..ce970d4d24d86 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the ${function.return-left} and ${function.return-right} # frame-format variables. diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test index d59e154dafafd..d98893aa5e8b4 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the ${function.scope} frame-format variable. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test index d71d98765a012..f0c29bcee2ce5 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the ${function.template-arguments} frame-format variable. # RUN: split-file %s %t ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb][Format] Make function name frame-format variables work without debug-info (PR #137408)
https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/137408 >From db417e84e944ee80f045414a4ce0f83a3e423e45 Mon Sep 17 00:00:00 2001 From: Michael Buch Date: Fri, 25 Apr 2025 22:49:36 +0100 Subject: [PATCH] [lldb][CPlusPLus] Make C++ frame-format work without debug-info --- lldb/source/Core/FormatEntity.cpp | 9 +++-- .../Language/CPlusPlus/CPlusPlusLanguage.cpp | 38 ++- .../TestFrameFormatFunctionBasename.test | 4 ++ ...FrameFormatFunctionFormattedArguments.test | 9 + .../TestFrameFormatFunctionQualifiers.test| 4 ++ .../TestFrameFormatFunctionReturn.test| 4 ++ .../TestFrameFormatFunctionScope.test | 7 +++- ...tFrameFormatFunctionTemplateArguments.test | 8 +++- 8 files changed, 73 insertions(+), 10 deletions(-) diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp index e352d07fe487d..4ac50e2d30f3c 100644 --- a/lldb/source/Core/FormatEntity.cpp +++ b/lldb/source/Core/FormatEntity.cpp @@ -1809,11 +1809,12 @@ bool FormatEntity::Format(const Entry &entry, Stream &s, case Entry::Type::FunctionReturnRight: case Entry::Type::FunctionReturnLeft: case Entry::Type::FunctionQualifiers: { -if (!sc->function) - return false; +Language *language_plugin = nullptr; +if (sc->function) + language_plugin = Language::FindPlugin(sc->function->GetLanguage()); +else if (sc->symbol) + language_plugin = Language::FindPlugin(sc->symbol->GetLanguage()); -Language *language_plugin = -Language::FindPlugin(sc->function->GetLanguage()); if (!language_plugin) return false; diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 283e867d53bb7..ab8e9883868ce 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -381,6 +381,34 @@ GetDemangledScope(const SymbolContext &sc) { return demangled_name.slice(info->ScopeRange.first, info->ScopeRange.second); } +static bool PrintDemangledArgumentList(Stream &s, const SymbolContext &sc) { + assert(sc.symbol); + + Mangled mangled = sc.GetPossiblyInlinedFunctionName(); + if (!mangled) +return false; + + auto demangled_name = mangled.GetDemangledName().GetStringRef(); + if (demangled_name.empty()) +return false; + + const std::optional &info = mangled.GetDemangledInfo(); + if (!info) +return false; + + // Function without a basename is nonsense. + if (!info->hasBasename()) +return false; + + if (info->ArgumentsRange.second < info->ArgumentsRange.first) +return false; + + s << demangled_name.slice(info->ArgumentsRange.first, +info->ArgumentsRange.second); + + return true; +} + bool CPlusPlusLanguage::CxxMethodName::TrySimplifiedParse() { // This method tries to parse simple method definitions which are presumably // most comman in user programs. Definitions that can be parsed by this @@ -1890,8 +1918,6 @@ bool CPlusPlusLanguage::GetFunctionDisplayName( bool CPlusPlusLanguage::HandleFrameFormatVariable( const SymbolContext &sc, const ExecutionContext *exe_ctx, FormatEntity::Entry::Type type, Stream &s) { - assert(sc.function); - switch (type) { case FormatEntity::Entry::Type::FunctionScope: { std::optional scope = GetDemangledScope(sc); @@ -1925,6 +1951,14 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable( } case FormatEntity::Entry::Type::FunctionFormattedArguments: { +// This ensures we print the arguments even when no debug-info is available. +// +// FIXME: we should have a Entry::Type::FunctionArguments and +// use it in the plugin.cplusplus.display.function-name-format +// once we have a "fallback operator" in the frame-format language. +if (!sc.function && sc.symbol) + return PrintDemangledArgumentList(s, sc); + VariableList args; if (auto variable_list_sp = GetFunctionVariableList(sc)) variable_list_sp->AppendVariablesWithScope(eValueTypeVariableArgument, diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test index a2cb1c6adf064..7e34fbd3855d0 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test @@ -7,6 +7,10 @@ # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s # +# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out +# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ +# RUN: | FileCheck %s + #--- main.cpp namespace ns { template diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test index c4c9062b640f1..04f51701a2a2d 100644 --
[Lldb-commits] [lldb] [lldb] Deploy Python DLL on Windows (PR #137467)
llvmbot wrote: @llvm/pr-subscribers-lldb Author: nerix (Nerixyz) Changes https://github.com/llvm/llvm-project/commit/f0248ca54531125599af8f22e686e1c77de0416a initially added a post build event to copy the Python DLL to the `bin` directory. This relied on `PYTHON_DLL` being present, which was removed in https://github.com/llvm/llvm-project/commit/2046d72e91670114625c87e122db6e013ba089d5, which moved to `FindPython3`. CMake's `FindPython3` sets `Python3_RUNTIME_LIBRARY` (https://github.com/Kitware/CMake/blob/1cd89e65d76339e6be23fc9bb0d417655a9c06ea/Modules/FindPython/Support.cmake#L3866-L3873) even though it's not documented. This is used to deploy the `python3{version}(_d).dll`. I wasn't sure what the correct way to specify the destination path is. From CMake's documentation, it seemed like `TYPE BIN` would do the correct thing (i.e. deploy it to the `bin` directory), but I don't know all the customization points - maybe this should be `LLVM_TOOLS_INSTALL_DIR`(?). It would be great if someone else could test this locally. Building LLDB (e.g. `ninja lldb`) should have `python3{version}(_d).dll` show up in the `bin` build directory and a `cmake --install--component lldb` should install the DLL to ` /bin`. I don't know how the prebuilt binaries are built, but I'd guess they will install and zip the install-directory. In that case, this should work. Related issues: - https://github.com/llvm/llvm-project/issues/43432 - https://github.com/llvm/llvm-project/issues/47381 - https://github.com/llvm/llvm-project/issues/53646 - https://github.com/llvm/llvm-project/issues/58095 - https://github.com/llvm/llvm-project/issues/59524 - https://github.com/llvm/llvm-project/issues/74073 - https://github.com/llvm/llvm-project/issues/85764 I hope all of them are fixed by this PR (but that depends on how the prebuilt binaries are built). --- Full diff: https://github.com/llvm/llvm-project/pull/137467.diff 1 Files Affected: - (modified) lldb/bindings/python/CMakeLists.txt (+9-4) ``diff diff --git a/lldb/bindings/python/CMakeLists.txt b/lldb/bindings/python/CMakeLists.txt index 69306a384e0b1..0b26d3e849914 100644 --- a/lldb/bindings/python/CMakeLists.txt +++ b/lldb/bindings/python/CMakeLists.txt @@ -183,16 +183,21 @@ function(finish_swig_python swig_target lldb_python_bindings_dir lldb_python_tar DEPENDS ${python_scripts_target}) endif() - # Add a Post-Build Event to copy the custom Python DLL to the lldb binaries dir so that Windows can find it when launching - # lldb.exe or any other executables that were linked with liblldb. - if (WIN32 AND NOT "${PYTHON_DLL}" STREQUAL "") + # Copy the custom Python DLL to the lldb binary dir so that Windows can find it when launching + # lldb.exe or any other executables that were linked with liblldb (both during development and when installing). + if (WIN32 AND NOT "${Python3_RUNTIME_LIBRARY}" STREQUAL "") # When using the Visual Studio CMake generator the lldb binaries end up in Release/bin, Debug/bin etc. file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin" LLDB_BIN_DIR) -file(TO_NATIVE_PATH "${PYTHON_DLL}" PYTHON_DLL_NATIVE_PATH) +file(TO_NATIVE_PATH "${Python3_RUNTIME_LIBRARY}" PYTHON_DLL_NATIVE_PATH) add_custom_command( TARGET ${swig_target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_DLL_NATIVE_PATH} ${LLDB_BIN_DIR} VERBATIM COMMENT "Copying Python DLL to LLDB binaries directory.") +install( + FILES "${Python3_RUNTIME_LIBRARY}" + TYPE BIN + COMPONENT lldb +) endif() endfunction() `` https://github.com/llvm/llvm-project/pull/137467 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Deploy Python DLL on Windows (PR #137467)
https://github.com/Nerixyz created https://github.com/llvm/llvm-project/pull/137467 https://github.com/llvm/llvm-project/commit/f0248ca54531125599af8f22e686e1c77de0416a initially added a post build event to copy the Python DLL to the `bin` directory. This relied on `PYTHON_DLL` being present, which was removed in https://github.com/llvm/llvm-project/commit/2046d72e91670114625c87e122db6e013ba089d5, which moved to `FindPython3`. CMake's `FindPython3` sets `Python3_RUNTIME_LIBRARY` (https://github.com/Kitware/CMake/blob/1cd89e65d76339e6be23fc9bb0d417655a9c06ea/Modules/FindPython/Support.cmake#L3866-L3873) even though it's not documented. This is used to deploy the `python3{version}(_d).dll`. I wasn't sure what the correct way to specify the destination path is. From CMake's documentation, it seemed like `TYPE BIN` would do the correct thing (i.e. deploy it to the `bin` directory), but I don't know all the customization points - maybe this should be `LLVM_TOOLS_INSTALL_DIR`(?). It would be great if someone else could test this locally. Building LLDB (e.g. `ninja lldb`) should have `python3{version}(_d).dll` show up in the `bin` build directory and a `cmake --install --component lldb` should install the DLL to `/bin`. I don't know how the prebuilt binaries are built, but I'd guess they will install and zip the install-directory. In that case, this should work. Related issues: - https://github.com/llvm/llvm-project/issues/43432 - https://github.com/llvm/llvm-project/issues/47381 - https://github.com/llvm/llvm-project/issues/53646 - https://github.com/llvm/llvm-project/issues/58095 - https://github.com/llvm/llvm-project/issues/59524 - https://github.com/llvm/llvm-project/issues/74073 - https://github.com/llvm/llvm-project/issues/85764 I hope all of them are fixed by this PR (but that depends on how the prebuilt binaries are built). >From dbaf4ccfb7dc55317e55704681513ed5bd47a320 Mon Sep 17 00:00:00 2001 From: Nerixyz Date: Sat, 26 Apr 2025 18:09:27 +0200 Subject: [PATCH] [lldb] Deploy Python DLL on Windows --- lldb/bindings/python/CMakeLists.txt | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lldb/bindings/python/CMakeLists.txt b/lldb/bindings/python/CMakeLists.txt index 69306a384e0b1..0b26d3e849914 100644 --- a/lldb/bindings/python/CMakeLists.txt +++ b/lldb/bindings/python/CMakeLists.txt @@ -183,16 +183,21 @@ function(finish_swig_python swig_target lldb_python_bindings_dir lldb_python_tar DEPENDS ${python_scripts_target}) endif() - # Add a Post-Build Event to copy the custom Python DLL to the lldb binaries dir so that Windows can find it when launching - # lldb.exe or any other executables that were linked with liblldb. - if (WIN32 AND NOT "${PYTHON_DLL}" STREQUAL "") + # Copy the custom Python DLL to the lldb binary dir so that Windows can find it when launching + # lldb.exe or any other executables that were linked with liblldb (both during development and when installing). + if (WIN32 AND NOT "${Python3_RUNTIME_LIBRARY}" STREQUAL "") # When using the Visual Studio CMake generator the lldb binaries end up in Release/bin, Debug/bin etc. file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin" LLDB_BIN_DIR) -file(TO_NATIVE_PATH "${PYTHON_DLL}" PYTHON_DLL_NATIVE_PATH) +file(TO_NATIVE_PATH "${Python3_RUNTIME_LIBRARY}" PYTHON_DLL_NATIVE_PATH) add_custom_command( TARGET ${swig_target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_DLL_NATIVE_PATH} ${LLDB_BIN_DIR} VERBATIM COMMENT "Copying Python DLL to LLDB binaries directory.") +install( + FILES "${Python3_RUNTIME_LIBRARY}" + TYPE BIN + COMPONENT lldb +) endif() endfunction() ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen edited https://github.com/llvm/llvm-project/pull/137448 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)
https://github.com/eronnen edited https://github.com/llvm/llvm-project/pull/137448 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [llvm] [lldb-dap] Migrating breakpointLocations request to use typed RequestHandler (PR #137426)
https://github.com/eronnen updated https://github.com/llvm/llvm-project/pull/137426 >From af461d8721557347b823a79bb85d043c59ab8220 Mon Sep 17 00:00:00 2001 From: Ely Ronnen Date: Sat, 26 Apr 2025 01:22:05 +0200 Subject: [PATCH 1/2] Migrating breakpointLocations request to use typed RequestHandler --- .../Handler/BreakpointLocationsHandler.cpp| 156 +++--- lldb/tools/lldb-dap/Handler/RequestHandler.h | 10 +- .../lldb-dap/Protocol/ProtocolRequests.cpp| 17 ++ .../lldb-dap/Protocol/ProtocolRequests.h | 38 + .../tools/lldb-dap/Protocol/ProtocolTypes.cpp | 14 ++ lldb/tools/lldb-dap/Protocol/ProtocolTypes.h | 21 +++ llvm/include/llvm/Support/JSON.h | 8 + 7 files changed, 125 insertions(+), 139 deletions(-) diff --git a/lldb/tools/lldb-dap/Handler/BreakpointLocationsHandler.cpp b/lldb/tools/lldb-dap/Handler/BreakpointLocationsHandler.cpp index 7a477f3e97875..2ac886c3a5d2c 100644 --- a/lldb/tools/lldb-dap/Handler/BreakpointLocationsHandler.cpp +++ b/lldb/tools/lldb-dap/Handler/BreakpointLocationsHandler.cpp @@ -9,136 +9,22 @@ #include "DAP.h" #include "JSONUtils.h" #include "RequestHandler.h" +#include namespace lldb_dap { -// "BreakpointLocationsRequest": { -// "allOf": [ { "$ref": "#/definitions/Request" }, { -// "type": "object", -// "description": "The `breakpointLocations` request returns all possible -// locations for source breakpoints in a given range.\nClients should only -// call this request if the corresponding capability -// `supportsBreakpointLocationsRequest` is true.", -// "properties": { -// "command": { -// "type": "string", -// "enum": [ "breakpointLocations" ] -// }, -// "arguments": { -// "$ref": "#/definitions/BreakpointLocationsArguments" -// } -// }, -// "required": [ "command" ] -// }] -// }, -// "BreakpointLocationsArguments": { -// "type": "object", -// "description": "Arguments for `breakpointLocations` request.", -// "properties": { -// "source": { -// "$ref": "#/definitions/Source", -// "description": "The source location of the breakpoints; either -// `source.path` or `source.sourceReference` must be specified." -// }, -// "line": { -// "type": "integer", -// "description": "Start line of range to search possible breakpoint -// locations in. If only the line is specified, the request returns all -// possible locations in that line." -// }, -// "column": { -// "type": "integer", -// "description": "Start position within `line` to search possible -// breakpoint locations in. It is measured in UTF-16 code units and the -// client capability `columnsStartAt1` determines whether it is 0- or -// 1-based. If no column is given, the first position in the start line is -// assumed." -// }, -// "endLine": { -// "type": "integer", -// "description": "End line of range to search possible breakpoint -// locations in. If no end line is given, then the end line is assumed to -// be the start line." -// }, -// "endColumn": { -// "type": "integer", -// "description": "End position within `endLine` to search possible -// breakpoint locations in. It is measured in UTF-16 code units and the -// client capability `columnsStartAt1` determines whether it is 0- or -// 1-based. If no end column is given, the last position in the end line -// is assumed." -// } -// }, -// "required": [ "source", "line" ] -// }, -// "BreakpointLocationsResponse": { -// "allOf": [ { "$ref": "#/definitions/Response" }, { -// "type": "object", -// "description": "Response to `breakpointLocations` request.\nContains -// possible locations for source breakpoints.", -// "properties": { -// "body": { -// "type": "object", -// "properties": { -// "breakpoints": { -// "type": "array", -// "items": { -// "$ref": "#/definitions/BreakpointLocation" -// }, -// "description": "Sorted set of possible breakpoint locations." -// } -// }, -// "required": [ "breakpoints" ] -// } -// }, -// "required": [ "body" ] -// }] -// }, -// "BreakpointLocation": { -// "type": "object", -// "description": "Properties of a breakpoint location returned from the -// `breakpointLocations` request.", -// "properties": { -// "line": { -// "type": "integer", -// "description": "Start line of breakpoint location." -// }, -// "column": { -// "type": "integer", -// "description": "The start position of a breakpoint location. Position -// is measured in UTF-16 code units and the client capability -// `columnsStartAt1` determines whether it is 0- or 1-based." -// }, -// "endLine": { -// "type": "integer", -//
[Lldb-commits] [lldb] [lldb][Format] Make function name frame-format variables work without debug-info (PR #137408)
Michael137 wrote: > That sounds useful! Another way to spell `||` would be `?:` which might be > more intuitive to C programmers? @JDevlieghere was working on this separately. Not sure what syntax was settled on https://github.com/llvm/llvm-project/pull/137408 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] cc0bdb3 - [lldb][test] Skip Objective-C FrameFormat tests on Windows
Author: Michael Buch Date: 2025-04-26T08:40:29+01:00 New Revision: cc0bdb38ee6976c24e5e3dcb2b3fd190a4ae7112 URL: https://github.com/llvm/llvm-project/commit/cc0bdb38ee6976c24e5e3dcb2b3fd190a4ae7112 DIFF: https://github.com/llvm/llvm-project/commit/cc0bdb38ee6976c24e5e3dcb2b3fd190a4ae7112.diff LOG: [lldb][test] Skip Objective-C FrameFormat tests on Windows This were failing on Windows CI with errors like: ``` 22: (lldb) bt 23: * thread #1, stop reason = breakpoint 1.1 24: frame #0: 0x7ff7c5e41000 TestFrameFormatFunctionFormattedArgumentsObjC.test.tmp.objc.out`func at main.m:2 25: frame #1: 0x7ff7c5e4101c TestFrameFormatFunctionFormattedArgumentsObjC.test.tmp.objc.out`bar + 12 at main.m:3 26: frame #2: 0x7ff7c5e4103c TestFrameFormatFunctionFormattedArgumentsObjC.test.tmp.objc.out`main + 16 at main.m:5 27: custom-frame '()' !~~~ error: no match expected 28: custom-frame '(__formal=)' ``` Added: Modified: lldb/test/Shell/Settings/TestCxxFrameFormatMixedLanguages.test lldb/test/Shell/Settings/TestCxxFrameFormatObjC.test lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgumentsObjC.test Removed: diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormatMixedLanguages.test b/lldb/test/Shell/Settings/TestCxxFrameFormatMixedLanguages.test index 854cf6384d8ee..bafd36f5ae177 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormatMixedLanguages.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormatMixedLanguages.test @@ -1,3 +1,5 @@ +# UNSUPPORTED: system-windows + # Test the plugin.cplusplus.display.function-name-format setting # when interoperating multiple languages. diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormatObjC.test b/lldb/test/Shell/Settings/TestCxxFrameFormatObjC.test index 525ada2afe99c..ba57bc8a8 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormatObjC.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormatObjC.test @@ -1,3 +1,5 @@ +# UNSUPPORTED: system-windows + # Test the plugin.cplusplus.display.function-name-format setting. # RUN: split-file %s %t diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgumentsObjC.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgumentsObjC.test index fdafa65c6d05d..61adb2ec8ac9a 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgumentsObjC.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgumentsObjC.test @@ -1,3 +1,5 @@ +# UNSUPPORTED: system-windows + # Check that we have an appropriate fallback for ${function.formatted-arguments} in languages that # don't implement this frame format variable (in this case Objective-C). # ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] 7581aa1 - [lldb][test] Make sure we compile FrameFormat tests with DWARF
Author: Michael Buch Date: 2025-04-26T11:28:32+01:00 New Revision: 7581aa1d8e66453845aae584aeda99b3f5fc9646 URL: https://github.com/llvm/llvm-project/commit/7581aa1d8e66453845aae584aeda99b3f5fc9646 DIFF: https://github.com/llvm/llvm-project/commit/7581aa1d8e66453845aae584aeda99b3f5fc9646.diff LOG: [lldb][test] Make sure we compile FrameFormat tests with DWARF These don't make sense for PDB on Windows Added: Modified: lldb/test/Shell/Settings/TestCxxFrameFormat.test lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test lldb/test/Shell/Settings/TestFrameFormatFunctionBasenameObjC.test lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgumentsObjC.test lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiersObjC.test lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test lldb/test/Shell/Settings/TestFrameFormatFunctionReturnObjC.test lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test lldb/test/Shell/Settings/TestFrameFormatFunctionScopeObjC.test lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArgumentsObjC.test Removed: diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormat.test b/lldb/test/Shell/Settings/TestCxxFrameFormat.test index babb14bed4440..3751dfa737eae 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormat.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormat.test @@ -3,7 +3,7 @@ # Test the plugin.cplusplus.display.function-name-format setting. # RUN: split-file %s %t -# RUN: %build %t/main.cpp -o %t.out +# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test b/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test index 0ae48d4eb541e..249c25bab0f47 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test @@ -3,7 +3,7 @@ # were successful. # RUN: split-file %s %t -# RUN: %build %t/main.cpp -o %t.out +# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test b/lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test index 90cd2d3e327c9..887de882886ed 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test @@ -4,7 +4,7 @@ # plugin.cplusplus.display.function-name-format setting. # RUN: split-file %s %t -# RUN: %build %t/main.cpp -o %t.out +# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -o "settings set interpreter.stop-command-source-on-error false" \ # RUN: -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test index ae405be44578d..32e6dcec43ce6 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test @@ -1,9 +1,7 @@ -# XFAIL: system-windows - # Test the ${function.basename} frame-format variable. # RUN: split-file %s %t -# RUN: %build %t/main.cpp -o %t.out +# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s # diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasenameObjC.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasenameObjC.test index 1a36d049db06c..e41ba49f112a9 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasenameObjC.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasenameObjC.test @@ -2,7 +2,7 @@ # don't implement this frame format variable (in this case Objective-C). # # RUN: split-file %s %t -# RUN: %build %t/main.m -o %t.objc.out +# RUN: %clang_host -g -gdwarf %t/main.m -o %t.objc.out # RUN: %lldb -x -b -s %t/commands.input %t.objc.out -o exit 2>&1 \ # RUN: | FileCheck %s diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test index 31602c83b17c9..2a7860fbf0e24 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArgument
[Lldb-commits] [lldb] 3f5dc58 - [lldb][test] XFAIL TestCxxFrameFormat.test for Windows target
Author: Michael Buch Date: 2025-04-26T18:40:53+01:00 New Revision: 3f5dc586efd751b0e9d9abb8f5e38f11df76fede URL: https://github.com/llvm/llvm-project/commit/3f5dc586efd751b0e9d9abb8f5e38f11df76fede DIFF: https://github.com/llvm/llvm-project/commit/3f5dc586efd751b0e9d9abb8f5e38f11df76fede.diff LOG: [lldb][test] XFAIL TestCxxFrameFormat.test for Windows target Fails on Windows CI: ``` |10: (lldb) break set -l 3 | check:30'0 ~~ |11: error: No selected frame to use to find the default file. | check:30'0 ~~ |12: error: No file supplied and no default file available. | check:30'0 ~~~ |13: (lldb) exit ``` This passes fine when compiling on Windows for Linux targets. Added: Modified: lldb/test/Shell/Settings/TestCxxFrameFormat.test Removed: diff --git a/lldb/test/Shell/Settings/TestCxxFrameFormat.test b/lldb/test/Shell/Settings/TestCxxFrameFormat.test index d2d89b7014511..0db3bfa1b4a10 100644 --- a/lldb/test/Shell/Settings/TestCxxFrameFormat.test +++ b/lldb/test/Shell/Settings/TestCxxFrameFormat.test @@ -1,3 +1,5 @@ +# XFAIL: target-windows + # Test the plugin.cplusplus.display.function-name-format setting. # RUN: split-file %s %t ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits