2016-04-28 213 views
7

如何让我的断点工作?符号被创建,但调试永远不会停在断点

在调试模式下运行的C#控制台应用程序时,我得到这个消息:

enter image description here

断点目前不会受到打击。对于本文档,没有符号已被加载 。

下面是此问题相关的其他规格:

的Microsoft Visual Studio专业版2015年更新14.0.25123.00 2 Microsoft .NET Framework版本4.6.01055

安装的版本:专业

ASP.NET和Web Tools 2015.1(Beta8)14.1.11106.0 ASP.NET和Web 工具2015.1(Beta8)

的ASP.NET Web框架和工具2012.2 4.1.41102.0有关其他 信息,请访问:http://go.microsoft.com/fwlink/?LinkID=309563

的ASP.NET Web框架和工具2013 5.2.40314.0有关其他 信息,请访问http://www.asp.net/

代码对齐12.1代码对齐可帮助您精美地呈现代码 ,增强清晰度和可读性。

CodeMaid 93年1月10日CodeMaid是一个开放源代码的Visual Studio扩展 清理和简化我们的C#,C++,F#,VB,PHP,PowerShell中,R,JSON, XAML,XML,ASP,HTML,CSS,LESS ,SCSS,JavaScript和TypeScript 编码。

常见的Azure工具1.7提供通用服务以供Azure使用 移动服务和Microsoft Azure工具。

ConfigurationTransform 1.3在 构建过程中自动转换app.config。转换完成后,它将在没有扩展名的其他 构建机器上运行。

GitHub.VisualStudio 1.0一个Visual Studio扩展,将 GitHub Flow带入Visual Studio。

JavaScript语言服务2.0的JavaScript语言服务

的JavaScript项目系统2.0的JavaScript项目系统

JetBrains ReSharper的详情终极10.0.2建立104.0.20151218.120627 JetBrains ReSharper的详情终极包为Microsoft Visual Studio。对于 有关ReSharper Ultimate的更多信息,请访问 http://www.jetbrains.com/resharper。版权所有©2016 JetBrains,Inc.

Microsoft Azure移动服务工具1。4个微软Azure移动 服务工具

Node.js的工具1.1.31117.00增加支持在Visual Studio中开发和调试 的Node.js应用

Node.js的工具 - 分析信息节点1.1.31117.00分析支持。 js 项目。

NuGet包管理器3.4.3 NuGet包管理器在Visual Studio中。 欲了解更多关于NuGet的信息,请访问http://docs.nuget.org/

的NuGet参考1.0节省时间,可以通过管理的NuGet权从Solution Explorer packages.config

抢占分析可视化1.2的Microsoft Visual Studio的 扩展到从抢占 分析产品可视化聚合摘要引用 。

SQL Server数据工具14.0.60311.1 Microsoft SQL Server数据工具

了StyleCop 4.7提供源代码的风格和一致性的工具。有关更多详细信息,请参阅 https://github.com/Visual-Stylecop/Visual-StyleCop

打字稿1.8.30.0打字稿工具Visual Studio的

这里是我的调试设置:

enter image description here enter image description here enter image description here enter image description here enter image description here

这里是我的项目设置:

enter image description here enter image description here enter image description here

下面是我使用的包:不涵盖的NuGet

<package id="EntityFramework" version="6.1.3" targetFramework="net452" /> 
    <package id="log4net" version="2.0.3" targetFramework="net452" /> 
    <package id="Magnum" version="2.1.3" targetFramework="net452" /> 
    <package id="MassTransit" version="2.9.9" targetFramework="net452" /> 
    <package id="MassTransit.Log4Net" version="2.9.9" targetFramework="net452" /> 
    <package id="MassTransit.MSMQ" version="2.9.0" targetFramework="net452" /> 
    <package id="Newtonsoft.Json" version="6.0.6" targetFramework="net452" /> 

其他参考资料:

enter image description here

  1. 该解决方案由2个项目ects:consoleProject,classLibraryProject。
  2. consoleProject引用classLibraryProject。
  3. 当去调试 - >窗口 - >模块classLibraryProject我收到消息“无法找到或打开PDB文件
  4. 当手动建立PDL for classLibraryProject并将其移动到bin \ Debug for consoleProject ,然后我得到符号状态为“加载符号”。**但是,断点并不符合。**
  5. 是的,我确定代码被触发是因为代码的副作用是可见的

如何让我的断点工作?

+6

我几乎觉得如果你还没有经历过这个问题,那么你还没有去过硬敲门的学校。我一直得到这个。我通常只是猛烈地摇动我的机器,直到它决定工作。 –

+0

我猜你清理了整个解决方案,重建并重新启动VS? –

+0

@MattiasÅslundyes的确是 –

回答

-1

确保您的配置设置为调试,而不是发布。

试试这个,如果上面是正确的:工具 - >选项 - > Debugging->符号并选中“Microsoft符号服务器”

+0

是的,那已经 –

1

你有我为试图解决这一问题的同情。当我和我的比设置,我觉得在调试2个差异|一般:

  1. 检查:在模块加载禁止JIT优化
  2. 取消选中:加载DLL出口

第一个可以解决您的问题。

1

这可能发生的原因有很多。我有同样的问题,其中一个可能的解决方案是删除所有的.pdb和.idb文件

2

我刚刚创建了新的控制台app +类库。请确保控制台应用程序对类库引用(如图像)

enter image description here

我写的,因为我没有看到你的屏幕。

比PLZ右击解决方案,并选择“属性...” 你会看到水木清华这样的: enter image description here 检查配置+平台是平等的为您的项目和复选框“构建”都被选中。如果复选框被后您的解决方案的“干净的构建”中选择,然后你会看到水木清华一样,在colsole应用程序的bin \ Debug文件夹:

enter image description here

请注意,类库有2个文件(突出显示屏幕):dll + pdb。在这种情况下,dll + pdb处于同步状态,您的breakepoints将在类库代码中工作。

如果您在构建之后没有类库项目的pdb文件,那么您可能对类库的引用不是VS项目的参考。请检查您是否正确添加引用(就像上图):

enter image description here

切勿在类库的dll文件直接通过“浏览”对话框引用。

您可以检查您的控制台应用程序正确refenced在类库项目 - 请打开编辑控制台应用程序的csproj文件,寻找关于参考:

enter image description here

如果你有不良refence(上一个.dll文件):

enter image description here

不是删除VS通过上下文菜单参考,并添加正确的。

我希望能帮到你。

1

您是否尝试取消选中调试>常规>需要源文件以与原始版本完全匹配的选项?

+0

我没有,但为什么我会? –

+0

有时源代码不同,然后在调试时将代码加载到bin中,所以它妨碍了调试,你可以试试这个。 – Rajdeep

+0

非常有趣。将尝试让你知道 –

1

只是大声思索,我遇到了以下意味着没有调试: 这些是一般情况,并不特定于任何环境。

  • 系统内存不足,所以JIT不进入调试模式。尽可能增加服务器的内存设置。
  • 部署不会以某种方式替换旧版本,绕过构建脚本并手动删除人工制品。创建一个新的人工制品并手动部署。
  • 构建脚本不覆盖旧的类/二进制文件,这些文件来自maven样式缓存或其他仓库。删除对这些文件的任何引用,然后重试。
  • 正在构建类,但这些类未包含到最终对象中,再次删除最终对象并调整构建脚本以删除此错误。
  • 版本控制(某些服务器)不允许部署新的制造品,确保每次部署时增加版本并重试。
  • 您正在部署的服务器不是您要连接到每个调试会话的位置,无论是错误的端口还是其他侦听问题。停止服务器以查看会话是否确实在您认为的位置。
  • 另外从版本控制来看,如果您的日期过时的产品与服务器日期不符 - 那么例如在一小时后,它可能不会再部署或部署将不稳定。

如果我想到别人,我会在这里发帖。

1

我以前在框架代码中遇到过这个问题。试试这个:

  1. 进入调试 - >窗口 - >断点
  2. 在断点窗口中,单击新建 - >歇在功能
  3. 输入完全限定的方法名。

这应该至少让你在方法开始的时候有一个断点,然后你可以继续。

请注意,我总是收到一条错误消息,告诉我使用此技术时断点不起作用。但它仍然有效。

请注意,我确实加载了有效符号,因此请务必使用您的设置,告诉您符号已加载。

0

我在不久之前就遇到过这样的问题......而且我不确定我执行的哪些事情实际上解决了问题。

但我可以告诉的是,我发现(尽管packages.config条目看起来确定)几个(!)使用的库不在正确的.net版本(在我的情况下为net461)。

我使用了一个名为的工具,目标框架迁移器来解决这个问题。您可以通过Tools => extensions and updates => Online => Visual Studio Gallery

然后在搜索字段中输入Target Framework Migrator

我确实记得,在我尝试修复问题的过程中,我也将.Net升级到了4.6.1 ......也许您也可以试试这个......但是在任何情况下为您自己的库运行Target Framework Migrator (并在路上重新启动VS 2015)绝对值得一试。

祝你好运!

-1

有了这样这是非常值得清洁液异常(包括手动删除bin和OBJ文件夹,然后重新启动。

1

我不知道你在哪里连接到这两个进程。Visual Studio中默认会只重视以启动项目。看来,consoleProject是你的启动项目。当你开始调试consoleProject使用Debug菜单并选择"Attach to Process..."并选择对应classLibraryProject的过程。断点现在将可用。

Ctl+Alt+P是快捷键为此。

相关问题