使用调试器时最常用的功能就是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
android 编译纯C程序,然后push到手机上运行。...
分类:
移动开发 时间:
2014-06-08 18:30:53
阅读次数:
290
对于 UNIX 本身,也有各种称呼。IBM® 大型机用户说各种带字母 “z” 的行话,比如 IBM z/OS® 和 System z9 Virtual Machine (z/VM);嵌套系统开发人员使用 eCos 这个词;在聊天中还会提到其他许多风格的 UNIX,比如 Linux®、FreeBSD、Sun Solaris 和 Mac OS X。现代信息技术使用各种各样的方言,简直就像是圣经中巴别塔...
Linux下的汇编与Windows汇编最大的不同就是第一个操作数是原操作数,第二个是目的操作数,而Windows下却是相反。
1、 基本操作指令
简单的操作数类型说明,一般有三种,
(1)立即数操作数,也就是常数值。立即数的书写方式是“$”后面跟一个整数,比如$0x1F,这个会在后面的具体分析中见到很多。
(2)寄存器操作数,它表示某个寄存器的内容,用符号Ea来表示任意寄存器a,用...
分类:
数据库 时间:
2014-06-08 10:35:44
阅读次数:
356
#上层makefile调用执行make命令,执行的应该是第一个目标allHEAD =
head.oSYSTEM = ../tools/zSystem#LD = gcc#TEST = -DTEST_DRIVERzOBJECTS = $(HEAD)
inflate.o unzip.o misc.oCFL...
分类:
其他好文 时间:
2014-06-08 07:38:47
阅读次数:
245
添加运行时共享库目录运行使用共享库的程序需要加载共享库(不同于G++
编译时指定的链接库),添加共享库的步骤:修改文件 /etc/ld.so.conf 添加共享库目录运行 ldconfig 同步更新一下如:$ gedit
/etc/ld.so.conf #添加 /root/dreamlove...
分类:
其他好文 时间:
2014-06-07 22:12:01
阅读次数:
314
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