
gdb实战研究
分享一些工作中gdb实战调试方法,希望能帮到你!
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者
展开
-
GDB之常见缩写命令(十九)
本篇目的:GDB之命令的缩写。原创 2023-09-15 13:03:51 · 311 阅读 · 0 评论 -
GDB之记录执行过程(十八)
本篇目的:记录GDB每个步骤执行过程。原创 2023-09-15 12:37:56 · 303 阅读 · 0 评论 -
GDB之保存历史命令(十七)
本篇目的:GDB之保存历史命令。在gdb中,缺省是不保存历史命令的。原创 2023-09-15 12:02:36 · 322 阅读 · 0 评论 -
GDB之保存已经设置的断点(十六)
本篇目的:GDB之保存已经设置的断点,下次直接使用。原创 2023-09-15 11:46:08 · 342 阅读 · 0 评论 -
GDB之源码与汇编映射对应关系(十五)
本篇目的:GDB之源码与汇编映射对应,查阅方便。原创 2023-09-15 11:26:28 · 500 阅读 · 0 评论 -
GDB之(任意门)跳到任意位置(十四)
本篇目的:GDB调试时,如果走到第100行时,还想回到第50行重新调试?如果不想重新run一遍,有没有其他方式呢?原创 2023-09-15 11:11:32 · 565 阅读 · 0 评论 -
GDB之调试手段之生成与加载coredump文件(十三)
本篇目的:GDB之调试手段之生成、使用coredump文件。1.程序crash后,可以生成coredump文件,保存core.xxx结尾文件。2.然后gdb加载core.xxx文件,就可以知道crash的原因。原创 2023-09-15 11:01:07 · 374 阅读 · 0 评论 -
GDB之打印函数堆栈(十二)
本篇目的:GDB之打印函数堆栈。原创 2023-09-15 10:22:08 · 379 阅读 · 0 评论 -
GDB之call、print手动调用函数(十一)
本篇目的:GDB之使用call、print手动调用函数。原创 2023-09-15 10:17:25 · 509 阅读 · 0 评论 -
GDB之修改字符串的值(十)
本篇目的:GDB之修改字符串的值。原创 2023-09-15 00:41:38 · 478 阅读 · 0 评论 -
GDB之调试系统接口syscall(九)
本篇目的:GDB之调试系统接口。原创 2023-09-15 00:22:54 · 427 阅读 · 0 评论 -
GDB之解决ptrace反调试手段(八)
本篇目的:GDB之破解ptrace反调试。原创 2023-09-15 00:10:59 · 344 阅读 · 0 评论 -
valgrind内存泄露和线程竞态检测
valgrind通常用来成分析程序性能及程序中的内存泄露错误一Valgrind工具集简绍Valgrind包含下列工具:1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。2、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。3、cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。4、helgrind:用于检查多线程程序的竞态条件。5、massif:堆栈分析器,指示程序...转载 2020-12-03 21:19:59 · 1109 阅读 · 0 评论 -
gdb调试bin带参数(七)
# gdb --args ./test preview原创 2020-07-24 15:01:25 · 1464 阅读 · 0 评论 -
Android添加gdb symbols(六)
LOCAL_CFLAGS += -gLOCAL_CPPFLAGS += -gLOCAL_STRIP_MODULE :=false原创 2020-06-17 20:59:40 · 574 阅读 · 0 评论 -
Ubuntu和Mac使用gdbserver远程调试android源码(五)
一、gdb在android上远程调试进程0.关闭Enforcing# adb shell setenforce 01.拷贝gdb和gdbserver文件PC端为Client (Ubuntu Or Mac)【1】gdb client for Ubuntu prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-l原创 2017-11-21 19:39:28 · 1398 阅读 · 0 评论 -
Gdb多线程调试(四)
1.调试方法# ps aux| grep proname //找出进程的pid# gdb attach pid //使用gdb attach可以调试正在运行的进程# info threads //查看具体的线程id# thread x //切换线程到具体的线程x# b func# set scheduler-locking off //让所有的线程运行.gdb默认调试状态下只有当前的线程在运行,所以先要让整个程序运行起来。# c //让线程运行,等待程序停在下一个断点处2。查看本地变量.原创 2020-06-19 11:00:09 · 1021 阅读 · 0 评论 -
Docker下使用gdb(三)
# docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it kali_1.05原创 2018-05-14 18:02:12 · 1824 阅读 · 0 评论 -
Android&&Linux gdb用法(二)
1.gdb启动本地程序testbash# gdb ./testgdb# b test.c:34gdb# commands> p len> p *data> c //继续执行,continu> endgdb# r//如果crash# bt //打印堆栈# info proc maps //查看当前进程信息及加载so 2.gdb attach pidbash# ps | grep crackmebash# gdb -p pidgdb# commands.原创 2020-06-18 20:00:43 · 541 阅读 · 0 评论 -
Emacs + gdb单步调试汇编代码(一)
1.编译# gcc -g test.c -o test2.使用emacs单步调试汇编和C对照# emacsM-x gdbM-x gdb-many-windows//把某个窗口替换成反汇编或者寄存器的监控M-x gdb-display-disassembly-buffer(gdb) b main(gdb) s这里可以看到汇编和C源码汇编对应...原创 2019-04-16 21:06:09 · 2041 阅读 · 0 评论 -
MAC上使用gdb(Mac10.12未解决)
原址由于要在mac上制作自己的malloc动态存储分配器,要使用gdb进行调试,之前一直在centos上用gdb调试,转到mac上竟然发现有这么多坑,还好一一解决了,其原因大多数因为mac上非常关注程序安全性的问题。主要会碰到的问题主要有如下问题,如果大家发现如下的问题就可以接着看下去:1.-bash: gdb: command not found2. `Starting program: ...转载 2018-05-14 17:37:48 · 952 阅读 · 0 评论