visual studio 2010断点没有符号已加载

时间:2011-10-12 01:10:46

标签: .net visual-studio-2010 debugging c#-4.0

我真的有问题,我有一个VS 2010解决方案,它突然停止调试参考项目,我只是可以调试启动项目,但不是添加作为参考。这很奇怪,因为我创建了一个新的解决方案,添加了两个项目,然后我在两个项目中成功调试,这样做是为了看看我的VS配置是否错误,但是nop,这个特定的解决方案是不允许我调试的参考项目。

我已经阅读了此论坛和其他来源(如Microsoft)的所有可能解决方案。如果我去菜单Debug - >窗户 - >我要调试的模块不在列表中。 screen 1 my running modules

所以,我读了一个微软的页面,说明如何手动加载符号,我做了以下几点:

  

指定符号文件所在的目录

     

在“工具”菜单上,选择“选项”。

     

在“选项”对话框中,打开“调试”节点,然后单击“确定”   符号。

     

在Symbols页面上,有一个表示符号文件(.pdb)的框   位置。方框上方有四个图标。

     

单击文件夹图标。

     

可编辑文本显示在符号文件(.pdb)位置框中。

     

键入目录路径。语句完成可以帮助您找到   格式正确。

     

如果您正在进行远程调试,符号文件和符号服务器   托管代码的缓存必须位于远程计算机上。符号   本机代码的文件和符号服务器缓存必须位于   本地电脑。

     

如果您在远程符号服务器上使用符号,则可以改进   通过指定可以复制符号的本地目录来提高性能   至。为此,请在此目录的“缓存”符号中键入路径   框。如果要在远程计算机上调试程序,则缓存   directory指的是远程计算机上的目录。

     

单击“确定”。

那不起作用,我还是看不到我要加载的模块那么..我的朋友有什么想法吗?

19 个答案:

答案 0 :(得分:9)

要检查的另一件事是,要明确:确保将配置设置为“Debug”而不是“Release”。您可以在“发布”模式下调试启动项目,但不能在引用的类库中调试。

答案 1 :(得分:5)

在这种情况下神圣的三位一体:重建所有,重新启动VS,重新启动计算机。

  • 重建所有:确保一切都是最新的。如果它不起作用:
  • 重新启动工作室:在某些情况下,调试符号服务卡住了,不会刷新新编译的加载符号。在大多数情况下,重新启动VS将解决问题。如果不是:
  • 重新启动计算机:蛮力但有效。

此外,您应该检查是否构建了可调试程序集。

答案 2 :(得分:5)

我解决了这个问题,如下:

  • 转到项目属性页。
  • 在左侧转到构建标签。
  • 搜索/向下滚动至“生成序列化程序集”
  • 在本文前面有“高级...”按钮:点击它。
  • 确保您将调试信息设为完整
  • 点击确定即可完成。

答案 3 :(得分:2)

这通常意味着您尝试调试的程序集已过期(您的源代码与用于创建程序集的源代码不同)。我看到的一个问题是,如果解决方案由于错误而没有构建,但是您没有注意到并最终调试上次成功构建。确保所有项目都重建并成功完成。

答案 4 :(得分:1)

可能是解决方案配置已经失控。确保使用调试和调试信息检查配置

答案 5 :(得分:1)

停止并重新启动VS 2010的想法对我来说也是同样的问题。但是,我不得不打开一个不同的,不相关的解决方案,关闭那个并重新打开带有调试符号问题的解决方案。 一切都很好。 希望这会有所帮助。

答案 6 :(得分:1)

我解决了,答案可能不太好我非常肯定但说实话我必须卸载并重新安装应用程序。工作就像一个魅力。我知道,这需要花费很多时间,但我已经花时间尝试解决问题......

答案 7 :(得分:0)

遇到同样的问题我能够解决它 1.检查所有内容到源代码管理。 2.删除所有本地文件 3.从源代码控制中获取所有内容。

这解决了问题,现在解决方案似乎也更快。

答案 8 :(得分:0)

如果要打开由其他用户(例如教师)创建的代码,请确保.htm文件中的脚本与.js文件名匹配,即src="scripts/Objects.js",如果您的项目/文件名是Objects.js

答案 9 :(得分:0)

我刚遇到这个问题。

为了解决这个问题,我做了:

Build -> Clean
Build -> Build <Project Name>

然后我开始调试项目并正确加载符号。

答案 10 :(得分:0)

我有类似的问题,我在网络项目中使用了configtransform。即使我将configtransform设置为不删除编译debug = true,并且启用了定义DEBUG常量,但在某种编译模式下,我无法生成调试符号。

事实证明,有一些属性定义是否在csproj文件中生成调试符号。卸载项目并找到与compilationmode匹配的PropertyGroup元素。

然后确保PropertyGroup

中包含以下属性
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>

如果它是您想要使用Web部署发布的网站,我相信您还需要以下属性集。

<ExcludeGeneratedDebugSymbol>false</ExcludeGeneratedDebugSymbol>

答案 11 :(得分:0)

我在VS2012中遇到过这种行为,因为在工具中 - &gt;选项 - &gt;调试 - &gt;一般,&#34;托管C ++兼容模式&#34;被打开了。该项目混合了C#/ C ++ com interop。

答案 12 :(得分:0)

今天遇到同样的问题,尝试了这里建议的所有内容,但没有任何效果。无论如何,我的模块都没有出现在Debug-&gt; Modules窗口中。

然而,在放弃之后我发现了一些有趣的东西:在整个应用程序中导航时,一些模块开始在模块窗口中“即时”加载。我假设代码到达了需要这些模块的部分,并且Visual Studio是智能的并加载它们。

我相信这是从Visual Studio到按需加载模块的某种优化。实际上有点聪明,它只是让我花了一些令人沮丧的时间来发现它。因此,如果在启动调试器时查看Debug-&gt; Modules,则不会加载某些依赖程序集 - 即使您100%确定依赖项存在。

希望在我的情况下这有助于其他人。

答案 13 :(得分:0)

也许这对某些人有帮助......

今天我回到了几个星期前开始的解决方案,其中包含一个Web服务和一个测试应用程序。事实证明我已经将Web服务发布到另一台服务器(这是我忘记的但是VS没有那么有用地记住),这意味着在启动时测试应用程序在调试中运行但它正在调用远程Web服务

修复......

  1. 在测试应用程序项目中展开服务引用

  2. 右键单击Web服务引用,然后选择“配置服务引用”

  3. 在客户端区域中,将地址指向localhost,例如:

    http://localhost:51746/MyWebService.asmx
    

答案 14 :(得分:0)

所以我修好了,我知道这不是最好的解决方案,但它有效。由于这种行为非常奇怪,我不得不从头开始创建一个新的解决方案,然后创建我的所有项目/图层,然后逐个手动复制所有类,确保我可以调试每个项目。

就像那样,我花了1.5个小时,但我终于做到了。我知道,我知道,这根本不是解决方案,但它对我有用......

答案 15 :(得分:0)

这里有点晚了,但我只是用Google搜索了类似的问题,我直接来到这里。我使用的是VS2010(c ++),并且在发布版本中只出现了类似的问题。 我对加载符号的修复是要求VS2010创建并加载它们: - )

SolutionExplorer-&gt; ProjectName - 右键单击​​并选择“属性”。 在属性页面的顶部,确认您要更改属性的正确配置和平台,对我来说,我想要Release和x64。打开Linker-&gt; Debugging,在属性窗格中有一个选项来生成调试信息&#39; - 将其改为&#39;是&#39;。生成并加载重建和调试符号以进行调试。您可以为解决方案中的每个项目选择性地执行此操作。

希望它有所帮助。

[编辑]请注意,由于优化和可能的汇编代码重新排序在某些情况下没有意义的值。[/ EDIT]

答案 16 :(得分:0)

我有这个问题。我尝试了一切,重建所有,重新启动VS,重新启动机器等等。我终于想通了,问题非常烦人。调试下拉列表,包含&#34; Debug&#34;,&#34; Release&#34;显示&#34;调试&#34;我一直在解决这个问题。但是,它似乎正在尝试发布。它已经设置为Debug,我打开下拉菜单,选择Debug,然后再次启动并成功加载符号。 再次,这是在尝试重新启动计算机和一切之后。视觉工作室加载下拉列表默认为&#34; Debug&#34;但我还是要从下拉列表中选择它。 :@

答案 17 :(得分:0)

我刚刚遇到VS2013这个问题。

项目将构建,但模块面板中不会显示任何符号文件。

我结束了将源代码复制到另一个文件夹,然后通过git将项目回滚到以前的版本,然后仅复制源代码(没有项目,bin,obj等)。

然后清理并重建了Viola,符号又回来了,我没有丢失任何代码。

它必定已损坏项目文件或其他内容。

答案 18 :(得分:0)

在我的案例中,我在解决方案中有2个项目,一个NET Web App和一个类库(由Web App引用)。

问题:在两个项目(项目&gt;属性&gt;应用程序)中,我对程序集名称具有相同的值。我认为这在加载依赖项(类库项目)的PDB时会引起冲突。

解决方案:在Web App中更改Assembly的名称,清理并重建。