- 博客(21)
- 收藏
- 关注
原创 linux ptrace 图文详解(九) gdb如何判断被tracee唤醒的原因
前序文章中,讨论了绝大多数 ptrace系统调用 在 gdb 中的使用场景,这些场景中有一个共同点:被调试程序(即:tracee)最终都会给父进程GDB发送SIGCHLD信号,并唤醒GDB的wait系统调用。这其中有一个很重要的点,前序文章中并没有展开详细讲解:GDB被唤醒后,是如何判断自己是被什么事件唤醒的、以及是被哪个调试任务唤醒的,被调试程序发生了什么事情?
2025-05-23 20:53:03
1079
原创 linux ptrace 图文详解(八) gdb跟踪被调试程序的子线程、子进程
本文介绍了gdb调试程序时,如何跟踪被调试程序创建的子进程/子线程。
2025-05-09 22:43:27
714
原创 linux ptrace 图文详解(七) gdb、strace跟踪系统调用
本文介绍了gdb、strace通过ptrace监控被调试程序的所有系统调用的实现原理。
2025-04-25 23:43:16
955
原创 linux ptrace 图文详解(五) gdb设置硬断点、观察点
本文详细介绍了armv8中硬断点、观察点的实现原理,以及相关debug寄存器中各字段的含义。
2025-04-04 14:06:19
871
原创 linux ptrace 图文详解(二) PTRACE_TRACEME 跟踪程序
本文介绍了gdb加载被调试程序进行调试运行的底层实现原理:PTRACE_TRACEME 的实现细节。
2025-03-14 23:56:26
1316
原创 linux ptrace 图文详解(一)基础介绍
ptrace 是 linux内核 提供的一个系统调用,并非一个标准的posix接口,ptrace 主要用于进程跟踪和调试。它运行一个用户态进程(通常称为跟踪器, Tracer)控制和监视另一个进程(称为被调试进程, Tracee)的执行。ptrace是许多调试跟踪工具(如:GDB、strace 等)的 “基座”,其函数原型如下:用于标识一个需要执行的操作;标识目标线程ID一个内存地址和附加信息,其语义因选择的操作而不同;
2025-03-08 14:09:02
1392
原创 Linux uprobe 图文详解(四)uretprobe 针对 longjmp/setjmp 的处理
本文介绍了 setjmp/longjmp 的实现原理、使用陷阱,以及uretprobe中针对 longjmp导致程序流改变 后的相应处理细节!
2025-02-15 12:05:49
617
原创 Linux uprobe 图文详解(三)fork/spawn/exec针对uprobe的处理
在前面两篇文章中,详细介绍了 uprobe、uretprobe 的实现原理。本文将针对 fork、spawn、exec 系统调用中对uprobe的相关处理进行介绍。我们知道,uprobe/uretprobe可以对用户态程序进行实时打桩进行探测,而被打桩的用户态程序,在执行的过程中有可能会调用到 fork、spawn、exec 这一系列系统调用。这些场景下,同样需要针对uprobe进行相关处理。
2025-02-08 23:16:46
652
原创 Linux uprobe 图文详解(二)uretprobe实现原理
上篇文章中介绍了uprobe的实现原理,本篇将继续讲述uretprobe的实现原理。uretprobe是一种基于uprobe的函数级别探测技术,用于探测用户态程序某个具体函数的入口点、返回点。在函数的入口、返回时,会调用响应的钩子函数,该技术一般用于获取:函数运行时间函数返回值等信息。
2025-01-25 21:05:54
862
原创 Linux rmap反向映射 实现原理 图文详解 【硬核干货】
本文结合源码、图文,深度剖析了 linux rmap 反向映射技术的底层实现原理。
2025-01-12 16:36:01
1092
原创 Linux SPARSEMEM_VMEMMAP 内存模型
本文阐述了linux内核如果实现page对象的管理、以及 page虚拟地址 与 物理内存 之间的转换方式
2024-12-14 23:19:00
330
原创 【原创】Linux kprobe 实现原理 图文详解 (四) 指令替换、cpu stopper
本文主要介绍kprobe指令替换的细节,并介绍cpu stopper机制的实现原理
2024-11-06 13:20:37
1388
原创 【原创】Linux kprobe 实现原理 图文详解 (二) kretprobe实现原理
目录一、kretprobe 基本介绍二、kretprobe 使用示例三、kretprobe 实现原理四、具体代码(代码:linux 6.3.1,架构:arm64)One look is worth a thousand words. —— Tess Flanders一、kretprobe 基本介绍Kretprobe是一种基于Kprobe的探测技术,用于探测内核函数的入口点、返回点。在这两处可以调用用户注册的钩子函数,该技术一般用于获取:函数运行时间、函数返回
2024-11-04 13:27:37
2000
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人