记一个界面刷新相关的Bug
摘要:计算机的好处是它永远不会欺骗你, 它只会按部就班的执行, 所以很多看似奇怪(甚至看似不可思议的问题), 只要你理解了程序背后的机制原理,都是可以找出根本原因的。
阅读全文
posted @
2014-05-30 23:21
Richard Wei
阅读(411)
推荐(0) 编辑
基于WinDbg的内存泄漏分析
摘要:通过WinDbg结合AppVerifier, 我们可以详细的跟踪堆中new出来的每一块内存。 很多时候在没有源代码的Release版本中,在程序运行一段时间后,如果我们发现有大内存或是大量同样大小的小内存一直没有释放, 我们就可以用上面的方法进行分析和快速的定位问题。
阅读全文
posted @
2013-02-27 14:50
Richard Wei
阅读(9082)
推荐(2) 编辑
理解程序内存
摘要:通过上面的介绍,相信大家对程序内存有了比较全局的理解,以后大家分析问题,遇到一个地址,首先要判断这个地址分布在哪里:
如果是Image上,那么是在哪个模块中,这个地址是属于该模块的代码段(.text)还是数据段(.data),如果是代码段,又是属于哪个函数?
如果是Heap上,那么究竟是在哪个堆里面,是我们new出来的吗,是在什么时候new的(new时堆栈状况)?
如果是在Stack上,那么究竟是属于哪个线程的堆栈,当时线程的堆栈是怎么样?
总之,程序在内存中运行,只有你真正理解了内存,你才能真正懂计算机。
阅读全文
posted @
2012-09-19 23:30
Richard Wei
阅读(2855)
推荐(8) 编辑
如何学习WindDbg
摘要:摘要: 做为一名Windows平台上的C/C++开发人员,我们有N个理由学习WinDbg的使用: 有些Bug只有在客户和QA的机器上才能重现,我们不可能在他们的机器上装一个VC吧WinDbg可以让我们方便的保存和分析Dump文件WinDbg的调试功能比VC强大的多,比如它有强大的API断点和条件断点调试内核和驱动,我们只能用WinDbg用WinDbg可以让你更深入的理解系统,理解计算机,用VC你看到的是自己的代码,用WinDbg你看到的是整个进程......最重要的,微软用WinDbg开发和调试Windows操作系统,它是Windows平台上最重要的调试工具.阅读全文Richard Wei .
阅读全文
posted @
2012-08-15 14:12
Richard Wei
阅读(462)
推荐(0) 编辑
跨模块传参数的教训
摘要:摘要: 今天遇到一个比较奇怪的crash问题,这里记录下。这个crash是由QA设置了一些不合理的参数引起的,还好QA当时保存了Dump文件,让我们可以慢慢分析,从而找出代码中隐藏的问题。阅读全文Richard Wei 2012-07-13 21:27 发表评论
阅读全文
posted @
2012-07-13 21:27
Richard Wei
阅读(263)
推荐(0) 编辑
用Windbg解决一个Bug
摘要:摘要: 可以看到无论对于开发还是测试人员,windbg很多时候可以帮我们快速的定位问题, 如果借助符号文件,Windbg完全可以实现比VC IDE更强大的调试供功能, 并且有时候我们不需要源代码,不需要重新编译,直接就可以通过windbg调试和解决问题。阅读全文Richard Wei 2012-06-26 20:33 发表评论
阅读全文
posted @
2012-06-26 20:33
Richard Wei
阅读(298)
推荐(0) 编辑
Windbg实用手册
摘要:摘要: Windbg的命令分为标准命令,原命令和扩展命令,输入问号(?)可以显示所有的标准命令的帮助信息; 元命令以一个点(.)开始,输入.help可以显示所有的原命令的帮助信息;扩展命令以叹号(!)开始阅读全文Richard Wei 2012-06-07 19:07 发表评论
阅读全文
posted @
2012-06-07 19:07
Richard Wei
阅读(386)
推荐(0) 编辑