SAOC LLDB D integration: 13th Weekly Update
Luís Ferreira
contact at lsferreira.net
Fri Dec 17 00:32:10 UTC 2021
Hi D community!
I'm here again, to describe what I've done during the thirteenth
week of
Symmetry Autumn of Code. This week as a bit atypical as I got
infected with
COVID-19 and this made me feel exhausted both physically and
mentally.
## Working approach to fetch basic types
After digging a bit about the problem I found out there is no
problem
specifically in Release builds, and a simple function called
`Verify` is there
to double check if the type is correct for Debug builds. After
fixing that
function, the LLDB can now dump some simple output about global
TLS and non-TLS
variables:
```
(lldb) ta v
Global variables for app.d in app:
app.bar = <No TLS data currently exists for this thread.>
app.ptr = <could not resolve type>
app.foobar =
```
For now it only recognizes boolean types, but it can't show up
the value since
LLDB doesn't know a way to dump it correctly.
You can try this version yourself using
[this](https://github.com/devtty63/llvm-project/tree/lldb-d/implement-typesystem-d)
branch.
## Decoupling and trivial patches
I pushed a patch to decouple DWARF to LLDB encoding logic from
Clang DWARF AST
Parser, along with a trivial fix about duplicate map assignment:
- https://reviews.llvm.org/D115662
- https://reviews.llvm.org/D115663
## What is next?
I already started working on some helpers to fetch the LLDB
Format, Encoding
and BasicType, along with other information about a type to
properly display
them. I'm not sure how Milestone 4 is going to work, as I
underestimated
the support for custom expessions.
More information about the Digitalmars-d
mailing list