[Lldb-commits] [PATCH] D51162: [PDB] Restore AST from PDB symbols

Aleksandr Urakov via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 11 05:37:10 PDT 2018


aleksandr.urakov added a comment.

In https://reviews.llvm.org/D51162#1229112, @stella.stamenova wrote:

> This change is causing three of the symbol file PDB tests to fail:
>
>   lldb-Unit :: SymbolFile/PDB/release/SymbolFilePDBTests.exe/SymbolFilePDBTests.TestClassInNamespace
>   lldb-Unit :: SymbolFile/PDB/release/SymbolFilePDBTests.exe/SymbolFilePDBTests.TestNestedClassTypes
>   lldb-Unit :: SymbolFile/PDB/release/SymbolFilePDBTests.exe/SymbolFilePDBTests.TestSimpleClassTypes
>
>
> For example:
>
>  


The interesting moment here is that the `test-pdb-types.pdb` contains some strange symbols not belonging to the source. For example:

  class Class [sizeof = 1] {
    data +0x00 [sizeof=1] bool b
  }
  
  class NS::NSClass [sizeof = 16] {
    data +0x00 [sizeof=4] float f
    <padding> (4 bytes)
    data +0x08 [sizeof=8] double d
  }
  Total padding 4 bytes (25% of class size)
  Immediate padding 4 bytes (25% of class size)
  
  class Class::NestedClass [sizeof = 4] {
    data +0x00 [sizeof=4] float f
  }
  
  class Class [sizeof = 2] {
    data +0x00 [sizeof=2] ShortEnum se
  }
  
  class Class::NestedClass [sizeof = 4] {
    data +0x00 [sizeof=4] Enum e
  }

But there's no `Class` with `bool b` and there's no `Class::NestedClass` with `float f`. So it seems that the test passed before occasionally. I will regenerate this PDB as well.

What do you think about this symbols? Could they appear after changes due to incremental builds?


Repository:
  rL LLVM

https://reviews.llvm.org/D51162





More information about the lldb-commits mailing list