随笔分类 -  调试篇

该文被密码保护。
posted @ 2020-04-06 21:12 一代枭雄 阅读(11) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-03-29 22:49 一代枭雄 阅读(20) 评论(0) 推荐(0)
摘要:1.strace简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括 阅读全文
posted @ 2020-03-29 15:39 一代枭雄 阅读(837) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2020-03-25 07:26 一代枭雄 阅读(914) 评论(0) 推荐(0)
摘要:backtrace:查看函数的调用顺序(函数调用栈的信息) frame N (实际上是上下文跳转的命令):切换到栈编号为N的上下文中 info frame:查看当前函数调用的栈帧信息。所谓栈帧就是与函数调用相关的栈上的消息 什么是栈帧信息 深入info命令 命令 功能说明 info register 阅读全文
posted @ 2020-03-22 15:39 一代枭雄 阅读(2768) 评论(0) 推荐(0)
摘要:1.数据断点 GDB支持数据断点的设置 watch命令用于监视变量是否被改变(本质上为硬件断点) watch命令的用法:watch var_name 2.GDB中的内存查看 GDB中可以检查任意内存区域中的数据 命令语法: X /Nuf expression N—需要打印的单元数 u—每个单元的大小 阅读全文
posted @ 2020-03-22 14:33 一代枭雄 阅读(777) 评论(0) 推荐(0)
摘要:1.断点类型 软件断点:由非法指令异常实现(软件实现) 硬件断点:由硬件特性实现(数量有限) 数据断点:由硬件特性实现(数量有限) 为什么要分软件断点和硬件断点呢? 软件断点通常是可以运行于内存中的程序,代码加载到内存中执行,那么软件断点就是有效的。 对于flash中的程序执行,软件断点就没有用了。 阅读全文
posted @ 2020-03-17 23:31 一代枭雄 阅读(6678) 评论(0) 推荐(0)
摘要:1.直接启动 gdb gdb test.out gdb test.out core 异常崩溃时产生的core 2.动态连接 gdb test.out pid(进程) 动态的跟踪pid进程的行为 3.GDB应用示例一 gdb //启动 (gdb) file test.out //载入目标程序 (gdb 阅读全文
posted @ 2020-03-17 23:10 一代枭雄 阅读(2644) 评论(0) 推荐(0)
摘要:1.GDB:GNU项目中的调试器(GNU debugger) (1)能够跟踪程序的执行; (2)能够恢复程序崩溃前的状态; 2.为什么需要GDB? (1)软件不是一次性开发完成的(是软件就有bug,是程序就有问题) (2)调试是开发过程中不可或缺的技术(调试技术很重要) 3.GDB的常规应用 —自定 阅读全文
posted @ 2020-03-17 22:54 一代枭雄 阅读(478) 评论(0) 推荐(0)