如何使用 .Net 从 pdb 获取方法的行号和路径?

发布于 2024-09-19 01:49:01 字数 42 浏览 8 评论 0原文

给定一个程序集及其 pdb,如何使用 .Net 获取方法的行号和路径?

Given an assembly and its pdb, how do I get the line number and path to a method using .Net?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执笔绘流年 2024-09-26 01:49:01

您需要使用DIA SDK。 Microsoft 没有针对它的托管界面,但 使用之前曾在 StackOverflow 上询问过 C# 中的 DIA

如果您打算首先在本机中尝试,您可以通过获取相关 PDB 的 IDiaSymbol 实例来获取相关信息,这称为 '全局范围'。完成后,您将调用 findChildren()< /a> 向其传递 SymTagFunction 枚举,其类型为 SymTagEnum。然后,您需要枚举它们并使用先前用于获取全局 IDiaSymbol 实例的 IDiaSession 来查找正确的源代码和行号。

You will need to use the DIA SDK. Microsoft does not have a managed interface for it, but using DIA in C# has been asked on StackOverflow before.

If you are going to try it out in native first you can get the information in question by getting the IDiaSymbol instance for the PDB in question, this is called the 'global scope'. Once you have that you will call findChildren() passing it the SymTagFunction enumeration which of type SymTagEnum. You will then need to enumerate over them and use an IDiaSession, previously made to get the global IDiaSymbol, instance to find the correct source and line number.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文