Linux获取进程中变量
列出所有进程
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/list.h> static __init int print_pid(void)
{
struct task_struct *task,*p;
struct list_head *pos;
int count=;
printk("Hello,let begin\n");
task = &init_task;
list_for_each(pos,&task->tasks)
{
p = list_entry(pos, struct task_struct, tasks);
count++;
printk("%d---->%s-->%X\n",p->pid,p->comm, p->state);
}
printk("the number of process is:%d\n",count);
return ;
} static __exit void print_exit(void)
{
printk("<0>end!\n");
}
module_init(print_pid);
module_exit(print_exit);
获得虚拟地址的物理内存
/*
*伪代码,示例
*32位地址,三级映射(没有pud_t),页面大小4KB
*/
unsigned long addr = 0x12345678;//要找的虚拟地址,用户空间所访问的地址
unsigned long real_addr = 0x00;//要输出的地址
struct task_struct *cur_task = get_current();//获取当前进程控制块
struct mm_struct *mm = cur_task -> mm;//进程虚拟空间
pgd_t *pgd;//描述页全局目录项
pmd_t *pmd;//描述页中间项
pte_t *pte;//页表项
pgd = pgd_offset(mm, addr);//找出所在目录
if (pgd_none(*pgd)){
goto out;
}
pmd = pmd_offset(pgd, addr);//找出所在中间项
if (pmd_none(*pmd)){
goto out;
}
pte = pte_offset(pmd, addr);//找出所在页面
if (pte_none(*pte)) {
goto out;
}
//假设每页4KB
real_addr = addr & 0x00003fff; //取出页面偏移量
real_addr += pte;//内核空间访问的地址
real_addr -= PAGE_OFFSET;//真正物理地址()
printk("物理地址是 %x\n",real_addr);
return;
out:
printk("没有内存映射",real_addr);
Linux获取进程中变量的更多相关文章
- Unix/Linux获取进程的详细信息
Linux的进程的信息都记录在/proc/<pid>/下面,其实常用的ps.top命令也是从这里读取信息的.常用的信息有: cmd(命令).cmdline(完整的命令行参数).envrio ...
- linux --> 获取进程执行时间
获取进程执行时间 一.时间概念 在linux下进行编程时,可能会涉及度量进程的执行时间.linux下进程的时间值分三种: 时钟时间(real time):指进程从开始执行到结束,实际执行的时间. 用户 ...
- Linux shell 脚本中变量的数学计算【转】
本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让 ...
- Linux获取进程执行时间
1.前言 测试一个程序的执行时间,时间包括用户CPU时间.系统CPU时间.时钟时间.之前获取之前时间都是在程序的main函数用time函数实现,这个只能粗略的计算程序的执行时间,不能准确的获取其 ...
- Unix 线程改变创建进程中变量的值(2)
执行环境:Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 ...
- PHP 获取js中变量的方法
留作笔记 <php? $aaa="<script>document.write(1)</script>"; echo $aaa; ?> 其中数字 ...
- 关于linux的进程中的各个线程cpu占用情况的分析和查看
我们常常会在新开的服搭建一个游戏的server,有时候要进行压力測试,那么怎样来看呢,一般我们会通过top命令查看各个进程的cpu和内存占用情况,获得到了我们的进程id,然后我们或许会通过pstack ...
- linux 获取目录中详细信息 -rw-r--r--详解
-rw-r–r– 1 root root 1313 Sep 3 14:59 test.log详解 查询目录中的内容命令 ls [选项] [文件或目录] 选项: -a 显示所有文件.包括隐藏文件 -l ...
- Linux 获取目录中最后一个文件的名字
find /application/docker_hub/logs/fof1private/amount_dev -type l | xargs basename
随机推荐
- Java类和对象11
首先,编写一个类ChongZai,该类中有3个重载的方法void print():其次,再编写一个主类来测试ChongZai类的功能. public class ChongZai { public v ...
- Java类和对象6
按要求编写Java应用程序. (1)建立一个名叫Cat的类: 属性:姓名.毛色.年龄 行为:显示姓名.喊叫 (2)编写主类: 创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该 ...
- UWP开发小结
做了两天的UWP开发,上手还是挺快的,不过比较郁闷的是总会被一些很简单的细节卡住很久. 首先当然是用C#修改xaml界面这个难点了,Bing搜了好久都没找到相关信息,最后还是老司机伟神指点的我.对于g ...
- PL/SQL Developer 关闭Sql窗口快捷键
preferences->keyconfigration->file/close然后设置你喜欢的按键就行了.(ps:这个close是关闭当前活动的那一个页面)
- Java Web MVC 一个实例的手动实现
平台: tomcat7.0 Servlet3.0 Windows命令行编译 实现的功能: 在网页上可以进行对Product类的三个属性的输入,点击保存之后跳转到另一个显示输入内容的界面 文 ...
- 【Codeforces Round #422 (Div. 2) B】Crossword solving
[题目链接]:http://codeforces.com/contest/822/problem/B [题意] 让你用s去匹配t,问你最少需要修改s中的多少个字符; 才能在t中匹配到s; [题解] O ...
- 洛谷 P2440 木材加工
P2440 木材加工 题目背景 要保护环境 题目描述 题目描述: 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有 剩余),需要得到的小段的数目是给定的.当然,我们希望得到 ...
- 四 HBase 客户端设置缓存优化查询。
其实查询无非是一个 HBase 的 RPC 计算公式 .然后给API 提供值. RPCs = (Rows * Cols per Row) / Min(Cols per Row, Batch Size) ...
- WEB前端,混合排版,有的宽有的窄,滚动会出现空白处,怎么办。
多数时候出现空白都是由于有滚动栏滚到一边就会产生空白. overflow-x: hidden; 在最大图的那个div里写这句.
- javascript小白学习指南1---0
第二章 变量和作用域 在看第二章时我希望,你能够回想一下前一次所讲的内容 假设有所遗忘 点这里 今天我们来说说 变量和作用域的问题 本章主要内容 基本类型和引用类型 运行环境 垃圾回收( ...