【问题标题】:visual studio 2010 breakpoint no symbols have been loadedVisual Studio 2010断点没有加载任何符号
【发布时间】:2011-10-12 01:10:45
【问题描述】:

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

我已阅读此论坛和 Microsoft 等其他来源的所有可能解决方案。如果我转到菜单 Debug -> windows -> Modules 我要调试的那些不在列表中。

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

指定符号文件所在的目录

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

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

在符号页面上,有一个说明符号文件 (.pdb) 的框 地点。方框上方是四个图标。

点击文件夹图标。

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

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

如果你在做远程调试,符号文件和符号服务器 托管代码的缓存必须位于远程计算机上。象征 本机代码的文件和符号服务器缓存必须位于 本地计算机。

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

点击确定。

那没用,我仍然看不到要加载的模块,所以..朋友们有什么想法吗?

【问题讨论】:

  • 请不要使用JPEG截图。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这种情况下的三位一体:全部重建,重新启动VS,重新启动计算机。

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

    此外,您应该检查您是否正在构建发出可调试程序集。

    【讨论】:

    • 您忘记了清理,并删除了所有临时文件。大声笑
    • 尝试修复而不是修补!
    【解决方案3】:

    我解决了这个问题:

    • 转到项目属性页面。
    • 在左侧转到 Build 选项卡。
    • 搜索/向下滚动到“生成序列化程序集”
    • 在此文本前面有“高级...”按钮:单击它。
    • 确保您的调试信息为完整
    • 点击确定就完成了。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        可能是解决方案配置出了问题。确保您使用调试并且检查了配置的调试信息

        【讨论】:

          【解决方案6】:

          我解决了,我很确定答案可能不是很好,但说实话我不得不卸载并重新安装应用程序。像魅力一样工作。我知道,这需要很多时间,但我已经花时间尝试解决问题,所以......

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

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

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

              【讨论】:

                【解决方案9】:

                遇到同样的问题,我可以通过 1. 将所有内容检查到源代码管理中。 2.删除所有本地文件 3. 从源代码管理中获取一切。

                这解决了问题,而且解决方案现在似乎也构建得更快了。

                【讨论】:

                  【解决方案10】:

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

                  【讨论】:

                    【解决方案11】:

                    我刚遇到这个问题。

                    为了修复它,我做了:

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

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

                    【讨论】:

                      【解决方案12】:

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

                      原来csproj文件中有一些属性定义是否生成调试符号。卸载项目,找到与编译模式匹配的PropertyGroup元素。

                      然后确保您在 PropertyGroup 中具有以下属性

                      <DebugSymbols>true</DebugSymbols>
                      <DebugType>full</DebugType>
                      <Optimize>false</Optimize>
                      

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

                      <ExcludeGeneratedDebugSymbol>false</ExcludeGeneratedDebugSymbol>
                      

                      【讨论】:

                        【解决方案13】:

                        我在 VS2012 中有这种行为,因为在工具 -> 选项 -> 调试 -> 常规中,“托管 C++ 兼容模式”已打开。该项目是混合 C# / C++ com 互操作。

                        【讨论】:

                          【解决方案14】:

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

                          但是,在放弃之后,我发现了一些有趣的事情:在浏览整个应用程序时,一些模块开始在“模块”窗口中“动态”加载。我假设代码到达了需要这些模块的部分,并且 Visual Studio 很智能并加载了它们。

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

                          希望这对我遇到的其他人有所帮助。

                          【讨论】:

                            【解决方案15】:

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

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

                            修复...

                            1. 在测试应用项目中扩展服务引用

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

                            3. 在客户端区域,将地址指向本地主机,例如:

                              http://localhost:51746/MyWebService.asmx
                              

                            【讨论】:

                              【解决方案16】:

                              这里有点晚了,但我刚刚用谷歌搜索了一个类似的问题,然后我就直接来到了这里。我正在使用 VS2010(c++) 并且遇到了类似的问题,即只有在 Release 版本中才能看到的错误。 我加载符号的解决方法是要求 VS2010 创建和加载它们:-)

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

                              希望对你有帮助。

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

                              【讨论】:

                                【解决方案17】:

                                我遇到了这个问题。我尝试了一切,全部重建,重新启动VS,重新启动机器等。我终于弄清楚了,这个问题非常烦人。在我解决此问题的整个过程中,包含“调试”、“发布”的调试下拉菜单显示“调试”。但是,它似乎正在尝试发布。已经将其设置为 Debug,我打开下拉菜单,选择 Debug,然后再次启动并成功加载符号。 同样,这是在尝试重新启动计算机和所有内容之后。并且 Visual Studio 加载默认为“调试”的下拉列表,但无论如何我必须从下拉列表中选择它。 :@

                                【讨论】:

                                  【解决方案18】:

                                  我刚刚在 VS2013 上遇到了这个问题。

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

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

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

                                  它一定是损坏了项目文件什么的。

                                  【讨论】:

                                    【解决方案19】:

                                    在我的解决方案中,我有 2 个项目,一个 NET Web 应用程序和一个类库(供 Web 应用程序引用)。

                                    问题:在两个项目(项目 > 属性 > 应用程序)中,程序集名称的值相同。我认为这导致在为依赖项(类库项目)加载 PDB 时发生冲突。

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

                                    【讨论】:

                                      猜你喜欢
                                      • 2016-09-24
                                      • 2012-01-10
                                      • 2021-09-28
                                      • 2023-02-22
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2013-08-19
                                      • 2011-06-13
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多