为什么我们需要debug?原因大概有几个,几乎都是在生产环境下,我们解决不了的:
1、系统就是慢。稍微懂点的客户,拿taskmgr一看,说你的aspnet_wp.exe或者w3wp.exe占用cpu太高,或者内存太高,dba到sql里面一看,说cpu太高。sql的我以前写过,这里不讲,对于前者.net的程序,你怎么处理?
2、cpu很低,内存很平稳,系统就是慢,你怎么处理?
3、很偶然的情况下,某些客户端会提示null reference exception,一般是因为session丢失造成的,你怎么处理?
4、内存暴涨,到了物理内存的60%,w3wp.exe崩溃,你怎么处理?如果在iis6上面,默认配置上,crash5次,app pool就disable了,所有人都登录不了,你怎么处理?
5、。。。。。。
如果你想在server上装.net ide,劝你就不要做梦了。其一,一般的客户都不会同意你在上面装一个vs2005或者vs2008;其二,你装上了后,你怎么debug?断点你设置在哪里?
为什么会这样?因为代码是死的,跑起来之后就是活的。我们要“实时”的发现案发现场的蛛丝马迹,那么,如果你不能attach process(这样会挂起监视进程),那么只有抓dump,然后debug。
这就是为什么我们需要在生产环境下抓dump的原因。明了了这个原因,再看这个系列,会有点帮助。更多的,还是看葡萄的书,哈!
(我还剩四本,因为没空,所以没给那几个兄弟送。葡萄都签名的,你们不要倒卖了啊!)