<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/lldb/test/Shell/SymbolFile/NativePDB/Inputs, 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][NativePDB] Complete array member types in AST builder (#156370)</title>
<updated>2025-09-02T20:53:44+00:00</updated>
<author>
<name>nerix</name>
<email>nerixdev@outlook.de</email>
</author>
<published>2025-09-02T20:53:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3c7bf3b3c3a4871d13f7b7d5d60bbf190eaf8f3a'/>
<id>3c7bf3b3c3a4871d13f7b7d5d60bbf190eaf8f3a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Adjust default target.max-children-depth (#149282)</title>
<updated>2025-07-17T20:24:27+00:00</updated>
<author>
<name>Michael Buch</name>
<email>michaelbuch12@gmail.com</email>
</author>
<published>2025-07-17T20:24:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1e7ec351c40af981e299743a955d71c7d70753a8'/>
<id>1e7ec351c40af981e299743a955d71c7d70753a8</id>
<content type='text'>
Deeply nested structs can be noisy, so Apple's LLDB fork sets the
default to `4`:
https://github.com/swiftlang/llvm-project/blob/9c93adbb283005ab416fd155b75fd43e6a8288ca/lldb/source/Target/TargetProperties.td#L134-L136

Thought it would be useful to upstream this. Though happy to pick a
different default or keep it as-is.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Deeply nested structs can be noisy, so Apple's LLDB fork sets the
default to `4`:
https://github.com/swiftlang/llvm-project/blob/9c93adbb283005ab416fd155b75fd43e6a8288ca/lldb/source/Target/TargetProperties.td#L134-L136

Thought it would be useful to upstream this. Though happy to pick a
different default or keep it as-is.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Renormalize line endings whitespace only after dccebddb3b80"</title>
<updated>2024-10-18T20:16:50+00:00</updated>
<author>
<name>Luke Drummond</name>
<email>luke.drummond@codeplay.com</email>
</author>
<published>2024-10-18T20:16:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b55c52c047a167f42abbde9a33356cfb96b82c7f'/>
<id>b55c52c047a167f42abbde9a33356cfb96b82c7f</id>
<content type='text'>
This reverts commit 9d98acb196a40fee5229afeb08f95fd36d41c10a.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9d98acb196a40fee5229afeb08f95fd36d41c10a.
</pre>
</div>
</content>
</entry>
<entry>
<title>Renormalize line endings whitespace only after dccebddb3b80</title>
<updated>2024-10-17T13:49:26+00:00</updated>
<author>
<name>Luke Drummond</name>
<email>luke.drummond@codeplay.com</email>
</author>
<published>2024-10-17T13:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9d98acb196a40fee5229afeb08f95fd36d41c10a'/>
<id>9d98acb196a40fee5229afeb08f95fd36d41c10a</id>
<content type='text'>
Line ending policies were changed in the parent, dccebddb3b80. To make
it easier to resolve downstream merge conflicts after line-ending
policies are adjusted this is a separate whitespace-only commit. If you
have merge conflicts as a result, you can simply `git add --renormalize
-u &amp;&amp; git merge --continue` or `git add --renormalize -u &amp;&amp; git rebase
--continue` - depending on your workflow.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Line ending policies were changed in the parent, dccebddb3b80. To make
it easier to resolve downstream merge conflicts after line-ending
policies are adjusted this is a separate whitespace-only commit. If you
have merge conflicts as a result, you can simply `git add --renormalize
-u &amp;&amp; git merge --continue` or `git add --renormalize -u &amp;&amp; git rebase
--continue` - depending on your workflow.
</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb][test] Replace use of p with expression in Shell tests (NFC)</title>
<updated>2023-03-17T17:29:24+00:00</updated>
<author>
<name>Dave Lee</name>
<email>davelee.com@gmail.com</email>
</author>
<published>2023-03-16T15:20:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d875838e8b45cb0da5070298d0c1a2d1ee78ce7e'/>
<id>d875838e8b45cb0da5070298d0c1a2d1ee78ce7e</id>
<content type='text'>
In Shell tests, replace use of the `p` alias with the `expression` command.

To avoid conflating tests of the alias with tests of the expression command,
this patch canonicalizes to the use `expression`.

See also D141539 which made the same change to API tests.

Differential Revision: https://reviews.llvm.org/D146230
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Shell tests, replace use of the `p` alias with the `expression` command.

To avoid conflating tests of the alias with tests of the expression command,
this patch canonicalizes to the use `expression`.

See also D141539 which made the same change to API tests.

Differential Revision: https://reviews.llvm.org/D146230
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB][NativePDB] Forcefully complete a record type if it has empty debug info and is required to have complete type.</title>
<updated>2022-11-16T19:17:07+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2022-11-03T23:13:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6435fe699c2978aa8a91dc1cf5daa82fb4b28d95'/>
<id>6435fe699c2978aa8a91dc1cf5daa82fb4b28d95</id>
<content type='text'>
It's required in following situations:
1. As a base class.
2. As a data member.
3. As an array element type.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D134066
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's required in following situations:
1. As a base class.
2. As a data member.
3. As an array element type.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D134066
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB][NativePDB] Fix struct layout when it has anonymous unions.</title>
<updated>2022-10-13T19:43:45+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2022-09-29T02:40:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d3492ed01667a1fdebff4421a83b6c0500f07348'/>
<id>d3492ed01667a1fdebff4421a83b6c0500f07348</id>
<content type='text'>
Previously, lldb mistook fields in anonymous union in a struct as the direct
field of the struct, which causes lldb crashes due to multiple fields sharing
the same offset in a struct. This patch fixes it.

MSVC generated pdb doesn't have the debug info entity representing a anonymous
union in a struct. It looks like the following:
```
struct S {
union {
  char c;
  int i;
};
};

0x1004 | LF_FIELDLIST [size = 40]
         - LF_MEMBER [name = `c`, Type = 0x0070 (char), offset = 0, attrs = public]
         - LF_MEMBER [name = `i`, Type = 0x0074 (int), offset = 0, attrs = public]
0x1005 | LF_STRUCTURE [size = 32] `S`
         unique name: `.?AUS@@`
         vtable: &lt;no type&gt;, base list: &lt;no type&gt;, field list: 0x1004
```
Clang generated pdb is similar, though due to the [[ https://github.com/llvm/llvm-project/issues/57999 | bug ]],
it's not more useful than the debug info above. But that's not very relavent,
lldb should still be able to understand MSVC geneerated pdb.
```
0x1003 | LF_UNION [size = 60] `S::&lt;unnamed-tag&gt;`
         unique name: `.?AT&lt;unnamed-type-$S1&gt;@S@@`
         field list: &lt;no type&gt;
         options: forward ref (= 0x1003) | has unique name | is nested, sizeof 0
0x1004 | LF_FIELDLIST [size = 40]
         - LF_MEMBER [name = `c`, Type = 0x0070 (char), offset = 0, attrs = public]
         - LF_MEMBER [name = `i`, Type = 0x0074 (int), offset = 0, attrs = public]
         - LF_NESTTYPE [name = ``, parent = 0x1003]
0x1005 | LF_STRUCTURE [size = 32] `S`
         unique name: `.?AUS@@`
         vtable: &lt;no type&gt;, base list: &lt;no type&gt;, field list: 0x1004
         options: contains nested class | has unique name, sizeof 4
0x1006 | LF_FIELDLIST [size = 28]
         - LF_MEMBER [name = `c`, Type = 0x0070 (char), offset = 0, attrs = public]
         - LF_MEMBER [name = `i`, Type = 0x0074 (int), offset = 0, attrs = public]
0x1007 | LF_UNION [size = 60] `S::&lt;unnamed-tag&gt;`
         unique name: `.?AT&lt;unnamed-type-$S1&gt;@S@@`
         field list: 0x1006
         options: has unique name | is nested | sealed, sizeof
```
This patch delays the FieldDecl creation when travesing LF_FIELDLIST so we know
if there are multiple fields are in the same offsets and are able to group them
into different anonymous unions based on offsets. Nested anonymous union will
be flatten into one anonymous union, because we simply don't have that info, but
they are equivalent in terms of union layout.

Differential Revision: https://reviews.llvm.org/D134849
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, lldb mistook fields in anonymous union in a struct as the direct
field of the struct, which causes lldb crashes due to multiple fields sharing
the same offset in a struct. This patch fixes it.

MSVC generated pdb doesn't have the debug info entity representing a anonymous
union in a struct. It looks like the following:
```
struct S {
union {
  char c;
  int i;
};
};

0x1004 | LF_FIELDLIST [size = 40]
         - LF_MEMBER [name = `c`, Type = 0x0070 (char), offset = 0, attrs = public]
         - LF_MEMBER [name = `i`, Type = 0x0074 (int), offset = 0, attrs = public]
0x1005 | LF_STRUCTURE [size = 32] `S`
         unique name: `.?AUS@@`
         vtable: &lt;no type&gt;, base list: &lt;no type&gt;, field list: 0x1004
```
Clang generated pdb is similar, though due to the [[ https://github.com/llvm/llvm-project/issues/57999 | bug ]],
it's not more useful than the debug info above. But that's not very relavent,
lldb should still be able to understand MSVC geneerated pdb.
```
0x1003 | LF_UNION [size = 60] `S::&lt;unnamed-tag&gt;`
         unique name: `.?AT&lt;unnamed-type-$S1&gt;@S@@`
         field list: &lt;no type&gt;
         options: forward ref (= 0x1003) | has unique name | is nested, sizeof 0
0x1004 | LF_FIELDLIST [size = 40]
         - LF_MEMBER [name = `c`, Type = 0x0070 (char), offset = 0, attrs = public]
         - LF_MEMBER [name = `i`, Type = 0x0074 (int), offset = 0, attrs = public]
         - LF_NESTTYPE [name = ``, parent = 0x1003]
0x1005 | LF_STRUCTURE [size = 32] `S`
         unique name: `.?AUS@@`
         vtable: &lt;no type&gt;, base list: &lt;no type&gt;, field list: 0x1004
         options: contains nested class | has unique name, sizeof 4
0x1006 | LF_FIELDLIST [size = 28]
         - LF_MEMBER [name = `c`, Type = 0x0070 (char), offset = 0, attrs = public]
         - LF_MEMBER [name = `i`, Type = 0x0074 (int), offset = 0, attrs = public]
0x1007 | LF_UNION [size = 60] `S::&lt;unnamed-tag&gt;`
         unique name: `.?AT&lt;unnamed-type-$S1&gt;@S@@`
         field list: 0x1006
         options: has unique name | is nested | sealed, sizeof
```
This patch delays the FieldDecl creation when travesing LF_FIELDLIST so we know
if there are multiple fields are in the same offsets and are able to group them
into different anonymous unions based on offsets. Nested anonymous union will
be flatten into one anonymous union, because we simply don't have that info, but
they are equivalent in terms of union layout.

Differential Revision: https://reviews.llvm.org/D134849
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB][NativePDB] Switch to use DWARFLocationList.</title>
<updated>2022-08-17T20:37:13+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2022-07-29T19:35:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=71d778f33e8615f525f118db351c6541b40199ab'/>
<id>71d778f33e8615f525f118db351c6541b40199ab</id>
<content type='text'>
Before, NativePDB uses scoped range as a workaround for value range, that causes
problems (e.g. a variable's value can only have one range, but usually a
variable's value is located at different address ranges, each at different
locations, in optimized build).
This patch let NativePDB switch to DWARFLocationList so a variable's value can
be described at multiple non-overlapped address ranges and each range maps to a
location.
Because overlapping ranges exists, here's peference when choosing ranges:
1. Always prefer whole value locations. Suppose a variable size is 8 bytes, one record is that for range [1, 5) first 4 bytes is at ecx, and another record is that for range [2, 8) the 8 bytes value is at rdx. This results: [1, 2) has first 4 bytes at ecx, [2, 8) has the whole value at rdx.
2. Always prefer the locations parsed later. Suppose first record is that for range [1, 5) value is at ecx, second record is that for range [2, 6) value is at eax. This results: [1, 2) -&gt; ecx, [2, 6) -&gt; eax.

Differential Revision: https://reviews.llvm.org/D130796
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before, NativePDB uses scoped range as a workaround for value range, that causes
problems (e.g. a variable's value can only have one range, but usually a
variable's value is located at different address ranges, each at different
locations, in optimized build).
This patch let NativePDB switch to DWARFLocationList so a variable's value can
be described at multiple non-overlapped address ranges and each range maps to a
location.
Because overlapping ranges exists, here's peference when choosing ranges:
1. Always prefer whole value locations. Suppose a variable size is 8 bytes, one record is that for range [1, 5) first 4 bytes is at ecx, and another record is that for range [2, 8) the 8 bytes value is at rdx. This results: [1, 2) has first 4 bytes at ecx, [2, 8) has the whole value at rdx.
2. Always prefer the locations parsed later. Suppose first record is that for range [1, 5) value is at ecx, second record is that for range [2, 6) value is at eax. This results: [1, 2) -&gt; ecx, [2, 6) -&gt; eax.

Differential Revision: https://reviews.llvm.org/D130796
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB][NativePDB] Add MSInheritanceAttr when creating pointer type that is a pointer to member.</title>
<updated>2022-07-19T22:36:35+00:00</updated>
<author>
<name>Zequan Wu</name>
<email>zequanwu@google.com</email>
</author>
<published>2022-07-19T19:58:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b8cf916b89d4502569680b8b4cb284db5b7e8c4d'/>
<id>b8cf916b89d4502569680b8b4cb284db5b7e8c4d</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D129807
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D129807
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLDB] Fix NativePDB/local-variables.cpp for AArch64/Windows</title>
<updated>2022-07-12T11:26:47+00:00</updated>
<author>
<name>Muhammad Omair Javaid</name>
<email>omair.javaid@linaro.org</email>
</author>
<published>2022-07-12T11:24:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=68cc1eeb1d7fbcaf307fbf199a7c61debf1dd1c1'/>
<id>68cc1eeb1d7fbcaf307fbf199a7c61debf1dd1c1</id>
<content type='text'>
This patch fixes NativePDB/local-variables.cpp test for AArch64 Windows.
There are two changes:
1) Replace function breakpoint with line breakpoint required due to pr56288
2) Adjust "target modules dump ast" test as the output was slightly different
on AArch64/Windows.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes NativePDB/local-variables.cpp test for AArch64 Windows.
There are two changes:
1) Replace function breakpoint with line breakpoint required due to pr56288
2) Adjust "target modules dump ast" test as the output was slightly different
on AArch64/Windows.
</pre>
</div>
</content>
</entry>
</feed>
