[PATCH] Initial pass at API design for DebugInfo/PDB

Zachary Turner zturner at google.com
Wed Feb 4 15:51:30 PST 2015


Ok this CL just got way bigger, but it should be fairly complete in terms of stuff that will live in the generic API.  There is now one concrete implementation of PDBSymbol for every tag value, and this uses some macro C++11 magic to forward the calls through to the underlying raw interface.

Additionally, this provides a unit test which uses a mock implementation of the underlying raw symbol to verify that the dyncast semantics are as expected.  Confirmed that the unit tests are hooked up correctly, as I changed one line in the test to something that would obviously fail, and my test failed.


http://reviews.llvm.org/D7356

Files:
  include/llvm/DebugInfo/PDB/IPDBDataStream.h
  include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
  include/llvm/DebugInfo/PDB/IPDBLineNumber.h
  include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
  include/llvm/DebugInfo/PDB/IPDBSession.h
  include/llvm/DebugInfo/PDB/IPDBSourceFile.h
  include/llvm/DebugInfo/PDB/PDB.h
  include/llvm/DebugInfo/PDB/PDBSymbol.h
  include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
  include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
  include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
  include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
  include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
  include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
  include/llvm/DebugInfo/PDB/PDBSymbolData.h
  include/llvm/DebugInfo/PDB/PDBSymbolExe.h
  include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
  include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
  include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
  include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
  include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
  include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
  include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
  include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
  include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
  include/llvm/DebugInfo/PDB/PDBTypes.h
  lib/DebugInfo/CMakeLists.txt
  lib/DebugInfo/LLVMBuild.txt
  lib/DebugInfo/PDB/CMakeLists.txt
  lib/DebugInfo/PDB/LLVMBuild.txt
  lib/DebugInfo/PDB/PDB.cpp
  lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp
  lib/DebugInfo/PDB/PDBSymbol.cpp
  lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
  lib/DebugInfo/PDB/PDBSymbolCustom.cpp
  unittests/DebugInfo/CMakeLists.txt
  unittests/DebugInfo/PDB/CMakeLists.txt
  unittests/DebugInfo/PDB/Makefile
  unittests/DebugInfo/PDB/PDBApiTest.cpp

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7356.19361.patch
Type: text/x-patch
Size: 106897 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150204/808be602/attachment.bin>


More information about the llvm-commits mailing list