是否有任何内置或第三方库允许您在运行时简单地将所有变量转储到内存中?我想要的是能够查看变量和当前值,类似于通过点击断点并将鼠标悬停在变量上来查看变量和当前值,但实际上不必停止程序执行(即只是获取快照).如果它可以将它们转储到一个文件然后可以在程序中打开以获得一个很好的GUI界面来查看它们会很好,但是简单的文本文件转储就足够了.
在我之前的问题中,我想在堆栈中转储所有变量(从当前和所有前一帧),这里可以看到:有没有办法在运行时检查C#中的堆栈变量?
我被建议手动拦截调用或使用像PostSharp这样的AOP框架来简化这样的任务.我查看了PostSharp,并且拦截参数不包含当前堆栈帧中的变量.我想知道是否有一种简单的方法可以自动获取当前堆栈帧中的所有局部变量.我想我可以执行代码分析并生成将所有这些值复制到集合中的代码,但也许有一个内置机制来完成它.
在此先感谢您的任何建议.
编辑:我应该详细说明为什么我要这样做.我希望能够在方法中间暂停执行.如果我有堆栈的内容,我可以稍后恢复执行,甚至序列化它并在另一台机器上继续(假设它是相对简单的代码,因此没有线程或I/O).运行代码分析工具是可以的,这将允许我自动生成保存此状态的额外代码.我想我可能需要分析CIL才能做到这一点.