【发布时间】:2018-01-17 04:58:56
【问题描述】:
我开始探索 Clrmd 以可视化进入堆栈和堆的所有变量,最后在堆中发现了一组 (>1000) 个对象,其中大多数是字符串类型,不是由进程中的我和一个堆栈跟踪,它只提供有关每个线程中的方法(堆栈帧)的信息,但不提供有关方法中存在的变量和其他属性的信息。
我的问题是:
- 为什么以及如何在堆中创建这些字符串对象,即使我没有在我的程序中使用任何字符串(c# 代码)。
- 是否有任何方法可以过滤堆对象,以便仅使用 clrmd 或任何其他 nuget 包或工具显示程序使用的对象(我的 c# 代码留下程序内部创建的对象)。李>
- 我可以在另一个进程中使用进程的堆栈帧(我的 C# 代码)显示在方法中使用的变量集(局部变量)。
【问题讨论】:
标签: c# debugging stack-trace heap-memory diagnostic-tools