随笔分类 - 调试篇
摘要:1.strace简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括
阅读全文
摘要:GDB的下载: http://www.gnu.org/software/gdb/ 下载gdb-7.4.tar.bz2 1.解压: tar xjf gdb-7.4.tar.bz2 2.编译gdb和gdbserver 2.1 编译gdb: cd gdb-7.4/ .configure -- target
阅读全文
摘要:backtrace:查看函数的调用顺序(函数调用栈的信息) frame N (实际上是上下文跳转的命令):切换到栈编号为N的上下文中 info frame:查看当前函数调用的栈帧信息。所谓栈帧就是与函数调用相关的栈上的消息 什么是栈帧信息 深入info命令 命令 功能说明 info register
阅读全文
摘要:1.数据断点 GDB支持数据断点的设置 watch命令用于监视变量是否被改变(本质上为硬件断点) watch命令的用法:watch var_name 2.GDB中的内存查看 GDB中可以检查任意内存区域中的数据 命令语法: X /Nuf expression N—需要打印的单元数 u—每个单元的大小
阅读全文
摘要:1.断点类型 软件断点:由非法指令异常实现(软件实现) 硬件断点:由硬件特性实现(数量有限) 数据断点:由硬件特性实现(数量有限) 为什么要分软件断点和硬件断点呢? 软件断点通常是可以运行于内存中的程序,代码加载到内存中执行,那么软件断点就是有效的。 对于flash中的程序执行,软件断点就没有用了。
阅读全文
摘要:1.直接启动 gdb gdb test.out gdb test.out core 异常崩溃时产生的core 2.动态连接 gdb test.out pid(进程) 动态的跟踪pid进程的行为 3.GDB应用示例一 gdb //启动 (gdb) file test.out //载入目标程序 (gdb
阅读全文
摘要:1.GDB:GNU项目中的调试器(GNU debugger) (1)能够跟踪程序的执行; (2)能够恢复程序崩溃前的状态; 2.为什么需要GDB? (1)软件不是一次性开发完成的(是软件就有bug,是程序就有问题) (2)调试是开发过程中不可或缺的技术(调试技术很重要) 3.GDB的常规应用 —自定
阅读全文
浙公网安备 33010602011771号