﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-厚积薄发-随笔分类-windbg</title><link>http://www.cppblog.com/weiym/category/19541.html</link><description>海纳百川, 有容乃大
</description><language>zh-cn</language><lastBuildDate>Mon, 13 Oct 2014 14:33:58 GMT</lastBuildDate><pubDate>Mon, 13 Oct 2014 14:33:58 GMT</pubDate><ttl>60</ttl><item><title>线程堆栈是如何增长的</title><link>http://www.cppblog.com/weiym/archive/2014/10/12/208551.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Sun, 12 Oct 2014 14:03:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2014/10/12/208551.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/208551.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2014/10/12/208551.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/208551.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/208551.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 技术深了可以再深，从C++编译器到CRT运行库， 再到操作系统， 从用户态到内核和驱动， 最后到硬件， 原理背后还有原理， 真正能掌握所有细节的又有几人呢？&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2014/10/12/208551.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/208551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2014-10-12 22:03 <a href="http://www.cppblog.com/weiym/archive/2014/10/12/208551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>记一个界面刷新相关的Bug</title><link>http://www.cppblog.com/weiym/archive/2014/05/30/207150.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Fri, 30 May 2014 15:18:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2014/05/30/207150.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/207150.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2014/05/30/207150.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/207150.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/207150.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 计算机的好处是它永远不会欺骗你， 它只会按部就班的执行， 所以很多看似奇怪(甚至看似不可思议的问题)， 只要你理解了程序背后的机制原理，都是可以找出根本原因的。&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2014/05/30/207150.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/207150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2014-05-30 23:18 <a href="http://www.cppblog.com/weiym/archive/2014/05/30/207150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何开发自己的调试器</title><link>http://www.cppblog.com/weiym/archive/2013/03/12/198350.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Tue, 12 Mar 2013 02:28:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2013/03/12/198350.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/198350.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2013/03/12/198350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/198350.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/198350.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对系统原理和程序运行过程的理解，会熟练使用调试器是一个层次，能单独开发调试器又是另外一个层次。<br>下面是一个不错的系列，告诉你如何自己开发一款微型调试器&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2013/03/12/198350.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/198350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2013-03-12 10:28 <a href="http://www.cppblog.com/weiym/archive/2013/03/12/198350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于WinDbg的内存泄漏分析</title><link>http://www.cppblog.com/weiym/archive/2013/02/27/198109.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Wed, 27 Feb 2013 06:35:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2013/02/27/198109.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/198109.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2013/02/27/198109.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/198109.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/198109.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  通过WinDbg结合AppVerifier， 我们可以详细的跟踪堆中new出来的每一块内存。 很多时候在没有源代码的Release版本中，在程序运行一段时间后，如果我们发现有大内存或是大量同样大小的小内存一直没有释放，  我们就可以用上面的方法进行分析和快速的定位问题。&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2013/02/27/198109.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/198109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2013-02-27 14:35 <a href="http://www.cppblog.com/weiym/archive/2013/02/27/198109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理解程序内存</title><link>http://www.cppblog.com/weiym/archive/2012/09/19/191301.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Wed, 19 Sep 2012 15:24:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2012/09/19/191301.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/191301.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2012/09/19/191301.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/191301.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/191301.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 通过上面的介绍，相信大家对程序内存有了比较全局的理解，以后大家分析问题，遇到一个地址，首先要判断这个地址分布在哪里:<br>如果是Image上，那么是在哪个模块中，这个地址是属于该模块的代码段（.text）还是数据段(.data)，如果是代码段，又是属于哪个函数?<br>如果是Heap上，那么究竟是在哪个堆里面，是我们new出来的吗，是在什么时候new的(new时堆栈状况)？<br>如果是在Stack上，那么究竟是属于哪个线程的堆栈，当时线程的堆栈是怎么样？<br><br>总之，程序在内存中运行，只有你真正理解了内存，你才能真正懂计算机。&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2012/09/19/191301.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/191301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2012-09-19 23:24 <a href="http://www.cppblog.com/weiym/archive/2012/09/19/191301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何学习WindDbg</title><link>http://www.cppblog.com/weiym/archive/2012/08/15/187281.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Wed, 15 Aug 2012 06:12:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2012/08/15/187281.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/187281.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2012/08/15/187281.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/187281.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/187281.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 做为一名Windows平台上的C/C++开发人员，我们有N个理由学习WinDbg的使用: <br>有些Bug只有在客户和QA的机器上才能重现，我们不可能在他们的机器上装一个VC吧<br>WinDbg可以让我们方便的保存和分析Dump文件<br>WinDbg的调试功能比VC强大的多，比如它有强大的API断点和条件断点<br>调试内核和驱动，我们只能用WinDbg<br>用WinDbg可以让你更深入的理解系统，理解计算机，用VC你看到的是自己的代码，用WinDbg你看到的是整个进程<br>......<br>最重要的，微软用WinDbg开发和调试Windows操作系统，它是Windows平台上最重要的调试工具.&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2012/08/15/187281.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/187281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2012-08-15 14:12 <a href="http://www.cppblog.com/weiym/archive/2012/08/15/187281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跨模块传参数的教训</title><link>http://www.cppblog.com/weiym/archive/2012/07/13/183262.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Fri, 13 Jul 2012 13:27:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2012/07/13/183262.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/183262.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2012/07/13/183262.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/183262.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/183262.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天遇到一个比较奇怪的crash问题，这里记录下。这个crash是由QA设置了一些不合理的参数引起的，还好QA当时保存了Dump文件，让我们可以慢慢分析，从而找出代码中隐藏的问题。&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2012/07/13/183262.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/183262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2012-07-13 21:27 <a href="http://www.cppblog.com/weiym/archive/2012/07/13/183262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Windbg解决一个Bug</title><link>http://www.cppblog.com/weiym/archive/2012/06/26/180363.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Tue, 26 Jun 2012 12:33:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2012/06/26/180363.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/180363.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2012/06/26/180363.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/180363.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/180363.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     可以看到无论对于开发还是测试人员，windbg很多时候可以帮我们快速的定位问题， 如果借助符号文件，Windbg完全可以实现比VC IDE更强大的调试供功能， 并且有时候我们不需要源代码，不需要重新编译，直接就可以通过windbg调试和解决问题。&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2012/06/26/180363.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/180363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2012-06-26 20:33 <a href="http://www.cppblog.com/weiym/archive/2012/06/26/180363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windbg实用手册</title><link>http://www.cppblog.com/weiym/archive/2012/06/07/177958.html</link><dc:creator>Richard Wei</dc:creator><author>Richard Wei</author><pubDate>Thu, 07 Jun 2012 11:07:00 GMT</pubDate><guid>http://www.cppblog.com/weiym/archive/2012/06/07/177958.html</guid><wfw:comment>http://www.cppblog.com/weiym/comments/177958.html</wfw:comment><comments>http://www.cppblog.com/weiym/archive/2012/06/07/177958.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/weiym/comments/commentRss/177958.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/weiym/services/trackbacks/177958.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windbg的命令分为标准命令，原命令和扩展命令，输入问号(?)可以显示所有的标准命令的帮助信息; 元命令以一个点(.)开始，输入.help可以显示所有的原命令的帮助信息;扩展命令以叹号(!)开始&nbsp;&nbsp;<a href='http://www.cppblog.com/weiym/archive/2012/06/07/177958.html'>阅读全文</a><img src ="http://www.cppblog.com/weiym/aggbug/177958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/weiym/" target="_blank">Richard Wei</a> 2012-06-07 19:07 <a href="http://www.cppblog.com/weiym/archive/2012/06/07/177958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>