【问题标题】:By any chance, can we visualize what all goes to stack and what all goes to heap in a process (may be c#)?有没有机会,我们可以想象在一个进程(可能是c#)中什么都进入堆栈,什么都进入堆?
【发布时间】:2018-01-17 04:58:56
【问题描述】:

我开始探索 Clrmd 以可视化进入堆栈和堆的所有变量,最后在堆中发现了一组 (>1000) 个对象,其中大多数是字符串类型,不是由进程中的我和一个堆栈跟踪,它只提供有关每个线程中的方法(堆栈帧)的信息,但不提供有关方法中存在的变量和其他属性的信息。

我的问题是:

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

【问题讨论】:

    标签: c# debugging stack-trace heap-memory diagnostic-tools


    【解决方案1】:

    亲爱的 Ganesh,您可以尝试 Red-gate [ANTS Memory Profiler] 来跟踪内存中的对象并按任何类型过滤它们...点击下面的链接

    here

    【讨论】:

    • 我刚刚阅读了有关 ant memory profiler 的信息,但它无法回答我的问题(1,2,3),无论如何我会尝试一下。感谢您的考虑。
    猜你喜欢
    • 2016-01-19
    • 2012-09-13
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    相关资源
    最近更新 更多