问题标签 [visual-studio-debugging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
442 浏览

visual-studio-2008 - VS2008 : 在 Debug 上启动一个外部程序

我有一个包含三个项目的解决方案:

  1. 是通过串行端口连接的设备的控制台(GUI 应用程序)。
  2. 串行端口仿真(控制台应用程序、自托管 WCF 服务)。
  3. 通用接口。

要调试,我启动 SerialPortEmulator,然后调试 (F5) 主项目。

两个问题:

  1. 启动模拟器需要额外的击键。
  2. 我需要记住在编译之前停止模拟器(以防有重大更改)。

问题:理想情况下,我希望模拟器项目在调试时启动,并在调试停止时终止。有没有简单的方法可以做到这一点?

我可以在不同的解决方案中使用模拟器,但是我需要确保接口定义库始终保持同步。

0 投票
1 回答
2357 浏览

.net - 在引用的 XSL 模板中使用程序集编写脚本

有两个 XSL 文件。一个包括另一个使用<xsl:include>. 主模板根据节点值决定调用哪些实际模板,包含的模板包含实际的转换规则。这里没什么特别的。

但包含的文件有一个脚本块:

user:escape() 函数稍后在包含的模板中使用。

现在,我使用 VS2008 XSLT 调试器。

主模板调用<xsl:apply-templates>和包含的模板执行。并且出现 FileNotFound 异常,“无法加载文件或程序集 'MyEscaper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件。”

现在,如果我只转到包含的文件并像它是一个独立的模板一样执行它,而不是包含在任何东西中,那么一切正常。找到程序集并调用函数,但显然结果没有意义,因为模板设计为包含。

那么问题来了——为什么在包含模板的情况下系统找不到程序集?

更多信息

文档指出“程序集路径名称被解析两次 - 一次在编译期间,一次在执行期间。” 如果我故意在路径中打错字,我会得到相同的 FileNotFound 异常,但格式不同,系统说它找不到file://C:\Absolute\Path\MyEscaper.dll。但是,当路径正确时,该异常声称它找不到MyEscaper.dll, version=blabla, public token=null,并且该异常发生在由 .Net 创建的 CompiledStylesheet.dll 中。我相信已编译的样式表被告知按名称而不是 href 调用程序集,并且由于它不在其临时文件夹中,因此调用失败。

为什么这样?绝对路径在哪里以及为什么会(错误地)转换为相对路径,我该如何控制它?

0 投票
1 回答
95 浏览

dependency-injection - 如何调试基于依赖注入的 CodeCampServer 之类的代码?

我的项目结构类似于 CodeCampServer 结构等。 UI.dll、Core.dll 和 DependencyResolution.dll 具有 UI.dll 和 core.dll 的依赖关系。

在 web.config 中,我使用 DependencyResolution.dll 中的 HttpModules 来实例化所有依赖项,因此我无法在 VS2008 中运行此应用程序,因为 UI.dll 没有对 DependencyResolution.dll 的引用(我可以'不要引用它,因为正如我已经说过的 DependencyResolution.dll 已经引用了 UI.dll),因此我失去了以常规方式调试此应用程序的机会,即步入代码。

我想也许我可以尝试使用附加到进程功能,并在 localhost IIS(Windows 7 机器上的版本 7)上调试应用程序,但不幸的是它没有按预期工作。当发生错误时,VS 不会突出显示代码,我也无法介入。

我的问题是调试此类应用程序的最佳方法是什么(CodeCampServer 就是一个很好的例子)。

0 投票
4 回答
25537 浏览

c++ - OpenCV cvLoadImage() does not load images in visual studio debugger?

I am trying to work out a simple hello world for OpenCV but am running out of ideas as to why it is not working.

When I compile and run this code:

I get a grey box about 200x200 instead of the indicated .jpg file. If I use a different jpg I get the same kind of window, and if I put an invalid filename in, I get a very tiny window (expected).

I am using Visual Studio 2008 under Windows 7 Professional.

Most of the sample programs seem to work fine, so I am doubly confused how that code loads the sample jpgs just fine but in the code above it does not work (even tried the sample jpeg).

Update

The executables produced by compiling work fine, however the Visual Studio 2008 debugger loads a null pointer into img every time I try to run the debugger - regardless if the file location is implicit or explicit.

0 投票
4 回答
6722 浏览

visual-studio - 在VS2010的断点处冻结所有线程

我正在使用 VS2010 Beta 2 来调试一些多线程代码。喜欢并行堆栈等。

不过,我有一个问题:我在一个可能被多个线程调用的方法中设置了一个断点。一旦我遇到断点,我真的很想将注意力集中在触发该断点的线程上。但是,当我点击“step”时,VS 经常切换到另一个线程(比如我在线程 1 上停止,但与此同时,线程 2 遇到了我的断点)。

我知道我可以在线程窗口中手动冻结线程。有没有办法自动做到这一点——基本上,一旦我遇到断点,冻结除当前线程之外的所有线程,直到我点击 F-5?

0 投票
1 回答
932 浏览

asp.net-mvc - ASP.NET MVC 2 发行版的实际调试符号

我需要来自已发布版本的 ASP.NET MVC 2(通过 Web 平台安装程序安装的版本)的实际调试符号。

我知道我可以从中下载源代码、构建和使用调试符号。但是这种方法有几个问题:

  • 要求使用此版本的 DLL 重新构建所有其他依赖项,因为它没有签名。如果您使用不提供源代码的 3rd 方库,这是不可行的。
  • 来自最新源的构建版本与发布版本不匹配(可能是因为单独签名的差异)。所以我不能引用那个.pdb。
  • 我不希望依赖于自定义构建或任何构建,而不是从标准安装中安装的构建。

我只需要调试符号,这样我就可以在不引入不同 dll 的情况下单步调试源代码。我尝试使用公共 Microsoft 符号服务器,但它没有下载此 dll 的符号。

有人知道这个 .pdb 是否存在吗?

(我知道可以使用较新版本的 Reflector 生成并单步执行此 dll - 但这是专业版的,现在要花钱。)

0 投票
2 回答
3993 浏览

visual-studio-2010 - 为什么字典调试可视化工具在 Visual Studio 2010 中用于 Silverlight 调试的用处不大?

我在刚刚安装的 Visual Studio 2010 中进行调试,并尝试在快速查看窗口中查看字典。我看到了键和值,但深入研究显示了计数和非公共成员,非公共成员继续跟踪,我从未在字典中看到值。我可以运行 test.Take(10) 并查看值,但我为什么要这样做。我不再安装 VS 2008 进行比较,但似乎我可以更轻松地调试字典。为什么现在是这个样子?它只是我在我的机器上以某种方式设置的设置吗?

测试代码:

编辑:我刚刚在控制台应用程序中尝试了相同的调试,它按预期工作。另一个项目是 Silverlight 4 应用程序,为什么它们不同?

控制台调试屏幕截图

Silverlight 4 调试屏幕截图

编辑:来自 Microsoft Connect 的回复:“这是我们的一个遗漏 - 我们之前已经为 Visual Studio 2008 SP1 修复了这个确切的问题,但不幸的是,这个修复没有移植到 Visual Studio 2010 代码库。现在再次修复(这个好时机!)我们正在考虑在 VS2010 SP1 中发布此修复程序。

Alex Turner Program Manager Visual Basic and C# Compiler”所以应该很快就会修复。

编辑:我刚刚在 SP1 中仔细检查了它,它工作正常。

0 投票
5 回答
35512 浏览

c# - 无可用来源

我不确定发生了什么,或者我是否做了任何事情。现在,无论何时我尝试调试它都会说所有 BCL 内容都没有可用的源例如,在 debug.print 上,我收到该消息

查找 'f:\dd\ndp\fx\src\CompMod\System\Diagnostics\Debug.cs' 的源代码。校验和:MD5 {40 74 18 44 a8 15 28 2e 54 75 5e 40 d1 5f 6a 0}

文件 'f:\dd\ndp\fx\src\CompMod\System\Diagnostics\Debug.cs' 不存在。

在脚本文档中查找 'f:\dd\ndp\fx\src\CompMod\System\Diagnostics\Debug.cs'...

在项目中查找“f:\dd\ndp\fx\src\CompMod\System\Diagnostics\Debug.cs”。在项目中找不到该文件。

查看目录 'C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\'...

查看目录 'C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\'...

查看目录 'C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\src\atl\'...

查看目录 'C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\'...

活动解决方案的调试源文件设置表明调试器不会要求用户查找文件:f:\dd\ndp\fx\src\CompMod\System\Diagnostics\Debug.cs。

调试器找不到源文件“f:\dd\ndp\fx\src\CompMod\System\Diagnostics\Debug.cs”。

这种情况现在一直在发生,我:

  1. 没有 F:
  2. 启用 .net 框架源步进未选中

是否有其他一些鬼鬼祟祟的设置可以让这些消息消失?

0 投票
0 回答
386 浏览

visual-studio - 如何使用针对不同框架版本构建的 Visual Studio 调试器可视化工具?

我编译了 Visual Studio 2010 示例中的 ExpressionTreeVisualizer 项目,但是当我尝试在 .NET 3.5 项目中使用它时,出现以下异常:

无法加载文件或程序集 'file:///C:\Program Files (x86)\Microsoft\Visual Studio 2010\Common7\Packages\Debugger\Visualizers\ExpressionTreeVisualizer.dll' 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

示例项目将 TargetFrameworkVersion 设置为 v4.0,将其更改为 v3.5 并构建它现在可以在我的项目中使用。

我更改了源代码和项目文件并重新构建了它,这样我现在就有了两个表达式树可视化器,一个用于 v3.5 项目,一个用于 v4.0 项目。有没有更好的办法?

谢谢!

0 投票
1 回答
334 浏览

debugging - 为什么启用 Just My Code 后 VS2010 会寻找框架源代码?

谷歌搜索这会产生很多关于如何逐步执行框架代码的条目。我试图找出如何不介入。

首先检查:是的,在工具->选项->调试中检查了“仅启用我的代码”。这应该可以防止 VS2010 在您单步执行框架函数(或其他任何您没有源代码的情况下,据我所知)时查找源代码。)

它不是。我正在尝试使用 F11 单步执行我的代码,并且,如果我粗心并且当我到达库中的函数时不切换到 F10(以跳过函数调用),那么它会抛出一个对话框询问该调用的源在哪里,当我取消它时(因为我没有源),它会中止我的调试,我必须重新开始。

我怎样才能避免这种行为。据我了解文档,这不是它应该工作的方式。当它不起作用时,我们去哪里寻求支持?