我开始探索 Clrmd 以可视化所有进入堆栈和堆的变量,最后在堆中找到了一组 (>1000) 个对象,其中大多数是字符串类型,这些对象不是我在进程和一个堆栈跟踪,它仅提供有关每个线程中的方法(堆栈帧)的信息,但不提供有关方法中存在的变量和其他属性的信息。
我的问题是:
- 为什么以及如何在堆中创建这些数量的字符串对象,即使我没有在我的程序中使用任何字符串(c# 代码)。
- 有什么方法可以过滤堆对象,以便仅使用 clrmd 或任何其他 nuget 包或工具显示程序使用的对象(我的 c# 代码留下程序内部创建的对象)。
- 任何机会我都可以显示在另一个进程中使用进程的堆栈帧(MY C# CODE)的方法中使用的变量集(局部变量)。