摘要: http://www.codeproject.com/Articles/14100/Dot-Net-Remoting-Handling-Remote-Events-using-Dele 阅读全文
posted @ 2014-02-07 20:57 Gomen 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using System.Xml; 7 using System.Xml.Schema; 8 using System.Xml.Serialization; 9 namespace SerialDict10 {11 [Serializable]12 public class SerialDictionary : Dictionary, IXmlSer... 阅读全文
posted @ 2014-01-07 22:54 Gomen 阅读(2460) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6649605 在我上篇文章《让程序在崩溃时体面的退出之SEH》中讲解了SEH中try/except可以捕捉异常,避免程序的崩溃,并且可以在处理完异常之后,还能决定进该进程如何执行。对于应用程序的使用者来说,并不知道异常的发生。但是对于软件的开发者来说,虽然避免了程序的崩溃,可是这样可以让程序崩溃的缺陷存在于代码中,就像一个定时炸弹,不知道什么时候会爆炸。要想修复这样的缺陷,首先要找到导致程序崩溃的那行代码。而我在我的那篇《让程序在崩溃时体面的退出之Dump文件》里面介绍了如何用Dump文... 阅读全文
posted @ 2014-01-07 11:49 Gomen 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6636723 SEH的全称是Structured Exception Handling,是Windows操作系统提供的一种异常处理方式。SEH是属于操作系统的特性,不为特定语言设计,从它的名字就能看出它是一种结构化的异常处理方式。SEH包括了2个部分:终止处理__try/__finally和异常处理__try/__except,下面分别进行介绍。终止处理__try/__finally __try/__finally可以保证无论try块内的代码执行结果如何,finally块内的代码总会被调... 阅读全文
posted @ 2014-01-07 11:48 Gomen 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6630816 在我的那篇《让程序在崩溃时体面的退出之CallStack》中提供了一个在程序崩溃时得到CallStack的方法。可是要想得到CallStack,必须有pdb文件的支持。但是一般情况下,发布出去的程序都是Release版本的,都不会附带pdb文件。那么我们怎么能在程序崩溃的时候找到出错的具体位置呢?这个时候就该Dump文件出场了!Dump文件是进程的内存镜像,可以把程序运行时的状态完整的保存下来。 要想在程序崩溃的时候创建Dump文件,就需要用到DbgHelp.dll中Win... 阅读全文
posted @ 2014-01-07 11:47 Gomen 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6618849 在我的那篇《让程序在崩溃时体面的退出之Unhandled Exception》中提供了一个捕捉程序崩溃事件的方法,可以添加代码在程序崩溃的时候做出适当的处理。不过,只知道程序在什么时候崩溃,但是不知道为什么崩溃,这对于程序开发者来说没有任何意义。因为如果不知道程序崩溃的原因,就没法去找到代码中的缺陷,当然就没法去修改代码而避免程序的崩溃。 所有调试过代码的开发者都知道CallStack的重要性。如果在程序崩溃的时候得到CallStack,那么就能定位程序崩溃的具体位置,并最... 阅读全文
posted @ 2014-01-07 11:45 Gomen 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/starlee/article/details/6613424 程序是由代码编译出来的,而代码是由人写的。人非圣贤,孰能无过。所以由人写的代码有缺陷是很正常的。当然很多异常都在开发阶段被考虑到而添加了处理代码,或者用try/catch对可能出现异常的地方进行额外的照顾。可是,还是会有一些无法预料的异常(Unhandled Exception)在程序运行的时候出现。这些异常很多时候都会招致程序的崩溃。那么有没有什么方法可以让程序在崩溃的时候体面的退出呢?答案是肯定的。可以用Windows API中的SetUnhandledExceptio... 阅读全文
posted @ 2014-01-07 11:44 Gomen 阅读(326) 评论(0) 推荐(0) 编辑
摘要: Windbg脚本和扩展工具开篇http://www.cnblogs.com/pugang/archive/2012/11/30/2796617.htmlWinDbg简单扩展DLLhttp://www.pediy.com/kssd/pediy10/87790.html 阅读全文
posted @ 2014-01-05 20:04 Gomen 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 最近研究自动化测试,需要获取程序的运行状态及结果,下面是些参考资料。原文地址:http://blog.csdn.net/ariesjzj/article/details/7226443Linux下有功能强大ptrace,用于让父进程监视/修改/控制子进程的状态。Windows也提供了类似的接口,那就是Debuging API,用它可以编写用户级的调试器。下面是一个例子,用以实现父进程创建并监视子进程运行状态。#include#include#include#include#include#include#include#defineMAX_PARAM_LEN4096intmain(intarg 阅读全文
posted @ 2014-01-05 20:01 Gomen 阅读(2302) 评论(0) 推荐(0) 编辑
摘要: 使用ATL向导的话,会在resource中产生一个rgs的注册脚本文件放在"REGISTRY"目录中用来注册组件,会在程序中通过函数DECLARE_REGISTRY_RESOURCEID(IDR_OPCSERVER)使用,IDR_OPCSERVER就是向导产生的资源文件的ID,当服务器调用CComModule::RegisterServer()时,便会使用这些脚本来载入注册表的设置,并在调用CComModule::UnregisterServer()时移除它们。所有COM的注册键都放在HKEY_CLASSES_ROOT中。 阅读全文
posted @ 2013-11-25 09:21 Gomen 阅读(432) 评论(0) 推荐(0) 编辑