首页
社区
课程
招聘
未解决 [求助] Linux内核中的进程读取文件需要访问sys_read、vfs_read,在这两个函数return返回时是否可以修改函数体中变量的值
发表于: 2019-7-17 10:53 2471

未解决 [求助] Linux内核中的进程读取文件需要访问sys_read、vfs_read,在这两个函数return返回时是否可以修改函数体中变量的值

2019-7-17 10:53
2471
目前,我所知道的情况是SystemTap可以修改进程中的变量值。下面是一个简单的demo:
demo由test.c和test.stp组成
test.c如下所示:
#include<stdio.h>
 
typedef struct node {
  int id;
} node_t;
 
 
int main() {
  node_t node1;
  node_t *p = &node1;
  node1.id = 1;
 
  printf("change value\n");
  printf("The value of id is %d\n", node1.id);
 
  return 0;
}
使用“gcc -Wall -g -o test ./test.c”将test.c编译为可执行文件test
test.stp如下所示:
probe process("./test").statement("main@./test.c:13")
{
          $p->id = 3;
          printf("$p$ : %s\n", $p$);
}
执行“stap -g test.stp”,结果如下所示:
change value
The value of id is 3


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回