我试图分析.NET Core进程的10 to内存转储。我正在尝试使用dotnet dump analyze命令,但是有一个问题-- gcroot被困了几个小时,没有产生任何结果。
我习惯于使用.Net和sosex分析windows WinDBG进程的内存转储。在那里,我们可以构建一次堆索引(bhi),它被其他命令使用,比如极端有用的refs或mdt或strings命令。Sosex非常有用,而且起了作用。在这里使用linux转储,我肯定做错了什么,因为我无法让gcroot工作。
是否有人成功地分析了10 in内存转储?我能够运行dumpheap,但如果不引用感兴趣的对象,我就不知道如何继续。总的来说,我觉得与在windows上使用WinDBG + sosex相比,linux中的核心转储调试体验非常糟糕。我一定做错了什么。linux有sosex替代品吗?
我不知道这是否重要,但我使用的是WSL2,所以不是一个真正的Linux盒。
发布于 2022-09-15 19:36:27
gcroot必须分析托管堆,以查找对指定对象的任何引用和所有引用。这是一个劳动密集的过程,使用大型转储文件可能需要非常非常长的时间。我不认为SOSEX已经更新了相当一段时间,很可能无法工作。
https://stackoverflow.com/questions/71805346
复制相似问题