C# · 3月 2, 2022

通过任何机会,我们能否可视化所有进入堆栈的内容以及进程中堆积的内容(可能是c#)?

我开始探索Clrmd,以便可视化堆栈和堆的所有变量,并最终得到堆中的一些(> 1000)对象,其中大部分都是字符串类型,这些不是我创建的进程和栈跟踪只提供有关每个线程中的方法(stackframes)的信息,但不提供有关方法中存在的变量和其他属性的信息.

我的问题是:

>为什么以及如何在堆中创建这些字符串对象,即使我没有在我的程序中使用任何字符串(c#代码).
>有没有办法过滤堆对象,以便只使用clrmd或任何其他nuget包或工具显示程序使用的对象(我的c#代码留下程序内部创建的对象).
>在任何情况下,我都可以在另一个进程中使用进程的堆栈帧(MY C#CODE)显示方法中使用的变量集(局部变量).

解决方法 亲爱的Ganesh,您可以尝试红门[ANTS Memory Profiler]来跟踪内存中的对象并按任何类型过滤它们…点击下面的链接

here