Tag: 调试

.NET会停止调试运行finally块中的代码吗?

好吧,我已经阅读(并了解到)finally块并不总是执行其代码(甚至除了拔插头之外)。 仅供参考。有关更多信息,请参阅try catch finally问题 但是,我没有找到: 当我停止调试器时,我的finally块是否被执行? 谢谢!

起源不明的故障转储

我的应用程序崩溃跟随CallStack出错(来自WinDbg): ntdll!ZwWaitForMultipleObjects+0xa KERNELBASE!WaitForMultipleObjectsEx+0xe8 kernel32!WaitForMultipleObjectsExImplementation+0xb3 clr!WaitForMultipleObjectsEx_SO_TOLERANT+0x91 clr!Thread::DoAppropriateAptStateWait+0x56 clr!Thread::DoAppropriateWaitWorker+0x1b1 clr!Thread::DoAppropriateWait+0x73 clr!CLREvent::WaitEx+0xc1 clr!CLREventWaitWithTry+0x5c clr! ?? ::FNODOBFM::`string’+0x6286a clr!AssemblySecurityDescriptor::UpgradePEFileEvidenceToAssemblyEvidence+0x11d clr!Assembly::ExecuteMainMethod+0xcb clr!SystemDomain::ExecuteMainMethod+0x452 clr!ExecuteEXE+0x43 clr!CorExeMainInternal+0xc4 clr!CorExeMain+0x15 mscoreei!CorExeMain+0x41 mscoree!CorExeMain_Exported+0x57 kernel32!BaseThreadInitThunk+0xd ntdll!RtlUserThreadStart+0x1d 这是一个托管应用程序,根据WinDbg,有61个进程/线程从该应用程序运行。 在WinDbg中,当键入!threads时,它表示没有找到导出线程。 它没有说明是什么错误造成的(在Visual Studio 2010中,它表示NullReferenceException)。 我很疯狂,我认为这与USB串行控制器有关,但我把它放到另一个应用程序中,它仍然崩溃(尽管不像之前那样100%,而是80%)。 这个exception/错误完全没有我,我无法弄清楚如何解决它。 使用.loadby sos clr更新: 0:000> !threads ThreadCount: 23 UnstartedThread: 0 BackgroundThread: 17 PendingThread: 0 DeadThread: 4 Hosted Runtime: no PreEmptive Lock ID OSID ThreadOBJ State GC […]

从即时窗口执行方法

当应用程序未运行时,可以在Visual Studio中从即时窗口执行静态方法。 特定 namespace Handyman { public class Program { static void Main(string[] args) { } static string SayHello(string name) { return string.Format(“Hello {0}!”, name); } } } SayHello静态方法可以使用即时窗口执行 ?SayHello(“Miki Kola”) 语法并将消息返回到即时窗口。 我想知道是否可以使用相同的技术在对象上执行方法? 当然,您必须首先创建对象。 特定 namespace Handyman { public class NiceTooMeetYou { public string NiceToMeetYou(string name) { return string.Format(“It is nice to meet you {0}!.”, […]

C#,调试HTTPHandler

我有一个HTTP处理程序,它是我们应用程序90%的入口点。 基本上它获取请求,处理大量数据并返回一个非常具体的文件,具体取决于它所嵌入的客户端和网页等。我已经设置了应用程序映射,以便所有.kab扩展指向C:\ Windows。 .. \ aspnet_isapi.dll 。 我将我的HttpHandler DLL添加到我的网站的BIN目录中。 当我尝试浏览测试页面时,iFrame会显示404. 我在设置HttpHandler时是否遗漏了一些内容? 至于调试我的代码,我已尝试附加,但我一直在页面上收到404错误,它从不进入我的代码。 在调试模式下绑定项目的最佳实践方法是什么? 测试的基本设置(一台机器上的所有本地): Windows XP Pro上的IIS 5.1 – 运行简单的default default.aspx: VS2005以附加模式运行到INETINFO.EXE进程。

以编程方式确定是否通过调试器启动.NET WinForms应用程序

我想知道是否有一种编程方式在运行时确定应用程序是通过调试器启动还是启动已安装的应用程序版本。 我的应用程序目前正通过ClickOnce部署。 当应用程序在调试模式和生产模式下运行时,我想要更改某些设置。 我知道构建配置解决方案 – 我很好奇是否有一种编程方式来确定这些信息 谢谢

在C#中捕获调试输出

是否可以在C#中捕获调试输出(创建调试监听器)? 我想拥有像DebugView这样的function,但我想将调试输出记录到SQL Server。 或者更好的方法是将DebugView日志记录到文件,然后将文件提供给SQL Server? 我已经实现了TraceListener并将其添加到Debug.Listeners集合中,但它似乎只从我的应用程序捕获调试。 我想要做的是从所有应用程序捕获调试。 有没有办法做到这一点?

非常奇怪 – 当我使用断点时,代码(使用Random)的工作方式不同

我正在研究一个神经网络项目,我有两个这样的类: public class Net { // Net object is made of neurons public List Neurons = new List(); // neurons are created in Net class constructor public Net(int neuronCount, int neuronInputs) { for (int n = 0; n < neuronCount; n++) { Neurons.Add(new Neuron(n, neuronInputs)); } } } public class Neuron { public int index; […]

调试时静态变量初始化程序的运行时评估中的奇数

当我从Visual Studio内部启动它时,我的应用程序正常运行,附带调试器(F5)。 但是当我在没有附加调试器(Ctrl-F5或启动.exe文件)的情况下启动应用程序时,我总是得到一个StackOverflowException ,幸运地记录在Windows事件日志中。 有问题的代码如下: namespace Caliburn.Micro.Contrib { public static class FrameworkExtensions { public static class ViewLocator { static readonly Func<string,object, IEnumerable> _baseTransformName = Micro.ViewLocator.TransformName; public static void EnableContextFallback() { Caliburn.Micro.ViewLocator.TransformName = FallbackNameTransform; } static IEnumerable FallbackNameTransform(string typeName, object context) { var names = _baseTransformName(typeName, context); if (context != null) { names = names.Union(_baseTransformName(typeName, null)); […]

在VS2008中的Windows x64上调试x86 .NET应用程序

我使用x64版本的Windows 7.我的应用程序使用一些无法在x64上下文中加载的COM服务器(通常是本机x86 COM服务器)。 所以我决定使用WOW将其作为x86应用程序运行,因此我将平台目标设置为x86。 但是当我尝试调试它时,Visual Studio 2008调试器开始显示所有源文件的“源文件不同……”之类的消息。 这种行为的原因是什么? 这个问题诞生于那里“源文件不同……”消息在Visual Studio 2008中是在x64 Windows上调试x32应用程序的结果 更新 :我清理解决方案,重建解决方案,删除obj,bin等文件夹,重新启动计算机,重新安装Visual Studio …那么,还有什么可能是问题? Update2 :如果您创建新的Windows应用程序项目并将目标平台更改为x86,您将看到此问题。 但如果从项目中删除Settings1.settings,麻烦将被消除! 。 任何的想法? Update3 : http : //social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bc297668-65b4-46e8-969e-c7a6340d33b6

在执行重建之前不会发生更改

我有一个大型的Windows应用程序。 最近,当我对源代码进行任何更改并正常运行项目时,无论是否进行调试,都不会进行更改。 我试图重建它,一切都很顺利,现在我对源代码所做的每一次更改都要重建项目然后运行它以便更改生效。 在重建解决方案之前,我也无法调试。 我的项目附在源安全控制上。 任何帮助表示赞赏。