<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[软件调试的艺术]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 28 Jun 2013 03:49:25 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	相比Win下的调试书籍，linux下的相关书，至少在国内几乎没有见过。 想是因为win下的破解带动了调试这块吧。。。。 <br/>　　 <br/>　　 以前尝试过直接去翻GDB的manual，但是十分枯燥，看不下去。因为只是直接介绍命令而已，对于初学者，事实上需要的是实例，和能够一步步能操演下去的讲解。这本书很薄，但是基本的调试用法都讲到了，普通的程序调试应该是足够了。这本书让我觉得调试也是非常有意思的一件事，并勾起了我对于底层硬件探究的兴趣。<br/><br/>DownLoad：<br/>http://ishare.iask.sina.com.cn/f/22493308.html?from=like<br/><br/>第1章 预备知识 1<br/>1.1 本书使用的调试工具 1<br/>1.2 编程语言 2<br/>1.3 调试的原则 2<br/>1.3.1 调试的本质：确认原则 2<br/>1.3.2 调试工具对于确认原则的价值所在 2<br/>1.3.3 其他调试原则 3<br/>1.4 对比基于文本的调试工具与基于GUI的调试工具，两者之间的折中方案 4<br/>1.4.1 简要比较界面 4<br/>1.4.2 折中方法 9<br/>1.5 主要调试器操作 11<br/>1.5.1 单步调试源代码 11<br/>1.5.2 检查变量 12<br/>1.5.3 在GDB、DDD和Eclipse中设置监视点以应对变量值的改变 14<br/>1.5.4 上下移动调用栈 14<br/>1.6 联机帮助 15<br/>1.7 初涉调试会话 16<br/>1.7.1 GDB方法 18<br/>1.7.2 同样的会话在DDD中的情况 31<br/>1.7.3 Eclipse中的会话 34<br/>1.8 启动文件的使用 38<br/><br/>第2章 停下来环顾程序 39<br/>2.1 暂停机制 39<br/>2.2 断点概述 39<br/>2.3 跟踪断点 40<br/>2.3.1 GDB中的断点列表 40<br/>2.3.2 DDD中的断点列表 41<br/>2.3.3 Eclipse中的断点列表 42<br/>2.4 设置断点 42<br/>2.4.1 在GDB中设置断点 42<br/>2.4.2 在DDD中设置断点 45<br/>2.4.3 在Eclipse中设置断点 46<br/>2.5 展开GDB示例 46<br/>2.6 断点的持久性 48<br/>2.7 删除和禁用断点 50<br/>2.7.1 在GDB中删除断点 50<br/>2.7.2 在GDB中禁用断点 51<br/>2.7.3 在DDD中删除和禁用断点 51<br/>2.7.4 在Eclipse中删除和禁用断点 53<br/>2.7.5 在DDD中“移动”断点 53<br/>2.7.6 DDD中的Undo/Redo断点动作 54<br/>2.8 进一步介绍浏览断点属性 55<br/>2.8.1 GDB 55<br/>2.8.2 DDD 56<br/>2.8.3 Eclipse 56<br/>2.9 恢复执行 56<br/>2.9.1 在GDB中 57<br/>2.9.2 在DDD中 64<br/>2.9.3 在Eclipse中 66<br/>2.10 条件断点 66<br/>2.10.1 GDB 67<br/>2.10.2 DDD 69<br/>2.10.3 Eclipse 69<br/>2.11 断点命令列表 70<br/>2.12 监视点 74<br/>2.12.1 设置监视点 75<br/>2.12.2 表达式 77<br/><br/>第3章 检查和设置变量 78<br/>3.1 主要示例代码 78<br/>3.2 变量的高级检查和设置 80<br/>3.2.1 在GDB中检查 80<br/>3.2.2 在DDD中检查 84<br/>3.2.3 在Eclipse中检查 86<br/>3.2.4 检查动态数组 88<br/>3.2.5 C++代码的情况 90<br/>3.2.6 监视局部变量 92<br/>3.2.7 直接检查内存 92<br/>3.2.8 print和display的高级选项 93<br/>3.3 从GDB/DDD/Eclipse中设置变量 93<br/>3.4 GDB自己的变量 94<br/>3.4.1 使用值历史 94<br/>3.4.2 方便变量 94<br/><br/>第4章 程序崩溃处理 96<br/>4.1 背景资料：内存管理 96<br/>4.1.1 为什么程序会崩溃 96<br/>4.1.2 内存中的程序布局 97<br/>4.1.3 页的概念 99<br/>4.1.4 页的角色细节 99<br/>4.1.5 轻微的内存访问程序错误可能不会导致段错误 101<br/>4.1.6 段错误与Unix信号 102<br/>4.1.7 其他类型的异常 105<br/>4.2 核心文件 106<br/>4.2.1 核心文件的创建方式 106<br/>4.2.2 某些shell可能禁止创建核心文件 107<br/>4.3 扩展示例 108<br/>4.3.1 第一个程序错误 111<br/>4.3.2 在调试会话期间不要退出GDB 113<br/>4.3.3 第二个和第三个程序错误 113<br/>4.3.4 第四个程序错误 115<br/>4.3.5 第五个和第六个程序错误 116<br/><br/>第5章 多活动上下文中的调试 120<br/>5.1 调试客户/服务器网络程序 120<br/>5.2 调试多线程代码 125<br/>5.2.1 进程与线程回顾 125<br/>5.2.2 基本示例 127<br/>5.2.3 变体 132<br/>5.2.4 GDB线程命令汇总 133<br/>5.2.5 DDD中的线程命令 134<br/>5.2.6 Eclipse中的线程命令 134<br/>5.3 调试并行应用程序 136<br/>5.3.1 消息传递系统 136<br/>5.3.2 共享内存系统 141<br/>5.4 扩展示例 143<br/>5.4.1 OpenMP概述 143<br/>5.4.2 OpenMP示例程序 144<br/><br/>第6章 特殊主题 155<br/>6.1 根本无法编译或加载 155<br/>6.1.1 语法错误消息中的“幽灵”行号 155<br/>6.1.2 缺少库 160<br/>6.2 调试GUI程序 162<br/><br/>第7章 其他工具 172<br/>7.1 充分利用文本编辑器 172<br/>7.1.1 语法突出显示 172<br/>7.1.2 匹配括号 174<br/>7.1.3 Vim与makefile 175<br/>7.1.4 makefile和编译器警告 176<br/>7.1.5 关于将文本编辑器作为IDE的最后一个考虑事项 177<br/>7.2 充分利用编译器 178<br/>7.3 C语言中的错误报告 178<br/>7.4 更好地使用strace和ltrace 182<br/>7.5 静态代码检查器：lint与其衍生 184<br/>7.5.1 如何使用splint 185<br/>7.5.2 本节最后注意事项 185<br/>7.6 调试动态分配的内存 185<br/>7.6.1 检测DAM问题的策略 188<br/>7.6.2 Electric Fence 188<br/>7.6.3 用GNU C库工具调试DAM问题 190<br/><br/>第8章 对其他语言使用GDB/DDD/Eclipse 196<br/>8.1 Java 196<br/>8.1.1 直接使用GDB调试Java 198<br/>8.1.2 使用DDD与GDB调试Java 201<br/>8.1.3 使用DDD作为JDB的GUI 201<br/>8.1.4 用Eclipse调试Java 201<br/>8.2 Perl 202<br/>8.2.1 通过DDD调试Perl 204<br/>8.2.2 在Eclipse中调试Perl 206<br/>8.3 Python 207<br/>8.3.1 在DDD中调试Python 208<br/>8.3.2 在Eclipse中调试Python 209<br/>8.4 调试SWIG代码 210<br/>8.5 汇编语言 213
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 软件调试的艺术]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>