标签: visual-studio-debugging

有没有办法阻止Visual Studio打破特定方法中的异常?

我知道我可以控制Visual Studio根据类型处理异常的方式,以及最终使用"异常"对话框捕获异常的事实.

但是,ArgumentOutOfRange当我调用特定方法时,我有一个内部抛出(并捕获)异常的库 .抛出异常(并被库捕获)可能有1%的时间,但我正在调用这个方法.编辑说这是设计的(事实上,他们选择的设计是有道理的).

问题是每次抛出异常时我都不希望Visual Studio中断.

  • 我不想停止打破ArgumentOutOfRange异常,因为我可能在我的代码中有一些并想要打破这些.
  • 我不想启用"只是我的代码"调试,因为我担心我的代码之外抛出的异常(特别是出于性能原因)

有没有办法实现这个目标?我一直在研究属性(例如DebuggerStepThrough),但还没找到足够的东西.

关于如何做到这一点的任何提示?

debugging exception visual-studio-2010 visual-studio visual-studio-debugging

12
推荐指数
1
解决办法
1977
查看次数

设置Visual Studio的"附加到进程"对话框中显示的"标题"值?

在Visual Studio中选择"调试/附加到处理"时,显示的对话框具有"标题"列.默认情况下,它显示属于该进程的主窗口的标题.例如,它可能会显示"这是一个黑暗和暴风雨的夜晚 - 记事本".

如何为没有主窗口的应用程序(例如Windows服务)设置此字段?

我有多个服务使用相同的可执行文件名运行,我希望能够在附加时轻松区分它们.

windows windows-services visual-studio visual-studio-debugging

12
推荐指数
1
解决办法
715
查看次数

在Visual Studio调试中扩展IEnumerable Results View的快捷方式

当我在Visual Studio中调试(直到2012)并将鼠标悬停在变量上以探索所有属性时,我明确需要按下扩展结果视图将枚举IEnumerables的IEnumerable按钮.

如我一般 遗憾地懒惰一个超级高效的编码器我希望有一种快捷方式,比如双击或热键.有没有?

很远的距离

更新

@Alex Essilfie在Uservoice上提出了一个建议.按照此链接的VS2013发布前投上一票!

debugging ienumerable visual-studio visual-studio-debugging

12
推荐指数
1
解决办法
3826
查看次数

在C#中按Start后,我在开始时遇到Source Not found错误

我在Visual Studio C#中遇到了一个非常奇怪的问题,当我按下Start或{F5}键运行我的数据库应用程序时,我收到"Source not available"错误,

"此模块的调试信息中缺少源信息""您可以在"反汇编"窗口中查看反汇编.要始终以反汇编方式查看缺少的源文件,请更改"选项"对话框中的设置.

我做了干净的解决方案,然后重建它,但它仍然存在,我附上图片和调试>>调用堆栈窗口,如果有人遇到这种问题,我将非常感谢他们的帮助.

供你参考:

这纯粹是一个数据库项目,我使用Visual Studio C#.net和MS SQL Server 2008R2,没有别的.

我知道它发生通常当有调试问题,建立后缺少信息等

如果你真的放大你会看到我们正在看mscorlib,我真的不知道如何处理这样的错误,

谢谢,

在此输入图像描述

.net debugging mscorlib visual-studio-debugging visual-studio-2012

12
推荐指数
2
解决办法
5986
查看次数

将 Visual Studio 调试器与在 Kubernetes 中运行的 ASP.NET Core Web 应用程序一起使用?

我们的团队希望能够针对已部署到我们内部 Kubernetes 集群的 ASP.NET 应用程序实例运行 Visual Studio 调试器。我需要弄清楚如何完成拼图,但我对 Visual Studio 2019 不是很熟悉。

  • Docker 映像使用官方 .NET Core 映像编译,并且 /vsdbg 填充了最新版本(不支持 --attach)。
  • Visual Studio 适用于我的 Docker 桌面。
  • Kubectl 已正确配置。我可以使用 Docker Desktop 附带的 kubernetes 集群或我们内部的 kubernetes 集群进行测试。
  • Azure 目前不是一个选项。我从文档中了解到,这是微软更喜欢我做的。

我应该如何配置 Visual Studio 才能做到这一点?

c# visual-studio visual-studio-debugging kubernetes

12
推荐指数
1
解决办法
1736
查看次数

如何阻止Visual Studio创建pdb调试文件夹?

我不确定是什么改变了,但是,在我的解决方案是Visual Studio的目录中创建调试文件夹.

以下是一些正在创建的文件夹和文件:

System.Web.Http.pdb/EA80649BB72046E989099D4826726FH83/System.Web.Http.pdb
System.Web.pdb/CG58649BB72046E989099D4826726BHEWL/System.Web.Http.pdb
System.Transactions.pdb/FD28649BB72046E989099D4826726BV8F/System.Web.Http.pdb
System.Xml.pdb/5NIL649BB72046E989099D48267267CD1/System.Web.Http.pdb
Run Code Online (Sandbox Code Playgroud)

是否有一个设置我可以更改以阻止创建这些文件夹?它使我的解决方案目录变得混乱.

debugging visual-studio visual-studio-debugging visual-studio-2012

11
推荐指数
1
解决办法
5788
查看次数

Visual Studio调试器未附加到Unity

我在使用Visual Studio的调试器连接到Unity时遇到问题 - 在VS中编辑和编译脚本工作正常 - 但是,当单击"附加到Unity"或"附加到Unity和播放"时,代码会编译但不会发生任何其他情况.如果所有构建都是最新的,那么按钮什么都不做.我可以手动启动Unity内部的游戏,它运行最新的代码,但它没有附加到VS调试器.

我在我的PC上安装了Unity 5.3.5,Unity 2.2.0.0的Visual Studio工具和Visual Studio Community 2015.所有Unity工具都出现在Visual Studio(附加到Unity等)中.

Tools > Attach To Unity Debugger里面VS带来了统一的编辑器打开的情况下的正确的列表,但选择一个不重视它.正如我在这里建议的那样,我尝试使用127.0.0.1作为IP端点,但这仍然无效.我通过防火墙设置允许Unity和VS无济于事.

Unity Help > About还显示了Visual Studio Tools For Unity版本号,因此它知道插件的存在.

我加载VS via devenv.exe /log以查看是否有任何奇怪的事情发生 - 日志看起来很好并且Unity Tools已正确加载.(如果有任何用途,日志就在这里.)

我已经在VS,Unity和VS Tools for Unity上进行了修复重新安装,这是漫长而艰巨的,但一无所获.

我正在努力让它发挥作用 - 按"附加到Unity"并看到它确实没什么,甚至没有错误信息真的很令人沮丧.我觉得我必须遗漏一些东西 - 任何想法/建议/解决方案都将不胜感激

unity-game-engine visual-studio visual-studio-debugging unityvs unity5

11
推荐指数
2
解决办法
5042
查看次数

在VS2015中,如何为自动实现的属性禁用Step Into?

我刚刚开始使用Visual Studio 2015,发现在调试自动实现的属性时,它与VS2012/VS2013的行为不同.

假设我在类中定义了一个属性:

public int MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

即.一个自动实现的属性,其中getter和setter由编译器有效生成.

我稍后可能会引用此属性,作为方法调用的一部分,例如:

{
    DoSomeStuff(MyProperty);
}
Run Code Online (Sandbox Code Playgroud)

如果我想调试调用DoSomeStuff并在该行上放置一个断点,然后等待它被命中,F11进入调用,VS2015调试器现在进入getter for MyProperty(在以前的版本中,用于自动实现的属性) ,它会忽略getter和setter).

我发现了一篇博客文章,描述了将自动获取器和设置器上的断点作为新功能的能力,我可以看到在某些情况下这可能有用.但是,在我的情况下,我对断点或步入这些方法不感兴趣,特别是因为我们的代码库有许多自动实现的属性,并且对它们的访问通常是嵌套的(例如DoSomeStuff(X.Y.Z)).

简而言之,是否可以在VS2015中为自动实现的属性禁用新的Step Into行为,如果是,如何?

(我注意到调试选项中的"跳过属性和运算符"复选框,但我不想跨越所有属性getter/setter,只是那些用于自动实现属性的属性.)

c# debugging visual-studio-debugging visual-studio-2015

11
推荐指数
1
解决办法
2045
查看次数

Visual Studio 无法附加到 coreCLR。访问被拒绝

我在 Dot.net Core 2.0 中创建了一个控制台应用程序,当我运行时,我收到无法附加到 CoreCLR 的消息。访问被拒绝

在此输入图像描述

我尝试过清理、删除 bin 和 obj 中的文件,也尝试在 86x 下运行,但找不到解决此问题的任何方法。

visual-studio visual-studio-debugging .net-core coreclr

11
推荐指数
2
解决办法
8502
查看次数

如何打包和部署带有符号和源代码的 NuGet 包,以便调试器可以使用该源代码?

我从 .net 框架 Visual Studio 类库项目创建了一个非常简单的 NuGet 包,其中类库源在 C# 中。

我使用这个命令来创建 nuget 包:

nuget pack MyProject.csproj -symbols -Properties "Configuration=Debug" -suffix debug
Run Code Online (Sandbox Code Playgroud)

正如我所料,它创建了两个 nuget 包文件,即:

  • MyProject.1.0.0-debug.symbols.nupkg
  • MyProject.1.0.0-debug.nupkg

除了带有“符号”的包包括 lib 层次结构中的 pdb 文件和 src 文件夹中的源文件之外,这些包基本上是相同的。

鉴于重复,我将文件重命名MyProject.1.0.0-debug.symbols.nupkgMyProject.1.0.0-debug.nupkg,这会覆盖其中一个文件,这没什么大不了的。我现在有一个传统命名的包,其中包含 PDB 和源文件。

我将其部署到内部文件共享提要:

nuget add MyProject.1.0.0-debug.nupkg \\InternalShare\FeedFolder
Run Code Online (Sandbox Code Playgroud)

在一个完全不同的项目和不同的解决方案中,我现在使用 NuGet 包管理器在 Visual Studio 中使用该 NuGet 包。一切都很好。并且代码也能正常工作,在我的例子中,我制作了一个简单的控制台应用程序,它使用了包中的几个类,并且我已经证明它可以正确使用它们并且没有发生任何事故。

到现在为止还挺好。

现在我在消费代码中设置一个断点,并尝试进入源代码调试包。它似乎工作正常,但实际上,它没有进入随包分发的源代码。它实际上从包的创建开始进入原始源代码,在我的机器上完全不同且不相关的文件夹层次结构中。

好的。所以现在我在没有原始源的单独计算机上重新创建我的简单控制台应用程序。在那台单独的计算机上,它位于内部网络上,因此可以访问文件共享,我使用 NuGet 包,再次,一切都编译并正常工作。

但是,当我尝试进入 Visual Studio 调试器中的包源代码时,它根本不起作用。调试器无法找到源代码,即使它就在包文件夹中。(调试器提供反汇编代码——不是很有帮助)。

这似乎应该是一个常见的用例,并且希望在 nuget 包中包含符号和源代码,所以我必须做一些愚蠢的事情,以至于调试器找不到源代码。

各种版本的东西:

  • Visual Studio:专业版 2017 15.9.11
  • VS 中安装的 NuGet 包管理器:4.6.0
  • CLI NuGet 版本:4.8.1.5435
  • 我的示例代码的目标 …

c# visual-studio visual-studio-debugging nuget visual-studio-2017

11
推荐指数
2
解决办法
4213
查看次数