VS2010 探查器似乎无法解析 ngen'd 图像中的符号

发布于 2024-09-07 03:14:53 字数 760 浏览 6 评论 0原文

我正在通过以“采样”模式附加到 Windows 服务来分析它。

我打开结果文件“函数”视图,看到“最热门”函数显示为 [System.Runtime.Serialization.ni.dll],但没有指示其中具体的 .net 函数集会。

看起来 ngen 程序集 (.ni.dll) 中的所有其他符号都以相同的方式显示。另外,我在列表中没有看到任何来自托管程序集但没有看到 ngen 程序集的符号,这很奇怪。

但是,所有本机符号都解析正常,例如“AwareLock::Contention(int)”等。

此外,“输出”选项卡显示:

Loaded symbols for C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Runtime.Seri#\12aaff696a0c54773664b4c5407deaa2\System.Runtime.Serialization.ni.dll.

此外,我没有启动了 vsperfclrenv,但在并发中一切都解析正常分析模式,所以我认为我不需要 vsperfclrenv 因为 VS2010 为我做了一切。

我尝试运行 ngen update /debug /profile 但它没有改变任何事情。

如何设置我的环境,以便 VS2010 的采样分析器解析这些托管程序集中的符号?

同时,我将尝试ngen uninstall它们。

I'm profiling a Windows service by attaching to it in the 'sampling' mode.

I open the results file, the "functions" view and I see the "hottest" function being displayed as [System.Runtime.Serialization.ni.dll] without indication of the concrete .net function inside this assembly.

It looks like all other symbols from ngen'd assemblies (.ni.dll) are shown the same way. Also, I don't see any symbols from managed but not ngen'd assemblies in the list, which is quite strange.

However, all the native symbols resolve OK, like "AwareLock::Contention(int)" etc.

Also, the Output tab says:

Loaded symbols for C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Runtime.Seri#\12aaff696a0c54773664b4c5407deaa2\System.Runtime.Serialization.ni.dll.

Also, I have not launched vsperfclrenv, but everything resolves OK in the concurrency profiling mode, so I thought that I don't need vsperfclrenv since VS2010 does everything for me.

I've tried running ngen update /debug /profile but it didn't change a thing.

How do I setup my environment so that the sampling profiler of VS2010 resolves symbols in these managed assemblies?

Meanwhile, I'll try ngen uninstalling them.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半衾梦 2024-09-14 03:14:53

当您在 VS2010 中打开性能报告时,您是否在错误列表中看到任何消息?如果没有正确的环境变量,解析托管符号所需的组件将不会被注入到进程中,并且只会解析本机图像。

如果您正在分析服务,则需要使用 vsperfclrenv /globalsampleon,然后重新启动以确保环境变量设置正确。

When you open the Performance Report in VS2010 do you see any messages in the Error List? Without the right environment variables a component that is required to resolve managed symbols will not be injected into the process and only native images will be resolved.

If you are profiling a service you will need to use vsperfclrenv /globalsampleon and then reboot to ensure that the environment variables are set correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文