[Lldb-commits] [PATCH] D56904: [NativePDB] Process virtual bases in the correct order

Aleksandr Urakov via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Jan 18 02:56:20 PST 2019


aleksandr.urakov created this revision.
aleksandr.urakov added reviewers: zturner, rnk, stella.stamenova.
aleksandr.urakov added a project: LLDB.
Herald added subscribers: lldb-commits, teemperor, abidh.

This patch makes virtual bases to be added in the correct order to the bases list. It is important because `VTableContext` (`MicrosoftVTableContext` in our case) uses then the order of virtual bases in the list to restore the virtual table indexes. These indexes are used then to resolve the layout of the virtual bases.

We haven't enough information about offsets of virtual bases regarding to the object (moreover, in a common case we can't rely on such information, see the example here: https://reviews.llvm.org/D53506#1272306 ), but there should be enough information to restore the layout of the virtual bases from the indexes in runtime. After D53506 <https://reviews.llvm.org/D53506> this information is used whenever possible, so there should be no problems with virtual bases' fields reading.

I have some problems with the test, I'll describe them exactly in the test's text below. Do you have them too or is this a specific problem with my setup?


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D56904

Files:
  lit/SymbolFile/NativePDB/Inputs/tag-types.lldbinit
  lit/SymbolFile/NativePDB/tag-types.cpp
  source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
  source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56904.182473.patch
Type: text/x-patch
Size: 5169 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190118/db960330/attachment.bin>


More information about the lldb-commits mailing list