问题标签 [dia-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - 为什么 DIA SDK get_guid 总是为 Class guid 返回 Bad ptr(0x000)?
我正在使用 DIA SDK 来枚举 COM 二进制文件(dlls/exes)的类型和接口。但是 get_guid 总是为该组件内使用的每个 Class(CoClass & Interface) 返回 Bad Ptr(0x0000) 吗?
我们可以从 co 类和接口的 pdb 中获取 guid 的任何其他方法。
问候乌斯曼
c++ - 使用 DIA SDK 列出 C++ PDB 中的类文件夹
我正在使用 C# 开发一个分析工具。它使用DIA SDK分析C++ PDB文件并列出所有类、函数、字段等。
我想知道类的文件夹名称,并明智地列出类、函数等文件夹。我已经看到了 IDiaSymbol 上的所有属性/函数,但在类的文件夹名称上找不到任何东西。
如何使用 DIA SDK 获取 C++ PDB 中类的文件夹名称?
谢谢
拉古
c++ - 我正在寻找一个从 .PDB 文档中处理调试符号的 C++ 库
创建一个模块来解码 PDB 文档中定义的结构;任何人都可以为我提供一个可以从 PDB 文档中提取所需调试符号的模块吗?谢谢。
visual-studio-2010 - 获取我的 VC++ 代码使用的符号列表
我正在构建一个处理我的 VC++ 源代码的工具。为此,我需要获取符号列表,包括我的代码使用的局部变量名称及其类型。我知道 Visual C++ 2010 已经提供了一个 .bsc 文件,允许对象浏览器快速定位符号。但这是一个交互式工具。我需要获取文件中的符号列表。是否有任何工具允许我们以编程方式获取我们自己的 VC++ 源代码中使用的符号列表?
我尝试了微软提供的Debug Interface Access SDK。它允许我们读取 .pdb 文件以获取所使用的局部变量的名称。但我也想获得源代码中使用的确切类型名称。例如
DIA SDK 允许我们获取字符串“dwordVar”,它是一个局部变量的名称。但它不能告诉它的类型名称是“MYTYPE”。它只能告诉我们 MYTYPE 真正代表什么(比如 unsigned long)。但不是符号“MYTYPE”。
如果 Visual C++ 不提供此功能,是否有任何第三方工具支持此功能?
c++ - DIA SDK SymTagEnum 值
我目前正在将我使用 DIA SDK 检索到的 PDB 文件中的大量信息转储到 XML 文件中,以便我可以使用这些信息来显示有关项目结构等的内容。
为了命名 XML 节点,我有一个简单的函数,它将枚举的值转换为字符串,然后用于节点:
此函数包含此处列出的所有值:http: //msdn.microsoft.com/de-de/library/bkedss5f.aspx
现在,为了转储 DIA 信息,我基本上只是递归我使用的所有符号的子代pGlobal->findChildren(SymTagUDT, NULL, nsCaseSensitive, &pIDiaEnumSymbols)
。奇怪的是,生成的 XML 包含很多看起来像这样的东西:
现在,不要管空的名称信息和其他东西,到目前为止,这一切都还没有完成。我真的很想知道什么样的符号的symTag 为 31。枚举器似乎包含 31 个元素,因此从 0 到 30 的值应该是有效的。有人知道这 31 可能是什么吗?有问题的函数如下所示:
它是 SystemC fifo 示例项目的一部分。没什么太花哨的,真的。
c++ - 来自 PDB 的 AST(例如通过 DIA)
我目前正在使用 DIA SDK 从 PDB 文件中获取一些非常有用的信息......现在,基本问题是:我可以使用多深?最佳方案是能够将所有内容都归结为抽象语法树......这甚至可能吗?如果没有,我可以使用调试数据分析走多远?
c# - 如何使用 DIA SDK 读取*code*(特别包括跳转表)?
我正在使用 C# 中的DIA SDK。
现在我有类似的东西:
我将如何使用 DIA SDK 浏览代码,特别是switch
在我的可执行文件中找到任何跳转表及其目标地址(即语句生成的那些)?
我已经验证了它们的存在,我只是不知道如何访问它们。
我标记了 C#,因为我将 C# 与 COM 一起使用,但我也标记了 C++,因为 SDK 最初是在 C++ 中(使用 COM)。随意删除任何可能不合适的内容;谢谢。
.net - 为什么 TlbImp 不能将此用于 DIA 的 COM 接口正确导入 .NET?
我尝试导入 Microsoft 的 DIA SDK 以用于 .NET:
这似乎在大多数情况下都可以正常工作,只是由于某种原因,它不包含某些接口(例如IDiaEnumFrameData
),而包含其余接口则很好。
(该接口既不存在于 .DLL 文件中,也不存在于 .TLB 文件中——即使它存在于 C 和头文件中。)
这是什么原因造成的?
sdk - DIA x64 & 本地免费
我正在使用 DIA Sdk 从 PDB 文件中提取一些信息。我创建了非 com DiaSourceAlt 对象,因此我必须使用 LocalFree 来释放字符串。
以下代码在 x86 中运行良好,但在 x64 中,LocalFree 调用破坏了堆。
有什么建议吗?(我正在使用 msdia90.dll)
问候,毛罗。