Tag: visual studio debugging

这是如何导致无限循环的?

我保留的一些遗留代码卡在无限循环中(因此我自己似乎在一个); 但我无法弄清楚为什么/怎么做。 这是应用程序的入口点,它实例化主窗体(frmCentral): 代码展览A. public static int Main(string [] args) { try { AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledException += new UnhandledExceptionEventHandler(GlobalExceptionHandler); string name = Assembly.GetExecutingAssembly().GetName().Name; MessageBox.Show(string.Format(“Executing assembly is {0}”, name)); // TODO: Remove after testing <= this one is seen IntPtr mutexHandle = CreateMutex(IntPtr.Zero, true, name); long error = GetLastError(); MessageBox.Show(string.Format("Last error int was {0}", […]

在Visual Studio中关闭表单后调试不会停止

当我关闭用C#编写的表单时,Visual Studio Debug不会停止。 当我关闭表单时,如何停止调试过程。 我在表单关闭事件中添加了Application.Exit()方法,但它不起作用。 谢谢。

为什么Visual Studio Debugger不会枚举BitArray并向我显示结果?

对于以下C#代码行: BitArray bitty = new BitArray(new[] {false, false, true, false}); 如果我在Watch窗口中评估“bitty”,我看不到集合的成员。 如果我评估“bitty,results”,它应该枚举IEnumerable并显示结果,我会收到消息“只有可枚举的类型可以有结果视图”,即使BitArray是一个IEnumerable。 为什么调试器会这样做? CLARIFICAITON:我问的是VS Debugger Expression Evaluator中发生了什么,而不是询问如何在调试器中查看BitArray。

Visual Studio 2015 Debug在multithreading应用程序中不起作用

在我的项目中,我有很多代码应该在一个单独的线程上执行而不会阻塞UI。 当调试器命中此代码中的断点时,VS2015会冻结5-10秒。 之后,如果我尝试继续调试(通过按Step Over,Step In或Continue),应用程序将从暂停状态进入工作状态,调试工具正在滴答作响,但没有任何反应,CPU利用率为0%。 如果我按Break All然后,在Application.Run( new Form1() );显示“光标”(不知道正确的术语Application.Run( new Form1() ); 在Program.cs中Main()是。 由于我对C#很新,我认为我的multithreading方法存在一些问题,但显然它发生在我尝试的任何地方 – 使用async / await与Tasks,使用BackgroundWorker组件或简单的new Thread(myFunc).Start() 。 只是要清楚。 代码本身非常好用。 调试器本身也可以工作,在主线程中的断点上没有冻结和“死锁”。 如果我从主线程启动代码 – 一切都很好。 我还在一个简单的for ( int i = 0; i < Int32.MaxValue; ++i )函数的全新解决方案中检查了它 – 同样的问题。 还检查了不同版本的.NET:4.6,4.5,4.0。 到处都是。 这个问题既没有出现在VS2010(我之前使用过)中,也没出现在VS2013中(我试图确保它是VS2015的问题)。 但是 ,我的朋友使用相同的VS2015也没有这个问题。 编辑:每个请求,测试表的代码,我不断得到问题。 只有三个按钮,标签和BackgroundWorker。 整体方案类似于主项目的代码。 public partial class Form1 : Form { […]

无法在global.asax / Application_Start中断

我在Application_Start()的第一行有一个断点,但Visual Studio不会破坏它。 Visual Studio已将自己附加到IIS工作进程: 自动连接到机器’SRD00510’上的'[2092] w3wp.exe’处理成功。 我在家庭控制器中的断点确实有效。 更新 我试过了: iisreset 重启视觉工作室 重新启动。 试图重新安装aspnet( aspnet_regiis -i )

如何以相同的C#解决方案从“StartUp”项目以编程方式启动第二个项目?

我有两个项目的C#VS 2012解决方案:ProjectA和ProjectB。 为简单起见,这两个项目都是控制台应用程序。 需要先启动ProjectA,然后将其设置为解决方案的“启动项目”。 当我在调试器下运行带有F5的ProjectA时,需要执行一些操作,之后它应该在同一个调试器下启动ProjectB。 因此,如果我在ProjectB的第一行设置断点,调试器应该会中断。 有什么方法可以做到这一点吗? 目前我使用Process.Start(“path_to_projectB.exe”)但需要替换为“Process.StartUnderSameDebugger(”path_to_projectB.exe“)”。 我想使用为ProjectB启动ProjectA的VS调试器的相同实例。 请注意,我不想在Visual Studio中使用“启动多个项目”选项。 如果我这样做,两个控制台应用程序同时启动(这是不需要的)和同一调试器(这是想要的)。 第一个进程必须执行一些东西才能启动第二个进程,这就是我不能使用这种方法的原因。 此外,当我稍后停止调试时,应关闭两个进程(来自ProjectA和ProjectB的控制台应用程序)。

为什么我的断点在Visual Studio中重复?

我最近开始在Visual Studio 2010中遇到断点问题。当我设置断点然后开始调试时,另一个断点会出现在附近的其他行上。 下面的屏幕截图显示了我设置断点后的编辑器以及断点窗口: 一旦我开始调试,断点就会重复,如以下屏幕截图所示: 为什么会这样,我怎么能阻止它呢?

即使DebugType = full,也无法在发布模式下调试应用程序

我们正在为Release构建解决方案,但是当尝试使用studio 2010 professional进行附加时,没有线程显示任何堆栈信息,也不能设置任何断点等。 目标是能够将Visual Studio / JIT调试器附加到正在运行的进程,同时具有尽可能多的优化优势。 我们的大多数搜索都归结为“使用debug编译:完全”并且您将能够进行调试,但似乎并非如此,我认为JIT在运行时优化代码,因此我们无法调试,是这是真的? 是否有可能编译并告诉JIT淡化优化并允许调试? (同时保留其他优化) UPDATE 使用@HansPassant的答案,我查看了模块并看到虽然pdbs与二进制文件位于同一目录中,但实际上没有加载调试符号。 我也看到我的库标记为’用户代码’ – ‘否’,这可能是它没有自动加载的原因。 通过手动加载符号并禁用“just-my-code”,我还能够设置断点并查看堆栈。 现在问题:为什么我的代码没有标记为用户代码? 这是正常的行为吗? 我可以通过某种方式将其配置到我的程序集以避免这种情况吗?

如何在Visual Studio 2017中调试.NET 4.6框架源代码?

这是我尝试过的: 在Visual Studio 2017中创建了一个新的控制台应用程序(.NET Framework)。 添加了以下代码: static void Main(string[] args) { new Dictionary().TryGetValue(3, out int x); //I want to step into TryGetValue() (this is just an example) } 配置此处列出的设置: https : //blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/ 已确认的符号将加载到“模块”窗口中: mscorlib.dll已加载符号。 4.6.1586.0构建者:NETFXREL2 尝试:“踏入(F11)” 尝试:“步入特定”| “System.Collections.Generic.Dictionary.TryGetValue” 两者都只是跨过了界限。 我尝试使用以下详细信息配置VS: http : //www.symbolsource.org/Public/Home/VisualStudio 同样的结果,调试器跨越了这一行。 我在这里看了答案: https : //stackoverflow.com/a/12432029/297451 但是这个版本似乎不是安全更新,搜索“site:support.microsoft.com/kb 4.6.1586.0”不会产生任何结果。 我究竟做错了什么?

如何在Debug中显示ToString()

我想在调试模式下让ToString()显示我控制下的类。 当你用鼠标hover在一个变量上时,这是第一个出现的东西。 这有属性吗?