Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何在Win7中调试登录屏幕保护程序?_Debugging_Windows 7_Screensaver_Windows Screensaver - Fatal编程技术网

Debugging 如何在Win7中调试登录屏幕保护程序?

Debugging 如何在Win7中调试登录屏幕保护程序?,debugging,windows-7,screensaver,windows-screensaver,Debugging,Windows 7,Screensaver,Windows Screensaver,我有一个.Net 2.0 WinForms应用程序,我正试图将其用作登录屏幕保护程序(64位Win7Pro)。当我登录并作为我的屏幕保护程序时,它可以从命令行正常运行。但是,当作为登录屏幕保护程序运行时,它会立即退出 我知道它得到了一个CLR异常,因为它的退出代码是0xE0434F4D,但我不知道如何调试它 在Win7中是否有调试登录屏幕保护程序的方法?您可以通过Visual Studio从远程计算机连接到进程进行调试 然而,可能有一个更简单的解决方案。WinForms应用程序有一个程序类。如果

我有一个.Net 2.0 WinForms应用程序,我正试图将其用作登录屏幕保护程序(64位Win7Pro)。当我登录并作为我的屏幕保护程序时,它可以从命令行正常运行。但是,当作为登录屏幕保护程序运行时,它会立即退出

我知道它得到了一个CLR异常,因为它的退出代码是0xE0434F4D,但我不知道如何调试它


在Win7中是否有调试登录屏幕保护程序的方法?

您可以通过Visual Studio从远程计算机连接到进程进行调试


然而,可能有一个更简单的解决方案。WinForms应用程序有一个程序类。如果在启动表单的程序类中的代码周围放一个Try--Catch短语,那么当应用程序崩溃时,您可以使用fullstacktrace记录异常。从那里,您应该能够更容易地确定问题(我猜是与权限相关的问题)并进行纠正。

如果您想调试登录屏幕,您需要附加一个内核调试器

msvsmon和其他程序不会从登录屏幕运行,因为没有用户会话(因为您尚未登录)

从内核调试器调试CLR会很有趣;可以从windbg获得一些基本的CLR调试,但这并不简单


您可以创建一个日志文件(或使用,这样可以避免大量的安全问题)来跟踪故障。

如何通过VS连接到远程计算机?VS不需要在运行屏幕保护程序的机器上运行吗?如果是,如何在不登录的情况下运行VS?请确保“Microsoft Visual Studio远程调试监视器”已安装并在需要调试的远程pc上运行(有关详细信息,请参阅)。在Visual Studio的调试下,选择“附加到进程…”。将传输设置为“远程(仅限本机,无身份验证)”,并将“限定符”设置为需要调试的pc的名称。问题是您的屏幕保护程序似乎立即退出。当您将调试会话设置为连接到屏幕保护程序进程时,它将早已消失。日志记录可能是您唯一的选择。您是否尝试获取日志记录?对.NET使用DumpType=2。@ThomasW.:我在寻找一种进行交互式调试的方法,而不是事后调试。