断点当前无法命中。未加载任何符号。

14

我在VS 2012中遇到了断点问题,已经苦恼了好几个小时。我有Eclipse的背景,在那里从未听说过这样的问题。

问题:

当前无法命中断点。本文档尚未加载任何符号。

我将断点放置在Jqueryclick动作中。

enter image description here

使用IE脚本调试发现问题,加载的文件是旧文件,即使我进行了很多修改,在IE中加载的文件中也看不到任何更改。如何解决这个问题?

我尝试过的:

我知道这个问题是重复的,但对于对VS和C#新手来说,我无法理解旧答案。例如,在此答案中,他建议选择“调试 -> 窗口 -> 模块”。但是在VS 2012中我没有在窗口下找到模块选项。即使我读了,我也无法理解解释。

此外,我对程序集PDB这个术语还很陌生。虽然我像他说的一样找到了PDB文件,但是如何打开.pdb文件呢?

需要: 有人能用更容易理解的语言(并提供更多解释)为我解释同样的答案吗?


1
这似乎与C#无关,而是与使用Visual Studio调试JavaScript有关。 - Theodoros Chatzigiannakis
这会有很大的区别。PDB和程序集对JavaScript不相关。 - H H
检查 ASP.NET 开发服务器实例是否在 VS 不在运行模式(ctrl f5)下仍在运行。如果是,则停止开发服务器并重新运行解决方案。 - tariq
2
在浏览器中按下Ctrl+F5开始。 - H H
显示剩余4条评论
9个回答

7
我在使用VS2012和ASP.NET MVC时意外发现了这一点,希望能帮助到某些人。我注意到像这样嵌入在*.cshtml文件中的javascript代码的断点不会被触发(请注意,这个文件是一个cshtml文件):

enter image description here

但是,在外部的*.js文件中设置的断点将会被触发:

enter image description here


我目前遇到了一个外部的*.JS文件问题,所以显然情况并不那么简单。 - Mike Fulton
@MikeFulton,真遗憾,听到这个消息很沮丧。因为很难依赖浏览器的开发者工具,所以这很令人沮丧。几个月前我在一个使用React.js的项目上工作,我几乎完全使用Chrome的React调试器插件,因为VS没有什么帮助。 - James Toomey
可以运行,谢谢。这是正确的答案。 - Amir978

6

这对我来说很有帮助:

在您的Web应用程序中,请确保启用了SilverlightASP.NET调试器。

如何做到这一点?

=>右键单击Web应用程序=>属性=>Web选项卡。 在调试器部分,确保启用了SilverlightASP.NET


这对您进行JavaScript调试而不涉及任何实际的Silverlight有用吗? - Mike Fulton
1
我正在使用VS 2017。ASP.NET调试器已启用,但Silverlight未启用。我启用了Silverlight,我的断点被触发了!我上一次提到“Silverlight”,更别说使用它了,是在2008年。感谢这个提示! - Dave D

6
尝试在$.getJSON之前添加debugger;关键字,并确保如果您使用IE,则取消选中禁用脚本调试。 在Internet选项>高级选项卡>浏览下方。 我认为这个问题与Javascript调试有关,而不是C#。

5

我发现在运行Visual Studio 2013或Visual Studio 2015 RC时,若要使.js文件中的断点生效,需要满足以下两个条件:

  1. 我需要通过右键单击VS快捷方式并选择“以管理员身份运行”来启动Visual Studio。(如果在任务栏图标上右键单击,则从弹出菜单中选择应用程序快捷图标,并右键单击它以获取包括“以管理员身份运行”在内的上下文菜单。)

  2. 我需要将Internet Explorer设置为将在Web调试会话中打开的默认浏览器。如果我选择Chrome或Firefox,则断点对我不起作用。


我在使用VS 2017时遇到了这个问题。这个方法对我有用。 - james2code

3
在打开和关闭 VS 软件、重启 PC 后仍然没有改善的情况下,这个解决方法适用于我在 VS 2012 (Ver 11.0.50727.1 RTMREL) 中的应用程序:
在项目属性页面下的启动选项中,在调试器一栏下,只有ASP.NET是被启用的。当我启用Native CodeSQL Server后,那个红色圆圈内部带加号的符号重新启用了。 不知道为什么这个方法起作用!在项目中既没有在服务器资源管理器中连接任何活动,也没有使用任何本地代码!

2
我也曾遇到过同样的问题。你可以使用VS2017来调试JS代码。当你设置VS启动浏览器(例如Chrome),它会打开一个新的Chrome窗口。我试图在一个新标签页中调试特定的代码(与打开的窗口不同的URL),所以在VS中出现了“断点当前无法命中。已设置断点但尚未绑定”的情况。
后来我发现,如果我在原始标签页中打开新的URL,它就突然奏效了。看起来VS与特定的标签页有关系。
希望这能帮到你。以下是我的具体情况:VS 2017 - 主要是C#代码,其中嵌入了一些HTML/JS需要调试,Chrome(版本68.0.3440),Windows 10。

1
作为JavaScript代码,您需要使用JavaScript调试器。通常,互联网浏览器配有调试器/检查器菜单,可以轻松检查/调试您的JavaScript。此类调试器具有许多有用的功能,例如HTTP请求/响应检查、浏览器会话/本地存储等。

3
但这是JavaScript?为什么(以及如何)需要编译? - dumbledad

0
实际上有“模块”选项,但只有在调试模式下才能启用。 当您处于调试模式时,可以按Ctrl+D、M组合键。 简而言之,PDB是一个包含有关您的程序集的所有调试信息的文件,如果没有此文件,您将无法调试程序集。程序集是一个包含预编译代码以通过CLR执行的文件。 您能否提供有关您问题的更多信息?例如,您正在尝试调试哪种类型的应用程序? 此外,如果您已经找到了专门为您的程序集制作的pdb文件,则可以通过右键单击模块窗口中的程序集并选择从符号路径加载符号来加载它们。

4
这与JavaScript调试有何关联?由于JavaScript文件在运行时被解释而不是编译,因此它们没有汇编或PDB。 - Mike Fulton

0

尝试删除所有断点并在Visual Studio中重新启动调试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接