[Lldb-commits] [lldb] [llvm] [lldb-dap] migrate set breakpoint requests (PR #137448)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Dmitry Vasilyev via lldb-commits

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)

2025-04-26 Thread Michael Buch via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Vladislav Dzhidzhoev via lldb-commits

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)

2025-04-26 Thread Jonas Devlieghere via lldb-commits

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)

2025-04-26 Thread via lldb-commits

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)

2025-04-26 Thread Jonas Devlieghere via lldb-commits

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)

2025-04-26 Thread Jonas Devlieghere via lldb-commits

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

2025-04-26 Thread Michael Buch via lldb-commits

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)

2025-04-26 Thread Jonas Devlieghere via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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

2025-04-26 Thread Michael Buch via lldb-commits

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

2025-04-26 Thread Michael Buch via lldb-commits

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)

2025-04-26 Thread Michael Buch via lldb-commits

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)

2025-04-26 Thread via lldb-commits

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)

2025-04-26 Thread via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Ely Ronnen via lldb-commits

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)

2025-04-26 Thread Michael Buch via lldb-commits

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

2025-04-26 Thread Michael Buch via lldb-commits

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

2025-04-26 Thread Michael Buch via lldb-commits

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

2025-04-26 Thread Michael Buch via lldb-commits

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