以前在LLVM版本4和更低版本中,可以通过一些API调用访问程序结构的调试信息。例如,要获取结构的DWARF信息,我可以编写:
MDNode* structNode;
DIType structType(structNode);
assert(strType.getTag() == dwarf::DW_TAG_structure_type);
在当前版本的LLVM中,将删除这些功能。您是否知道访问调试信息的另一种方法,例如上面的示例?
答案 0 :(得分:0)
我认为它应该以几乎相同的方式工作,只需使用llvm::dyn_cast
(就像目前建议的使用LLVM的一般方法一样):
llvm::MDNode* md;
if (const auto di = llvm::dyn_cast<llvm::DINode>(md)) {
assert(di->getTag() == llvm::dwarf::DW_TAG_structure_type);
}