草庐IT

DEBUGGING

全部标签

c# - Visual Studio 中是否有击键来切换中断所有 CLR 异常,第一次机会?

要立即切换所有异常的中断,我必须:调试->异常单击“CommonLanguageRuntimeEceptions”旁边的Thrown列好的通常我想在遇到所有异常时停止,但在处理在主线情况下使用异常的代码时,我需要禁用该行为。有击键会很好。 最佳答案 没有内置方法可以做到这一点。但是,除非您使用的是VisualStudioExpress,否则您可以尝试此扩展:ExceptionBreaker,它对我有用。这个扩展的作用是提供一个工具栏按钮,基本上可以切换您在图片中显示的复选框。您可以像任何其他工具栏按钮一样为其分配击键。

c# - 升级 .NET Framework 后 VS2010 出现 "Unable to step. Process is not synchronized"错误

我在Windows7桌面上安装了VisualStudio2010,主要用于调试ASP.NET解决方案。一切都运行良好,直到其中一个Windows更新安装了新版本的.NETFramework。现在,当我尝试放置断点然后在我的C#代码中执行“调试器步骤”时,我收到以下消息:更糟糕的是,它不会一直发生。我试图找到任何模式,但我能描述的最好方式是零星的。知道如何解决这个问题吗? 最佳答案 我刚在VisualStudio2015中得到这个。我在一个单独的线程上调试,遇到断点但无法继续。重新启动并没有解决它。我删除了所有断点,重置了我真正想要的

c# - 在 Visual Studio 中解决 DisconnectedContext

当我使用VisualStudio运行我的应用程序时,我总是得到一个DisconnectedContext(托管调试助手)。鉴于谷歌和文档,当从其他线程调用STA上的COM对象时,可能会发生这种情况。但是,当弹出窗口出现时我查看所有线程时,我没有找到这样的东西。(而且我根本没有发现任何奇怪的地方)。关于如何找到引发DisconnectedContext的方式的一些想法? 最佳答案 在寻找相同答案时发现了这个,以为我会添加评论...在任何通过进程内互操作(在transient线程上)使用CLR对象的多线程应用程序中,此错误几乎是不可避免

c# - Visual Studio 符号缓存中的 D0C3BDDD4ADD4E87B2B5E803303B8D772 等目录名称是什么意思?

我在VisualStudio选项中将符号缓存目录设置为D:\symbols:在此目录中,VisualStudio创建了一个层次结构,其顶层目录与PDB文件名(例如ole32.pdb)相匹配,在下一层是一个或多个目录,例如D0C3BDDD4ADD4E87B2B5E803303B8D772(看起来像33位十六进制数),里面是PDB文件本身,大概是从MicrosoftSymbolServers下载的。我想这些十六进制数代表PDB文件的版本。我想知道,这些数字是否有任何结构或意义,以及如何从PDB文件中提取它们(理想情况下,使用C#)?给定某个其他文件夹中的PDB文件,是否可以在符号缓存中找到

c# - 使用 nuget 和符号服务器

一定是我做错了。我正在使用VS2012,C#。我正在使用nuget来管理我的包。以前我总是创建一个“外部引用”目录并自己管理包。我现在决定采用新的包管理方式。无论如何,nuget正在努力。我有它的设置,以便包不包含在svn(代码存储库)中,并且如果需要,可以下载丢失的包。一切正常,适用于我团队中的所有开发人员以及我们的TeamCity盒子。当我想调试这些包之一时(即进入包源),问题就来了。我已经根据这个link设置了符号源下载的VS2012.但是当我运行解决方案并想要进入包代码时,VS2012给我一个空白的表情并说找不到符号。在Fiddler中,我可以看到一大堆404。我期待下载我从n

c# - "The debugger cannot continue running the process."

我一直在搞乱VS2010调试设置,试图让.NETFramework正常工作。好吧,我无法让它工作。我也尝试过ReflectorVS插件,它曾一度有效。然后我随机开始收到这个错误:当我在调用IEnumerable.ToList()的行上设置断点时,这仅发生.如果我尝试单步跳过或单步进入我设置断点的那一行,我会收到此错误对话框并且我的调试session结束。如果我将断点移动到下面的行,调试器会使其通过ToList()打电话!我试过以下方法都无济于事:删除Reflector插件。在“工具”>“选项”>“调试”窗口中撤消我的更改(取消选中进入.NETFramework的选项;取消选中源服务器选

c# - 获取对象的完整字符串表示形式(如在 Visual Studio 的即时窗口中)

给定以下示例类:publicclassMyClass{publicstringS{get;set;}publicintI{get;set;}publicDateTimeD{get;set;}privatefloatF{get;set;}privatelongl;publicMyClass(){S="foo";I=42;D=newDateTime(2011,11,11);F=3.14f;l=12435;}}如果我在我的应用程序中有一个此类的实例myClass,请在Debug模式(VisualStudio2010)中单步执行代码,并在某些时候将myClass键入立即窗口,显示以下内容:{M

c# - Windows 服务/无法为堆栈创建新的保护页

我有一个Windows服务,每分钟做一些密集的工作(实际上它每次启动一个新线程,在其中它通过http同步到不同的系统)。问题是,几天后,它突然停止,没有任何错误消息。我已经安装了NLog并且我已经注册了AppDomain.CurrentDomain.UnhandledException。文本文件日志中的最后一个条目只是正常条目,没有任何问题。查看事件日志,我在应用程序日志中也找不到任何消息,但是,系统日志中有两个条目。基本上说服务已意外终止。而已。第二个事件(与第一个事件同时发生)说:“...无法为堆栈创建新的保护页...”根据我的阅读,这可能是堆栈溢出异常。我不解析任何XML,也不做

c# - 在 Visual Studio .NET 中调试动态加载的程序集

我正在使用C#和反射从程序集中加载和调用方法。我有程序集本身的源代码。我需要做什么才能让调试器进入(而不是结束)动态加载程序集的代码?如果我在....Invoke行上按F11,它只会越过它..谢谢 最佳答案 您是否将PDB文件与DLL置于同一位置,并从当前位置的源构建? 关于c#-在VisualStudio.NET中调试动态加载的程序集,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

c# - 泛型类上的 DebuggerDisplay

我在应用DebuggerDisplay时遇到问题通用类的属性:[DebuggerDisplay("--foo--")]classFoo{}[DebuggerDisplay("Bar:{t}")]classBar{publicTt;}检查类型为Bar的对象时我希望它显示为Bar:--foo--,但我得到Bar:{Foo}我做错了什么? 最佳答案 DebuggerDisplay属性不是递归的。字符串中的{}本质上表示计算此表达式并内联显示结果。计算内部结果的字符串时,就好像类型或成员的播放中没有DebuggerDisplay属性一样。这