<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/lldb/test/API, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[lldb] Fix a test if hardware breakpoints are not supported (#168813)</title>
<updated>2025-11-20T17:45:54+00:00</updated>
<author>
<name>Igor Kudrin</name>
<email>ikudrin@accesssoftek.com</email>
</author>
<published>2025-11-20T17:45:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ccdb71932aa84a36f3d9689eca97b80bf643c500'/>
<id>ccdb71932aa84a36f3d9689eca97b80bf643c500</id>
<content type='text'>
If `HardwareBreakpointTestBase.supports_hw_breakpoints()` returns False,
`SimpleHWBreakpointTest.does_not_support_hw_breakpoints()` returns None,
so the test runs and fails. However, it should be skipped instead.

The test was added in #146602, while `supports_hw_breakpoints()` was
changed in #146609, which was landed earlier despite having a bigger
number.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If `HardwareBreakpointTestBase.supports_hw_breakpoints()` returns False,
`SimpleHWBreakpointTest.does_not_support_hw_breakpoints()` returns None,
so the test runs and fails. However, it should be skipped instead.

The test was added in #146602, while `supports_hw_breakpoints()` was
changed in #146609, which was landed earlier despite having a bigger
number.</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb][test] Correctly skip a test on a 32-bit target (#168631)</title>
<updated>2025-11-19T21:38:41+00:00</updated>
<author>
<name>Igor Kudrin</name>
<email>ikudrin@accesssoftek.com</email>
</author>
<published>2025-11-19T21:38:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=12d72050e1255decb67d53125e86d348db2951d6'/>
<id>12d72050e1255decb67d53125e86d348db2951d6</id>
<content type='text'>
The test was added in #147252. On a 32-bit target, it fails with error:
```
  File "...\TestDataFormatterLibcxxInvalidString.py", line 23, in test
    self.skip()
    ^^^^^^^^^
AttributeError: 'LibcxxInvalidStringDataFormatterTestCase' object has no attribute 'skip'
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test was added in #147252. On a 32-bit target, it fails with error:
```
  File "...\TestDataFormatterLibcxxInvalidString.py", line 23, in test
    self.skip()
    ^^^^^^^^^
AttributeError: 'LibcxxInvalidStringDataFormatterTestCase' object has no attribute 'skip'
```</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Skip TestLibcxxInternalsRecognizer on asan + MacOS</title>
<updated>2025-11-19T14:27:13+00:00</updated>
<author>
<name>Felipe de Azevedo Piovezan</name>
<email>fpiovezan@apple.com</email>
</author>
<published>2025-11-19T14:25:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=93a1327deaef7abd5c2bf5caf4c4ef40d34460f6'/>
<id>93a1327deaef7abd5c2bf5caf4c4ef40d34460f6</id>
<content type='text'>
Unfortunately, in this configuration, the bots are forced to use the
system libcxx, which is too old for what this test is verifying.
In the future, we should re-enable building libcxx with asan on MacOS.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unfortunately, in this configuration, the bots are forced to use the
system libcxx, which is too old for what this test is verifying.
In the future, we should re-enable building libcxx with asan on MacOS.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB] Fix test compilation errors under asan (NFC) (#168408)</title>
<updated>2025-11-17T21:01:52+00:00</updated>
<author>
<name>Adrian Prantl</name>
<email>aprantl@apple.com</email>
</author>
<published>2025-11-17T21:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=54c2c7cf0da21bf7d85f144aa6cb6875e2a9373a'/>
<id>54c2c7cf0da21bf7d85f144aa6cb6875e2a9373a</id>
<content type='text'>
https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/lldb-cmake-sanitized/2744/consoleText</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/lldb-cmake-sanitized/2744/consoleText</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb-dap] Migrating 'evaluate' to structured types. (#167720)</title>
<updated>2025-11-17T19:08:49+00:00</updated>
<author>
<name>John Harrison</name>
<email>harjohn@google.com</email>
</author>
<published>2025-11-17T19:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c555522818ff3acaa928f4147546ecec81e579eb'/>
<id>c555522818ff3acaa928f4147546ecec81e579eb</id>
<content type='text'>
Adding structured types for the evaluate request handler.

This should be mostly a non-functional change. I did catch some spelling
mistakes in our tests ('variable' vs 'variables').</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adding structured types for the evaluate request handler.

This should be mostly a non-functional change. I did catch some spelling
mistakes in our tests ('variable' vs 'variables').</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB][DWARF] Use the same qualified name computation for Rust (#165840)</title>
<updated>2025-11-17T10:38:40+00:00</updated>
<author>
<name>Kiva</name>
<email>imkiva@islovely.icu</email>
</author>
<published>2025-11-17T10:38:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bdae26f3b47b1022402d578c2a748c1c5744f308'/>
<id>bdae26f3b47b1022402d578c2a748c1c5744f308</id>
<content type='text'>
Currently LLDB's `ParseRustVariantPart` generates the following
`CXXRecordDecl` for a Rust enum
```rust
enum AA {
  A(u8)
}
```

```
CXXRecordDecl 0x5555568d5970 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct AA
|-CXXRecordDecl 0x5555568d5ab0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; union test_issue::AA$Inner definition
| |-CXXRecordDecl 0x5555568d5d18 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A$Variant definition
| | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable trivial
| | | `-Destructor simple irrelevant trivial needs_implicit
| | `-FieldDecl 0x555555a77880 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; value 'test_issue::AA::A'
| `-FieldDecl 0x555555a778f0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variant$ 'test_issue::AA::test_issue::AA$Inner::A$Variant'
|-CXXRecordDecl 0x5555568d5c48 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A definition
| `-FieldDecl 0x555555a777e0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; __0 'unsigned char'
`-FieldDecl 0x555555a77960 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variants$ 'test_issue::AA::test_issue::AA$Inner'
```

While when the Rust enum type name is the same as its variant name, the
generated `CXXRecordDecl` becomes the following – there's a circular
reference between `struct A$Variant` and `struct A`, causing #163048.

```rust
enum A {
  A(u8)
}
```

```
CXXRecordDecl 0x5555568d5760 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A
|-CXXRecordDecl 0x5555568d58a0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; union test_issue::A$Inner definition
| |-CXXRecordDecl 0x5555568d5a38 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A$Variant definition
| | `-FieldDecl 0x5555568d5b70 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; value 'test_issue::A'    &lt;---- bug here
| `-FieldDecl 0x5555568d5be0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variant$ 'test_issue::A::test_issue::A$Inner::A$Variant'
`-FieldDecl 0x5555568d5c50 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variants$ 'test_issue::A::test_issue::A$Inner'
```

The problem was caused by `GetUniqueTypeNameAndDeclaration` not
returning the correct qualified name for DWARF DIE `test_issue::A::A`,
instead, it returned `A`. This caused `ParseStructureLikeDIE` to find
the wrong type `test_issue::A` and returned early.

The failure in `GetUniqueTypeNameAndDeclaration` appears to stem from a
language check that returns early unless the language is C++. I changed
it so Rust follows the C++ path rather than returning. I’m not entirely
sure this is the right approach — Rust’s qualified name rules look
similar, but not identical? Alternatively, we could add a Rust-specific
implementation that forms qualified names according to Rust's rules.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently LLDB's `ParseRustVariantPart` generates the following
`CXXRecordDecl` for a Rust enum
```rust
enum AA {
  A(u8)
}
```

```
CXXRecordDecl 0x5555568d5970 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct AA
|-CXXRecordDecl 0x5555568d5ab0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; union test_issue::AA$Inner definition
| |-CXXRecordDecl 0x5555568d5d18 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A$Variant definition
| | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable trivial
| | | `-Destructor simple irrelevant trivial needs_implicit
| | `-FieldDecl 0x555555a77880 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; value 'test_issue::AA::A'
| `-FieldDecl 0x555555a778f0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variant$ 'test_issue::AA::test_issue::AA$Inner::A$Variant'
|-CXXRecordDecl 0x5555568d5c48 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A definition
| `-FieldDecl 0x555555a777e0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; __0 'unsigned char'
`-FieldDecl 0x555555a77960 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variants$ 'test_issue::AA::test_issue::AA$Inner'
```

While when the Rust enum type name is the same as its variant name, the
generated `CXXRecordDecl` becomes the following – there's a circular
reference between `struct A$Variant` and `struct A`, causing #163048.

```rust
enum A {
  A(u8)
}
```

```
CXXRecordDecl 0x5555568d5760 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A
|-CXXRecordDecl 0x5555568d58a0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; union test_issue::A$Inner definition
| |-CXXRecordDecl 0x5555568d5a38 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; struct A$Variant definition
| | `-FieldDecl 0x5555568d5b70 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; value 'test_issue::A'    &lt;---- bug here
| `-FieldDecl 0x5555568d5be0 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variant$ 'test_issue::A::test_issue::A$Inner::A$Variant'
`-FieldDecl 0x5555568d5c50 &lt;&lt;invalid sloc&gt;&gt; &lt;invalid sloc&gt; $variants$ 'test_issue::A::test_issue::A$Inner'
```

The problem was caused by `GetUniqueTypeNameAndDeclaration` not
returning the correct qualified name for DWARF DIE `test_issue::A::A`,
instead, it returned `A`. This caused `ParseStructureLikeDIE` to find
the wrong type `test_issue::A` and returned early.

The failure in `GetUniqueTypeNameAndDeclaration` appears to stem from a
language check that returns early unless the language is C++. I changed
it so Rust follows the C++ path rather than returning. I’m not entirely
sure this is the right approach — Rust’s qualified name rules look
similar, but not identical? Alternatively, we could add a Rust-specific
implementation that forms qualified names according to Rust's rules.</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Add a test for capturing stdout/stderr from Python commands (#168138)</title>
<updated>2025-11-14T22:43:01+00:00</updated>
<author>
<name>Jonas Devlieghere</name>
<email>jonas@devlieghere.com</email>
</author>
<published>2025-11-14T22:43:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6dad2c2cfb9255bb8b4fec3565f99ffda32dfb1a'/>
<id>6dad2c2cfb9255bb8b4fec3565f99ffda32dfb1a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB] Use skipIf instead of expectedFail</title>
<updated>2025-11-13T21:03:10+00:00</updated>
<author>
<name>Adrian Prantl</name>
<email>aprantl@apple.com</email>
</author>
<published>2025-11-13T21:02:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c40779ab468c4bade79ca93ec8325111d3470c76'/>
<id>c40779ab468c4bade79ca93ec8325111d3470c76</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Add libstdcpp initializer_list formatter (#167515)</title>
<updated>2025-11-13T14:57:23+00:00</updated>
<author>
<name>Ebuka Ezike</name>
<email>yerimyah1@gmail.com</email>
</author>
<published>2025-11-13T14:57:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=94fb85646daf2b4cea55410ba15960339d2d58b5'/>
<id>94fb85646daf2b4cea55410ba15960339d2d58b5</id>
<content type='text'>
Make the existing libc++ formatter generic
Add initializer_list summary provider.
Add test for `libstdcpp`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make the existing libc++ formatter generic
Add initializer_list summary provider.
Add test for `libstdcpp`</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Remove test that disassembles all of Foundation (#167596)</title>
<updated>2025-11-12T18:58:05+00:00</updated>
<author>
<name>Alex Langford</name>
<email>alangford@apple.com</email>
</author>
<published>2025-11-12T18:58:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=280d0df211f81f67f6728bf1dfbd32fcd8d78c86'/>
<id>280d0df211f81f67f6728bf1dfbd32fcd8d78c86</id>
<content type='text'>
This test attempts to disassemble every Code symbol in Foundation.
There's no need to disassemble every code symbol and this certainly does
not scale. In some cases, this test can take multiple minutes to run or
even time out.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This test attempts to disassemble every Code symbol in Foundation.
There's no need to disassemble every code symbol and this certainly does
not scale. In some cases, this test can take multiple minutes to run or
even time out.</pre>
</div>
</content>
</entry>
</feed>
