Javier Lopez-Gomez cb575785b9
[llvm-debuginfo-analyzer] Support DW_TAG_module (#137228)
- Adds support for `DW_TAG_module` DIEs and recurse over their children.
Prior to this patch, entities hanging below `DW_TAG_module` were just
not visible. This DIE kind is commonly generated by Objective-C modules.

This patch will represent such entities, which will print as
```
[001]    {CompileUnit} '/llvm/tools/clang/test/modules/<stdin>'
[002]      {Producer} 'LLVM version 3.7.0'
           {Directory} '/llvm/tools/clang/test/modules'
           {File} '<stdin>'
[002]      {Module} 'DebugModule'
```
The minimal test case included is just the result of
```
$ llc llvm/test/DebugInfo/X86/DIModule.ll
      -accel-tables=Dwarf
      -o llvm/unittests/DebugInfo/LogicalView/Inputs/test-dwarf-clang-module.o
      -filetype=obj
```
2025-05-21 15:05:10 +01:00
..

LogicalView unit tests input files generation

Source file: test.cpp

using INTPTR = const int *;
int foo(INTPTR ParamPtr, unsigned ParamUnsigned, bool ParamBool) {
  if (ParamBool) {
    typedef int INTEGER;
    const INTEGER CONSTANT = 7;
    return CONSTANT;
  }
  return ParamUnsigned;
}

Linux binary files:

test-dwarf-clang.o

clang -c -w -g -gdwarf-4 -O0 test.cpp -o test-dwarf-clang.o

test-dwarf-gcc.o

g++ -c -w -g -O0 test.cpp -o test-dwarf-gcc.o

Windows binary files:

test-codeview-clang.o

clang++.exe --target=x86_64-windows -c -w -g -gcodeview test.cpp -o test-codeview-clang.o

test-codeview-msvc.o

cl.exe /nologo /EHsc /Od /Z7 /Fotest-codeview-msvc.o /c test.cpp

test-codeview-pdb-msvc.o and test-codeview-pdb-msvc-.pdb

cl.exe /nologo /EHsc /Od /Zi /Fotest-codeview-pdb-msvc.o /Fdtest-codeview-pdb-msvc-.pdb /c test.cpp

test-codeview-msvc.lib

This file is a static library embedding the test-codeview-msvc.o object file. It is generated by the "lib.exe" tool shipped with MSVC compiler.

lib.exe /OUT:test-codeview-msvc.lib test-codeview-msvc.o