使用调试器时最常用的功能就是step, next, continue,这几个调试命令都是“往下执行”的, 但是很多时候会有这种需求:你在调试的过程中多跳过了几步而错过中间过程,这时候不得不重头调试一遍,非常麻烦。而GDB从7.0版本开始支持反向调试功能,也就是允许你倒退着运行程序,或者说撤销程序执行的步骤从而会到以前的状态。
直观地来看,加入你正在使用GDB7.0以上版本的调试器并...
分类:
数据库 时间:
2014-06-20 11:11:54
阅读次数:
337
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)
在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该种类型的...
分类:
数据库 时间:
2014-06-20 09:56:07
阅读次数:
299
对于 UNIX 本身,也有各种称呼。IBM® 大型机用户说各种带字母 “z” 的行话,比如 IBM z/OS® 和 System z9 Virtual Machine (z/VM);嵌套系统开发人员使用 eCos 这个词;在聊天中还会提到其他许多风格的 UNIX,比如 Linux®、FreeBSD、Sun Solaris 和 Mac OS X。现代信息技术使用各种各样的方言,简直就像是圣经中巴别塔...
GDB多线程调试的基本命令。
info threads
显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个。 前面有*的是当前调试的线程。
thread ID
切换当前调试的线程为指定ID的线程。
break thread_test.c:123 thread all
在所有线程中相应的行上设置断点
...
分类:
数据库 时间:
2014-06-07 15:26:57
阅读次数:
320
新的os x内核禁止未授权的程序随意控制,如何在不root的情况下使用gdb呢?...
分类:
数据库 时间:
2014-06-07 14:27:21
阅读次数:
309
For convenience of discussion, assume our
android executable name is hello-exe.1. Compile debug version of android
executable file, use following comm...
分类:
移动开发 时间:
2014-06-06 19:30:02
阅读次数:
335
一、gcc (GNU C compiler )1.预处理 gcc -E aaa.c -o
aaa.i → .i(c代码) ↓ 2. 编译 gcc -S aaa.i -o aaa.s → .s(汇编代码) ↓3. 汇编 gcc -c aaa.s -o
aaa.o → .o(目标代码—二进制) ↓4. ...
分类:
数据库 时间:
2014-06-06 15:53:44
阅读次数:
325
这些东西都是参考《Linux
C编程一站式学习》,在看这本书的gdb这块的时候,把这些总结性的东西记录下来方便以后复习,这些东西吧其实在一年前就已经看过了的,但是缺少笔记总是记不住
命令描述backtrace(bt)参考各级函数调用及参数的堆栈信息finish一般是配合step使用,当step跳入....
分类:
数据库 时间:
2014-06-05 18:59:42
阅读次数:
311
程序启动:A.冷启动gdb program e.g., gdb ./csgdb –p pid
e.g., gdb –p `pidof cs`gdb program core e.g., gdb ./cs core.xxxB.热启动(gdb) attach
pid e.g., (gdb) attach...
分类:
数据库 时间:
2014-06-05 16:46:16
阅读次数:
395
利用gdb[i]调试nginx[ii]和利用gdb调试其它程序没有两样,不过nginx可以是daemon程序,也可以以多进程运行,因此利用gdb调试和平常会有些许不一样。当然,我们可以选择将nginx设置为非daemon模式并以单进程运行,而这需做如下设置即可:
daemon off;
master_process off;
这是第一种情况:
这种设置下的nginx在gdb下调试很普通,过...
分类:
数据库 时间:
2014-06-02 04:56:02
阅读次数:
417