c# - breakpoint中文 - visual studio断点窗口




我该如何补救“断点不会被击中。 没有符号被载入这个文件。“警告? (20)

Microsoft Visual Studio Express 2013版中不存在“开始调试,调试+ Windows +模块”选项。

在工具选项调试中取消选中“使用托管兼容模式”修复此问题。

C#桌面应用程序快速版。 然后工作5秒钟后不工作。

我尝试了以下。

  • 确保在所有组件上设置调试配置,调试标志和完整调试信息。
  • 从我的整个机器上删除所有bin和obj文件夹以及与该项目相关的所有DLL。
  • 重新创建导致问题的项目。
  • 重启。

我在解决方案中有两个WinForms项目。 其中一个加载调试信息,一个不加载。 他们都参考了我试图在项目文件中以完全相同的方式获取调试信息的程序集。 有任何想法吗?

我想在这里添加,主要是为了我自己,当我回来审查这个问题时,只有在程序集被加载之后才加载符号,程序集在需要的时候才加载。 如果断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,符号将不会被加载(并且会显示断点未被命中)。


Debug > Windows > Modules来查看正在加载的模块使我朝正确的方向发展。

在我的情况下,IIS Express似乎正在从临时的ASP.NET文件加载不同的DLL。

解决方案?

  1. 浏览到C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. 删除此目录中的所有内容!

发生这种情况后,复制粘贴另一个webservice asmx文件到一个现有的web服务中,导致在尝试调试最近添加的服务时出现同样的错误,为了能够调试我必须在没有调试的情况下启动,然后附加到进程。 它的奇怪,但它是我发现能够调试的唯一方法。


只是简单的尝试 - 你可能已经尝试过了。 右键单击解决方案资源管理器中的解决方案,单击“清理解决方案”,这将删除与解决方案关联的所有编译和临时文件

重建解决方案并尝试再次调试。

我在解决方案中也遇到了多个项目的断点问题 - 一些编译为x86,一些编译为x64。


在Debug / General设置中禁用“Just My Code”选项。


在Hans K上发布这个修复,我在类似的线程>> HERE <<上找到

右键点击解决方案 - >属性

查看Common Properties - > Startup Project

选择多个启动项目

选择需要调试的项目上的“启动”操作。


对于ASP.Net应用程序,请检查该站点的属性,ASP.NET选项卡。 确保选择了正确的ASP.NET版本。


尝试在Windows中以管理员身份运行Visual Studio。


您需要在编译器设置中启用“生成调试信息”


我也有同样的问题,我在x86(或x64)中重建整个解决方案(包括参考项目)

尽管我将所有项目都从Configuration Manager(Build-> ConfigManager)设置为x86,但我的一些项目werent设置为x86。

所以只要确保右键点击project-> properties-> Debug Tab,验证配置和平台。


我们找到了我们问题的原因。 此代码使用.aspx文件的Page指令中的“CodeBehind”属性而不是“CodeFile”属性(ASP.NET 2.0及更高版本)。 经过几天的绝望,一个简单的搜索和替换解决了这个问题。


我可以通过简单地将'附加到进程'中的选项设置为'自动确定要调试的代码的类型'来修复错误,如附图所示。

只需按照以下步骤操作:

  • 从菜单栏转到调试
  • 点击附加到进程
  • 在“ 附加到”选项附近,单击“ 选择”按钮
  • 选择代码类型窗口将出现
  • 现在选择自动确定要调试的代码类型选项,然后单击确定按钮。


我尝试了所有这些,无法让我的突破点工作......

我做了什么来解决这个问题

在我的断点未击中的页面中,我选择了文件夹>添加现有项目,然后从其保存路径中选择页面。 这使得中断点开始工作。


我正在使用VS10将一个C#应用程序与一个静态库集成 - 这是我的新手。 我写了一个托管代码DLL来连接它们。 除了静态库之外,我可以在任何地方设置断点。 我收到了上述消息 - 没有为此文档加载符号。 我尝试了上面的许多建议。 我可以看到符号没有被加载。 我终于注意到一个复选框配置调试,启用非托管代码调试。 这允许我在静态lib函数中设置断点。


有时候,即使它给你这个错误, breakpoint仍然会被打到,所以只要忽略错误。 这在MVC web appViews中经常发生。


检查您的bin / Debug文件夹中是否缺少.pbd文件。 如果是,然后转到项目的“属性”,选择“生成”,然后在底部选择“高级”。 在出现的新窗口的“调试信息”下选择“全部”。 这是我的问题,并为我解决了它。


这些答案都没有解决我的问题。 我尝试了另一件事,因为停止的项目实际上并不是已加载的项目。 我发现Hans Passant写道,我想停止调试器的.dll文件以及在.exe文件附近复制的关联.pdb文件。 这些文件有一个较旧的日期,所以我认为他们没有在运行时更新。 我手动删除它们,Visual Studio创建另一个对,并将这个新对放在.exe附近。 现在,breakpoins的作品!

也许Visual Studio不能在.exe附近复制和替换现有文件(.dll和.pdb),因为那里有另一个文件。 所以,如果我手动删除,VS可以创建一个新的附近.exe。

我认为另一个更改(检查等等 - 来自另一个答案)触发了一些事情,并将Visual Studio复制并将项目文件夹中的dll和pdb替换为exe附近的文件夹,因此这是一个解决方案。

我认为问题的根本原因是Visual Studio在运行时使用另一个文件,没有项目中的文件,停止。

也许这个答案可以帮助别人!


这花了我一段时间尝试了上面的其他选项,并出于一些奇怪的原因调试停止工作。

工具 - >选项 - >调试 - >常规 - >(不使用)“要求源文件完全匹配原始版本”


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


项目属性(然后选择你的构建配置)>构建选项卡>高级...>调试信息(下拉菜单)

设置为'all'或'pdb-only',然后重建







breakpoints