tree cf1904fd7169c1384b669c972b350bf7d7d1741c
parent 5710759eb390c0d5274c2a4d43967282d7df1993
author Michael Buch <michaelbuch12@gmail.com> 1744582912 +0100
committer GitHub <noreply@github.com> 1744582912 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn/DkACRC1aQ7uu5UhlAAAO1sQAHnAs5df/20zHUzyncqEU+6u
 dWj3AMoohE4XbCIUtLLZ+qDRuge8SDkexu0vr0NZ9UR547Fde2FAvfPGUcovh8qs
 Lf7SrzIputrLep8yC/LNVEGAfLwj+8z3X9tiKmHb91M/CxNyP6U1Yr1te3LN760K
 xqf+4lKkPtGgEU2mY22ggsZsY6VMZItTb3hdGrtTWrHwVx0YBIGjM5pnzY2ysqhs
 MVzSfdJMRWPtCUcdUGvkK7g8nK+znGc/prYWBL+qrPRhUC1Ou/KJd6gDnNahMWHn
 UyX/lQNSV8ba0TxtbqeDo+1A2LpFZ3ZPFGM/cYWymcoEZIE51SllwwvJ+feYjTNh
 H+ntQH7yl69qw5s1jYLfRXWBW1RIt+RQ1qELKEgZYUSSInZYEB15eGzGfijO/Xk2
 3g807IPGLlnjDA9hx4IgOKM0BnMeOjjKMity+QoiDwfVlVDZoJf1w6Acml4LLoyE
 PBlfP+mm/YLhgRUUv5sPm+GOiywyy8jFX3/DwN7ETDYrDCVTiww9Awo4StLHBZ6J
 L83LieSb97A+j9vRDNfjXaTDm7x+9JfOgnzdiJRLONA5KLjIULteSODNPgHCVI5D
 EGzgogyDio9DzC7KVZZ9gdEaVh+GpxhSFP9z3fg0CwVF4iV6XqI1NSOtkzzS1Urr
 iDjl5d7bYqQvNSQNOSsl
 =ng+3
 -----END PGP SIGNATURE-----
 

[lldb][Format] Display only the inlined frame name in backtraces if available (#135343)

When a frame is inlined, LLDB will display its name in backtraces as
follows:
```
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.3
  * frame #0: 0x0000000100000398 a.out`func() [inlined] baz(x=10) at inline.cpp:1:42
    frame #1: 0x0000000100000398 a.out`func() [inlined] bar() at inline.cpp:2:37
    frame #2: 0x0000000100000398 a.out`func() at inline.cpp:4:15
    frame #3: 0x00000001000003c0 a.out`main at inline.cpp:7:5
    frame #4: 0x000000026eb29ab8 dyld`start + 6812
```
The longer the names get the more confusing this gets because the first
function name that appears is the parent frame. My assumption (which may
need some more surveying) is that for the majority of cases we only care
about the actual frame name (not the parent). So this patch removes all
the special logic that prints the parent frame.

Another quirk of the current format is that the inlined frame name does
not abide by the `${function.name-XXX}` format variables. We always just
print the raw demangled name. With this patch, we would format the
inlined frame name according to the `frame-format` setting (see the
test-cases).

If we really want to have the `parentFrame [inlined] inlinedFrame`
format, we could expose it through a new `frame-format` variable (e..g.,
`${function.inlined-at-name}` and let the user decide where to place
things.