【发布时间】:2011-08-28 12:12:21
【问题描述】:
我正在构建一个工具来处理我的 VC++ 源代码。为此,我需要获取符号列表,包括我的代码使用的局部变量名称及其类型。我知道 Visual C++ 2010 已经提供了一个 .bsc 文件,允许对象浏览器快速定位符号。但这是一个交互式工具。我需要获取文件中的符号列表。是否有任何工具可以让我们以编程方式获取我们自己的 VC++ 源代码中使用的符号列表?
我试用了微软提供的Debug Interface Access SDK。它允许我们读取 .pdb 文件以获取所使用的局部变量的名称。但我也想获得源代码中使用的确切类型名称。例如
MYTYPE dwordVar;
DIA SDK 允许我们获取字符串“dwordVar”,它是一个局部变量的名称。但它不能告诉它的类型名称是“MYTYPE”。它只能告诉我们 MYTYPE 真正代表什么(比如 unsigned long)。但不是符号“MYTYPE”。
如果 Visual C++ 不提供此功能,是否有任何第三方工具支持此功能?
【问题讨论】:
-
IDiaSymbol 有 lot 的属性。请务必区分 get_type 和 get_baseType。发布一个 sn-p 是明智的。
-
@HansPassant:只有these properties 对数据符号有效。
标签: visual-studio-2010 debug-symbols dia-sdk browse-information