当前位置:  开发笔记 > 后端 > 正文

为什么远程调试时没有加载符号?

如何解决《为什么远程调试时没有加载符号?》经验,为你挑选了4个好方法。

我想使用远程调试.我要调试的程序在机器b上运行.Visual Studio在机器上运行a.

在机器b上我有一个包含以下文件的文件夹:

msvcr72.dll

msvsmon.exe

NatDbgDE.dll

NatDbgDEUI.dll

NatDbgEE.dll

NatDbgEEUI.dll

如果您认为某些文件丢失了,您是否还可以描述它们通常位于何处?

在下一步中msvsmon.exe,我在机器b上启动了我的程序.在机器上,我启动了Visual Studio 2008和我编写程序的解决方案.然后我选择"Debug - Attach to Process".我选择了"远程传输(仅限本机,无需身份验证)".我使用正确的IP作为限定符并采取了正确的过程(program.exe).片刻之后,弹出窗口中出现以下消息:

program.exe中0x7c812a7b处的未处理异常:0xE0434F4D:0xe0434f4d

我可以继续或休息; 继续时,异常会一次又一次地发生.所以我按下了break并发出以下消息:

没有为任何调用堆栈帧加载符号.源代码无法显示.

Kyle Trauber.. 27

确保将使用程序集生成的.PDB文件复制到远程计算机上的同一文件夹中.这将允许调试器拾取调试符号.



1> Kyle Trauber..:

确保将使用程序集生成的.PDB文件复制到远程计算机上的同一文件夹中.这将允许调试器拾取调试符号.


实际上,在远程计算机上使用PDB文件没有帮助 - 我仍然得到"此文档没有加载符号"......?
.pdb文件与程序集一起生成,因此它们对于每个版本都是新的,应该被复制.
对我来说问题是在我的开发机器上我的所有Visual Studio项目都在D:驱动器上,而服务器只有C:驱动器+我正在开发ASP.NET网站.我解决这个问题的方法是去 - >项目属性 - >构建 - >输出路径 - > c:\ inetpub\wwwroot\mysite\bin.这样,我的开发机器和服务器上的.pdb路径变得相同.
我知道这是一个过时的答案,信息在过去的8年中可能有所变化,但这只是更新,因为这是公认的答案。查看@ scrat789的答案。通过遵循该帖子,我能够在不从本地计算机复制PDB的情况下使调试器正常工作。

2> 小智..:

    在您的开发计算机上添加一个共享文件夹,指向.pdb文件的位置

    设置_NT_SYMBOL_PATH在远程计算机上调用的环境变量,该变量指向dev计算机上的共享文件夹

远程调试器现在将在您的开发机器中搜索符号.无需为每个构建复制它们.

请在此处查看MS Video .

开始观看8-9分钟.他演示了如何设置远程调试器以从开发机器上的驱动器共享加载符号.

祝好运!


你能重新发布链接吗?现在已经死了.

3> scrat789..:

在Visual Studio 2010中的"工具"菜单上,选择"选项".

在"选项"对话框中,打开"调试"节点,然后单击"常规".

选中"根据需要显示所有设置"并找到" 仅启用我的代码" (仅限托管)

取消选中它,然后单击"确定"

您可以附加远程进程



4> artur02..:

如果不将.PDB文件放在调试代码所在的同一目录中,则.NET中的远程调试将不起作用.

如果VS仍无法找到调试源,则调试代码和VS项目源版本不同.解决方案是重建和重新部署项目.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有