Disasmo
VS2022加载项。单击任何方法或类以查看JIT的Codegen等等。
从.NET 7.0 RC1开始,此加载项不再需要局部构建Dotnet/Runtime Repo。但是,它为当地提供了更多功能,以获取本地的功能,请遵循以下步骤:
git clone git @github .com :dotnet / runtime.git cd runtime build.cmd Clr + Clr.Aot + Libs - c Release - rc Checked # optional (for crossgen2 + arm64 for hw intrinsics): build.cmd Clr.CoreLib - c Release - a arm64
请参阅Windows-Requirements.md。
发行说明
参见Release_notes.md
安装
单击“扩展” \\管理扩展菜单,在“搜索”文本框中选择在线选项卡,然后输入Disasmo 。安装加载项后,您必须关闭VS2022的所有活动实例,以使安装程序完成其作业。
特征
- 热键快速查看Codegen(默认情况下,可以在VS的设置中更改)
- 能够显示ARM64的Codegen
- JIT贡献者的流程图和Jitdumps
- 差异
- “ System.Runtime.Intrinsics快速搜索”选项卡
- Inliner的决定
- “运行”模式。对于PGO检查很有用
已知问题
- 只有.NET 6.0和以后的项目得到自定义运行时的支持
- .NET 7.0 RC1(或更新)对于非定期运行时模式需要
- 我仅测试了简单的控制台应用程序,但它也应该适用于libs
- 通用方法仅在“运行”模式下支持
- 默认情况下, Resmanper隐藏了罗斯林的动作(未选中“请勿显示Visual Studio灯泡”)。
- 灯泡在首次发射时可能会很慢
- 当从类中拆卸方法时,关联的C#Visual Studio项目或其项目文件之一必须在解决方案资源管理器中的活动/选择,否则将生成一个空白的拆卸窗口。
- 当拆卸使用来自Nuget软件包的代码的方法时, Disasmo将无法找到组件。解决方法是将程序集复制到项目的输出bin文件夹中创建的Disasmo文件夹。
第三方依赖
- MVVMLIGHT(麻省理工学院)
- avalonedit(麻省理工学院)
