注意: 这里是讲gdb的高级技巧.如果没有接触过gdb,请看这篇:点这里. gdb是一个功能极其强大的命令行调试器.其实,除了我们常用的 file b s n q disp p 等命令,也有很多高级技巧.虽然有的功能是为系统级调试提供的,但还是有方便之处. 接下来,我将介绍一些高级技巧,希望可以帮助大家. (温馨提醒:多用help命令!请提前用 -g 参数编译) GDB版本:9.1:系统版本:Arch Linux 245-1 示例代码:(以下示例均以此代码为准) #include <iostre…
1.若干命令速查 file <文件名>:加载被调试的可执行程序文件.因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径.示例:(gdb) file gdb-sample r:Run的简写,运行被调试的程序,也是重启程序运行.如果此前没有下过断点,则执行完整个程序:如果有断点,则程序暂停在第一个可用断点处. c:Continue的简写,继续执行被调试程序,直至下一个断点或程序结束. b <行号>: b <函数名称>/ b *<函数名称>…
<软件调试的艺术>学习笔记——GDB使用技巧摘要 <软件调试的艺术>,因为名是The Art of Debugging with GDB, DDD, and Eclipse. 作者是美国的Norman Matloff和Peter Jay Salzman,中文版由张云翻译.是人邮出版社图灵程序设计丛书初版.这里称为"艺术",个人觉得有点过了,但是其中关于gdb以及在gdb基础之上集成的DDD和Eclipse调试技巧的整理确实是做的很好,对于Linux/开源社区下的…
上次整理了Ajax部分,这周看完了高级技巧部分,也整理下吧. 1.类型检测 使用Object.prototype.toString.call(obj)的方式. 因为无论typeof还是instanceof都无法做到精确判断变量类型. 2.安全的构造函数 通常我们定义构造函数的时候,会使用类似 function Person(name){ this.name = name; } 然而之后如果不是去 var person = new Person("cnblogs"). 而是 va…