You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试时如何评估通过CIL编辑添加的全局方法与字段?

如何在Visual Studio调试中查看CIL添加的全局成员

是的,你完全可以在Visual Studio调试过程中评估或查看这些存在于<Module>类中的全局成员,以下是具体的实现方法:

1. 使用即时窗口(Immediate Window)

这是最直接便捷的方式:

  • 调试时按下 Ctrl+Alt+I 打开即时窗口
  • 查看全局字段值:直接输入表达式,格式如下
    ? <Module>.你的全局字段名
    
    比如你的全局字段叫GlobalCounter,就输入? <Module>.GlobalCounter,回车后就能看到当前值。
  • 调用全局方法:直接输入方法调用语句即可
    <Module>.你的全局方法名(参数1, 参数2)
    
  • 若不确定成员具体名称,可用反射列出所有相关成员:
    typeof(<Module>).GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)
    
    这段代码会返回所有静态全局字段(包含公开和非公开的),把GetFields替换成GetMethods就能列出所有全局方法。

2. 添加到监视窗口(Watch Window)

如果需要持续跟踪某个全局成员的变化:

  • 调试时按下 Ctrl+Alt+W,选择任意一个监视窗口(Watch 1/2/3/4)
  • 在监视项输入框中输入:
    <Module>.你的全局成员名
    
    窗口会自动显示该成员的当前值,并在调试过程中实时更新。

注意事项

  • 确保调试会话启用了托管代码调试(默认是开启状态,但混合模式调试时要确认托管调试未被禁用)。
  • 若Visual Studio提示无法找到<Module>类,检查是否存在匹配的pdb调试符号文件——符号文件能帮助VS正确识别模块级的类和成员。
  • 成员名称要和你用IL工具/dnSpy看到的完全一致,包括特殊字符或编译器生成的后缀(比如<Init>__1这类)。

内容的提问来源于stack exchange,提问作者SGKoishi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:18:02