首页 >> 宝藏问答 >

常用的程序调试方法(windows程序调试)

2022-09-26 18:57:01

问题描述:

常用的程序调试方法(windows程序调试),蹲一个热心人,求不嫌弃我笨!

最佳答案

推荐答案

2022-09-26 18:57:01

大家好,小金来为大家解答以上的问题。常用的程序调试方法,windows程序调试这个很多人还不知道,现在让我们一起来看看吧!

1、第一方法:这种方法其bai实说起来不叫调试,也是du一种笨办法,就zhi是用MessageBox把一些程序的中间dao信息输出来,方便你找出程序是在哪个地方出问题了,你也可以在try catch中使用,用MessageBox把异常弹出来,这种方法也比较直观。

2、可惜,实现起来也有问题。

3、我们首先要添加using System.Windows.Forms;的引用,然后加上一行代码MessageBox.Show(ex.ToString(),"Error");本以为这样说行了,可是把服务重新编译生成,并安装启动后,它并没有弹出框来。

4、百思不得其解。

5、幸好,在服务的程序里面,启用了系统的日志,它会把相关的异常记录到系统日志中去,在“计算机管理”的“事件查看器”里面可以找到。

6、果然发现了一个,clip_image002显示的信息是“当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体是无效操作。

7、请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。

8、”直接百度,找到了一个答案,原来是调用MessageBox时,还需要设置它的MessageBoxOptions属性为DefaultDesktopOnly。

9、修改如下:MessageBox.Show(ex.ToString(),"Error", MessageBoxButtons.OK, MessageBoxIcon.Information,MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);然后再次重新编译,安装并启动,OK,顺利的弹出了错误的信息。

10、第二种方法:第二种方法就是真正的调试,其实Windows服务还是可以调试的,应该说任何一种类型的程序都应该能调试,别人在开发编译器的时候就人考虑到的。

11、下面来看具体的方法。

12、我们知道,任何一个程序都有一个对应的进程,如果你的Windows服务启动后,也会有一个对应的进程。

13、通过任务管理器,就能看到。

14、我们可以通过VS编译器里面,提供的“附加到进程”这个功能来进行调试。

15、首先你打开你的Windows服务源程序,在里面设置一个断点,例如在OnStart方法中protected override void OnStart(string[] args){}中,然后把你的服务启动,启动过后,在VS的“调试”一栏中找到“附加到进程”clip_image004在进程列表里面找到你的进程,clip_image006如果没有的话,就把左下角的“显示所有用户的进程”前面的勾选中,然后你就可以找到你的Windows服务的进程了,然后点击确定即可。

16、点击确定后,可能你等了半天,也没看见它命中断点。

17、哈哈,不要急,前面说漏了一点,我们是先启动的服务,然后再附加的进程,因为服务一启动,就会执行OnStart方法,这时,我们还没有把这个服务的进程附加到VS中去呢?所以在OnStart方法中设置的这个断点肯定不会命中。

18、所以我们需要想个办法,也就是加一个定时器,我们在OnStart方法中启动这个定时器,然后设置这个定时器的时间间隔为1分钟,然后在这个定时器的事件中去设置一个断点。

19、这样把服务重新生成,安装并启动后,把这个进程附加到VS中去,1分钟过后,你就会看到,它命中了断点。

20、不过有一个前提就是,你必须在1分钟内把这个进程附加到VS中去,否则的话,它还是命中不了。

21、如果还有问题的话,就检查一下,看你的Windows服务是不是在Release模式下生成的,如果是的话,要把它改成在Debug模式下生成。

22、详细的说明,可以参考这篇文章Windows服务(附服务开发辅助工具)。

本文到此分享完毕,希望对大家有所帮助。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章
  • 【第四色777米奇影院】总结:“第四色777米奇影院”是一个结合了网络文化、影视资源与娱乐元素的平台名称,虽...浏览全文>>
  • 【手字组词有哪些】“手”是一个常见的汉字,具有丰富的含义和广泛的使用范围。在汉语中,“手”不仅可以表示...浏览全文>>
  • 【手字怎么组词】“手”是一个常见的汉字,结构简单、含义丰富,在汉语中使用频率极高。它既可以表示人体的一...浏览全文>>
  • 【手字旁肩是什么字】“手字旁肩是什么字”是一个常见的汉字疑问,许多人在学习汉字时会遇到这样的问题。其实...浏览全文>>
  • 【手字开头的成语】在汉语中,有很多以“手”字开头的成语,这些成语不仅富有文化内涵,而且在日常生活中也常...浏览全文>>
  • 【手字开头成语接龙】成语接龙是一种有趣的语言游戏,既能锻炼思维能力,又能加深对成语的理解。以“手”字开...浏览全文>>
  • 【手字第4笔为什么叫弯钩】在汉字书写中,每一笔画都有其特定的名称和写法。以“手”字为例,其笔画顺序为:横...浏览全文>>
  • 【手字成语有哪些】“手”是一个非常常见的汉字,在汉语中常用来形容与手相关的动作、能力或状态。很多成语中...浏览全文>>
  • 【第二次也很美剧情简介】《第二次也很美》是一部讲述女性成长与情感选择的都市情感剧,故事围绕女主角夏小正...浏览全文>>
  • 【第二次也很美简介】《第二次也很美》是一部以女性成长与情感为主题的都市情感剧,讲述了一位中年女性在经历...浏览全文>>