【发布时间】:2021-04-08 02:55:42
【问题描述】:
目前我能够找到所编写程序的寄存器值,但不能找到其他进程。
到目前为止我写的是:
#include <linux/sched.h>
struct task_struct *task_list;
for_each_process(task_list){
register int* pc asm("%pc");
register int mar asm("%mar");
register int mdr asm("%mdr");
register int cir asm("%cir");
register int acc asm("%acc");
register int ir asm("%ir");
register int eax asm("%eax");
register int ebx asm("%ebx");
register int ecx asm("%ecx");
register int edx asm("%edx");
register int ip asm("%ip");
register int esp asm("%esp");
register int ebp asm("%ebp");
register int esi asm("%esi");
register int edi asm("%edi");
register int of asm("%of");
register int df asm("%df");
register int _if asm("%if");
register int tf asm("%tf");
register int sf asm("%sf");
register int zf asm("%zf");
register int af asm("%af");
register int pf asm("%pf");
register int cf asm("%cf");
}
我意识到我需要使用 task_list 并指向结构 here 中的一个元素,但我似乎无法找到包含寄存器的元素。
【问题讨论】:
标签: c assembly linux-kernel driver cpu-registers