这种方法其实说起来不叫调试,也是一种笨办法,就是用MessageBox把一些程序的中间信息输出来,方便你找出程序是在哪个地方出问题了,你也可以在try catch中使用,用MessageBox把异常d出来,这种方法也比较直观。可惜,实现起来也有问题。我们首先要添加using System.Windows.Forms的引用,然后加上一行代码MessageBox.Show(ex.ToString(), "Error")本以为这样说行了,可是把服务重新编译生成,并安装启动后,它并没有d出框来。百思不得其解。幸好,在服务的程序里面,启用了系统的日志,它会把相关的异常记录到系统日志中去,在“计算机管理”的“事件查看器”里面可以找到。果然发现了一个,
显示的信息是
“当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效 *** 作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。”
直接百度,找到了一个答案,原来是调用MessageBox时,还需要设置它的MessageBoxOptions属性为DefaultDesktopOnly。修改如下:
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)
然后再次重新编译,安装并启动,OK,顺利的d出了错误的信息。
第二种方法:
第二种方法就是真正的调试,其实Windows服务还是可以调试的,应该说任何一种类型的程序都应该能调试,别人在开发编译器的时候就人考虑到的。下面来看具体的方法。
我们知道,任何一个程序都有一个对应的进程,如果你的Windows服务启动后,也会有一个对应的进程。通过任务管理器,就能看到。
我们可以通过VS编译器里面,提供的“附加到进程”这个功能来进行调试。首先你打开你的Windows服务源程序,在里面设置一个断点,例如在OnStart方法中protected override void OnStart(string[] args){}中,然后把你的服务启动,启动过后,在VS的“调试”一栏中找到“附加到进程”
在进程列表里面找到你的进程,
如果没有的话,就把左下角的“显示所有用户的进程”前面的勾选中,然后你就可以找到你的Windows服务的进程了,然后点击确定即可。
点击确定后,可能你等了半天,也没看见它命中断点。哈哈,不要急,前面说漏了一点,我们是先启动的服务,然后再附加的进程,因为服务一启动,就会执行OnStart方法,这时,我们还没有把这个服务的进程附加到VS中去呢?所以在OnStart方法中设置的这个断点肯定不会命中。所以我们需要想个办法,也就是加一个定时器,我们在OnStart方法中启动这个定时器,然后设置这个定时器的时间间隔为1分钟,然后在这个定时器的事件中去设置一个断点。这样把服务重新生成,安装并启动后,把这个进程附加到VS中去,1分钟过后,你就会看到,它命中了断点。不过有一个前提就是,你必须在1分钟内把这个进程附加到VS中去,否则的话,它还是命中不了。
如果还有问题的话,就检查一下,看你的Windows服务是不是在Release模式下生成的,如果是的话,要把它改成在Debug模式下生成。
od有多个含义,具体如下:1、OD:吸光度
OD是Optical Density的缩写,表示光密度.OD是当光经过一个样本时,部分光会被吸收。所以物理学或化学上,人们更喜欢用吸光度(Absorbance)表达现象.在光谱学,透光率是出射光和入射光强度的比。
2、OD:组织发展
组织发展(OD)是由于现代世界的科技、市场、环境等快速变迁,组织必须改变组织成员的认知、态度、价值观及组织本身的结构的机构。以适应新挑战,面向整个组织系统。其目的乃在维持与更新组织生命力。简述组织发展体系,阐述其理论和应用及其发展趋势。
3、OD:交通出行量
OD调查即交通起止点调查又称OD交通量调查,OD交通量就是指起终点间的交通出行量。“O”来源于英文ORIGIN,指出行的出发地点,“D”来源于英文DESTINATION,指出行的目的地。
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17548.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17549.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17550.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17551.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17552.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17553.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17554.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17555.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17556.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17557.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17558.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17559.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17560.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17561.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17562.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17563.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17564.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17565.html"title="郓城民耀"></a></li><li class="link-item">
<li>友情链接:</li><li class="link-item"><a href="http://www.sdmynj.com/post/17566.html"title="郓城民耀"></a></li><li class="link-item">
4、OD:软件名称
OD,是一个反汇编工具,又叫OllyDebug,一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3 级的调试器,己代替SoftICE成为当今最为流行的调试解密工具了。
同时还支持插件扩展功能,是目前最强大的调试工具。基本上,调试自己的程序因为有源码,一般用vc,破解别人的程序用OllyDebug。
5、OD:电脑命令
od 命令用途是以指定格式显示文件。常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。
按照以下步骤进行 *** 作:1、打开OD软件,选择需要调试的程序,并打开该程序的进程。
2、在OD软件中,选择“文件”菜单并点击“新建”按钮,创建一个新的调试器窗口。
3、在新的调试器窗口中,选择“脚本”选项卡并勾选“启用Lua调试器”复选框,然后点击“确定”按钮。
4、在程序中运行到调试点(如某个函数或指令),OD软件将自动显示当前的Lua调用堆栈和变量值等信息。
5、在调试器窗口中,可以使用“断点”、“监视”、“执行”等功能对Lua脚本进行调试和修改。例如,在断点处暂停程序并查看当前堆栈和变量值,或者在监视窗口中添加某个变量并跟踪其值的变化等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)