如何使用 Mono.Cecil 获取 IL 指令的源代码/行号
Posted
技术标签:
【中文标题】如何使用 Mono.Cecil 获取 IL 指令的源代码/行号【英文标题】:How to get source/line number for IL instruction using Mono.Cecil 【发布时间】:2011-11-22 02:22:40 【问题描述】:我正在使用 Mono.Cecil 编写一个简单的实用程序,用于查找 .NET 程序集中的类型/方法使用情况(例如,在枚举上调用 ToString)。
我能够找到方法,但是向用户显示源/行信息会很酷。 Mono.Cecil 可以做到这一点吗?
【问题讨论】:
【参考方案1】:这是可能的。首先,您应该阅读 Mono.Cecil wiki 中关于 debugging symbols 的指南。
确保在 Mono.Cecil.dll 附近有 Mono.Cecil.Pdb.dll,设置 ReaderParameters 以读取指南中指示的符号,然后,在 pdb 文件中具有序列点的指令将具有它们的SequencePoint
属性非空,有可用的行信息。 SequencePoint
的 Document
属性保存源文件的名称。
【讨论】:
谢谢 - 做到了!我很困惑,并非所有指令都有 SequencePoint,但是当您考虑它时,它是有道理的。再次感谢你:)以上是关于如何使用 Mono.Cecil 获取 IL 指令的源代码/行号的主要内容,如果未能解决你的问题,请参考以下文章