当前位置: 首页 > news >正文

神华公司两学一做网站知名网站建设平台

神华公司两学一做网站,知名网站建设平台,阿里云怎么wordpress,网站权重降低参考 http://www.cnblogs.com/honpey/p/4575928.html kprobe是linux内核的一个重要特性#xff0c;是一个轻量级的内核调试工具#xff0c;同时它又是其他一些更高级的内核调试工具#xff08;比如perf和systemtap#xff09;的“基础设施”#xff0c;4.0版本的内核中是一个轻量级的内核调试工具同时它又是其他一些更高级的内核调试工具比如perf和systemtap的“基础设施”4.0版本的内核中强大的eBPF特性也寄生于kprobe之上所以kprobe在内核中的地位就可见一斑了。 kprobe是什么 如何高效地调试内核printk是一种方法但是printk终归是毫无选择地全量输出某些场景下不实用于是你可以试一下tracepoint我使能tracepoint机制的时候才输出。对于傻傻地放置printk来输出信息的方式tracepoint是个进步但是tracepoint只是内核在某些特定行为比如进程切换上部署的一些静态锚点这些锚点并不一定是你需要的所以你仍然需要自己部署tracepoint重新编译内核。那么kprobe的出现就很有必要了它可以在运行的内核中动态插入探测点执行你预定义的操作。 kprobe怎么使用 kprobe主要有两种使用方法一是通过模块加载二是通过debugfs接口。 模块加载的方式内核源码下有目录下 samples/kprobes该目录下有许多kprobes的例子可以仿照这些例子写自己的kprobe模块。以kprobe_example.c为例首先声明一个kprobe结构体然后定义其中几个关键成员变量包括symbol_namepre_handlerpost_handler。其中symbol_name是函数名kprobe_example.c中该项为do_fork告诉内核我的探测点放置在了函数do_fork处pre_hander和post_hander分别表示在执行探测点之前和之后执行的钩子函数。然后通过register_kprobe函数注册kprobe即可。将kprobe_example.ko inmod进内核之后每当系统新启动一个进程比如执行lscat等都会输出               pre_hander: p-addr 0x***, ip ****.               post_handler: p-addr 0x***, pc ****. 第一行是执行pre_handler钩子函数的输出第二行是执行post_handler钩子函数的输出当然这些都是内核中案例的写法你可以写自己的钩子函数。 通过debugfs接口注册kprobe模块加载的终究不是很方便尤其对于一些不带gcc的嵌入式系统需要交叉编译ko将ko拷贝到单板然后insmod不便。debugfs下确切地说应该是ftrace提供了一套注册、使能、注销kprobe的接口可以很方便地操作kprobe。 用法如下   1 cd /sys/kernel/debug/tracing【有些系统没有挂载debugfs需要先挂载下 mount -t debugfs nodev /sys/kernel/debug】   2进入到tracing目录这里就是传说中ftrace的天下了执行 echo p:sys_write_event sys_write kprobe_events 向kprobe_events写入p:sys_write sys_write注册kprobe事件。你会发现当前目录下的events下新增一个kprobes目录该目录下 rootstation:/sys/kernel/debug/tracing/events/kprobes# lsenable filter sys_write_event 即我们注册的kprobe事件生效了。那么p:sys_write_event sys_write是什么意思呢首先p表示我们要注册一个kprobe如果要注册retprobe此处应为rsys_write_event表示这个kprobe叫什么名字sys_write表示我们的插入点在哪里。那么“p:sys_write_event sys_write”的语义就很明显了在函数sys_write处插入一个kprobe点这个点的名字叫sys_write_event。       3使能kprobe。执行 cd /sys/kernel/debug/tracing/events/kprobes/events/sys_write_event echo 1 enable cd ../../.. 【退回到/sys/kernel/debug/tracing查看trace文件的输出】 cat trace trace文件的输出是如下的.....bash-808 [003] d... 42715.347565: sys_write_event: (SyS_write0x0/0xb0)    解释下置红的这条输出pid为808的进程bash在自本次开机42715.345565秒的时候调用了一次函数sys_write。.....   4撤消kprobe。执行 cd /sys/kernel/debug/tracing/events/kprobes/events/sys_write_event echo 0 enable【首先先关闭kprobe】 cd ../../.. echo -:kprobes/sys_write_event kprobe_events 【注销kprobe】 以上就是kprobe的两种注册及使用方式通过模块加载以及通过debugfs注册。这两种使用方法有什么联系 使用模块加载的方式是kprobe的一种原始用法在kprobe结构体里定义插入点、钩子函数然后通过register_kprobe注册上这个kprobe即可。ftrace接口是kprobe的一种应用它是一套trace的框架下面的trace机制包括tracepoint、function trace等kprobe仅仅是这些trace机制中的一员。上面的讲述我们也已经看出来了通过ftrace注册的kprobe的输出是在ftrace的输出trace文件。模块加载模式中我们可以自定义kprobe的钩子函数pre_handler和post_handler但是在ftrace下注册的kprobe的钩子是ftrace接口默认的我们设置不了但是具体输出什么我们可以在echo “p:sys_write_event sys_write时指定比如指定x1寄存器的内容等所以ftrace下注册的kprobe功能同样很强大。同时由于ftrace下kprobe的输出基于ftrace的输出框架所以输出信息包含当前进程、CPU、时间戳等信息对于trace来说非常有用。 高级用法可以参看内核文档kprobes.txt 以及 kprobetrace.txt。  转载于:https://www.cnblogs.com/xingmuxin/p/8984043.html
http://www.pierceye.com/news/640296/

相关文章:

  • 网校网站毕业设计的方案网站如何做外链教程视频
  • poiplayer wordpress广州企业网站seo
  • wordpress翻页数字广州网站整站优化
  • 动漫网站设计与实现wordpress禁止留言网址
  • 网站开发交流培训机构网站制作
  • 网站安全建设模板下载百度推广免费建站
  • 开发网站公司都需要什么岗位人员郑州最好的妇科医院
  • 河北专业网站建设公司推荐温州网站建设公司有哪些
  • flash布局 的优秀网站大连网络广告
  • 网站运营seo浙江台州做网站的公司
  • 网站设计师培训学校京东联盟如何做查优惠卷的网站
  • 安全证查询官网安徽seo团队
  • 网站备案怎么注销天工网官方网站
  • 做网站去哪推广好安徽义信建设网站
  • 金乡网站建设哪家便宜示范建设验收网站
  • 西部数码网站管理助手 ftpwordpress 店铺
  • 怎样找到黄页网站唯品会 一家专门做特卖的网站
  • 企业数字展厅设计信息流优化师是干什么的
  • 网站建设福永附近网络公司怎样建设网站最好
  • 水利建设公共服务平台网站网站开发需要用什么
  • 2015做哪个网站致富网站点击量怎么看
  • 好学校平台网站模板下载wordpress 手机 登陆不了
  • 2021不良正能量免费网站app食品网站设计
  • ps做的网站林州网站建设哪家好
  • wordpress站点logo设置简易微网站模板
  • 做网站这么做网络工程师招聘
  • 如何做企业交易网站wordpress主题 ie打不开主页
  • 哪些网站做免费送东西的广告wordpress 请选择一个文件
  • wordpress定时备份插件贵州网站建设seo优化
  • 网站导航条怎么做效果wordpress会员网站