My personal website source code
Log | Files | Refs | Submodules | README | LICENSE (3135B)

      1 ---
      2 title: 'SAOC LLDB D integration: 11th Weekly Update'
      3 date: '2021-12-02T16:31:00+01:00'
      4 tags: ['saoc', 'saoc2021', 'dlang', 'llvm', 'lldb', 'debug', 'debugging', 'dwarf']
      5 description: "This post describes what I've done on the 11th week of the
      6 Symmetry Autumn of Code 2021, including follow up updates on the LLVM patches
      7 decoupling of clang-specific code on LLDB interfaces and start implementation
      8 of D basic types."
      9 ---
     11 Hi D community!
     13 I'm here again, to describe what I've done during the eleventh week of Symmetry
     14 Autumn of Code.
     16 ## LLVM upstream follow up update
     18 Three more patches in the D demangling patch train got merged!
     20 -
     21 -
     22 -
     24 I joined this week on the LLVM official team to help provide maintenance on the
     25 code I introduced and planning to introduce as well as general changes made for
     26 D in the official tree.
     28 I have 2 more patches already accepted about the demangling but I didn't merge
     29 them yet, as I'm having some problems on running the test suite locally.
     31 Currently, LLVM already supports special D main, simple multiple identifiers
     32 and anonymous symbols. Next step is to support basic and compound types,
     33 although I think this needs to be split up, as discussed in some patches.
     35 ## Implementation of basic types and decoupling Clang-specific code
     37 I started this week implementing basic types on the D TypeSystem, although, in
     38 the meanwhile, I found that some decoupling is needed, since the current LLDB
     39 architecture for parsing debug info has some entanglement with clang-specific
     40 structures such as the AST Context and other TypeSystem and AST related
     41 structures. I though this was something already considered, but a lot of effort
     42 on this was left behind when other languages stop being supported, like Go.
     44 I made some patches to move that forward in the upstream:
     46 -
     47 -
     48 -
     50 Still about the decoupling, I found out that only DWARF Parser is reasonably
     51 decoupled, but other debug info parsers like
     52 [PDB](
     53 are really entangled with the Clang TypeSystem. There is no generic interface
     54 at the moment, and I plan to decouple that as well, although, it is not really
     55 a priority for me, since my main development environment is Linux. That said,
     56 I'm probably going to left Windows support as a second priority, for now.
     58 I added those patches to the [PR]( I
     59 created last week and continued working on it.
     61 ## What is next?
     63 I haven't finished the type wrapper to represent a D type, due to those
     64 decoupling issues. I will hopefully finish the implementation next week and try
     65 to have some simple output on the LLDB side.
     67 You can also read this on the D programming language forum,
     68 [here](,
     69 and discuss there!
     71 Read about the [previous week](../d-saoc-2021-10/) and the [next
     72 week](../d-saoc-2021-12/).