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

保山专业的网站建设wordpress 文章 附件

保山专业的网站建设,wordpress 文章 附件,国内saas软件公司排名,免费注册网站网址参考 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.zqtcl.cn/news/909273/

相关文章:

  • 开一个网站建设公司好产品销售型的网站
  • 苍梧县网站建设南京网站建设 雷仁网络
  • 四川网站制作成都wordpress 移动支付
  • 山西网站开发二次开发做自媒体可以参考的外国网站
  • 合肥 网站设计大学生创新创业大赛项目计划书
  • 北京网站主题制作做婚恋网站怎么样
  • 卖设计图的网站低代码开发平台公司
  • 建设银行顺德分行网站中国建筑装饰公司排名
  • 百度网站提交入口百度国内打开google网页的方法
  • 上海高端品牌网站制作wordpress返利主题
  • 网站建设会遇到哪些难题安阳网站如何做优化
  • 哈德网站建设使用wordpress创建企业官网
  • 新品销售网站建设建设银行网站怎么登陆密码
  • 外贸营销主题怎么写seo薪资
  • 手机音乐网站源码关键路径
  • 网站制作哪些官方静态网站模板
  • 网站开发seo网站排名优化服务
  • 佛山营销网站开发帝国cms网站公告怎么做
  • 2_试列出网站开发建设的步骤在哪里进行网站域名的实名认证
  • 个人网站做博客还是做论坛网络服务推广
  • 遵义网站制作小程序辛集做网站
  • 做逆战网站的名字吗网站维护员
  • 浏览器收录网站重庆网上房地产网
  • 门户网站建设哪专业wordpress爆破密码字典
  • 响应式网站的制作app开发公司加盟
  • 建设部安全事故通报网站sem是什么分析方法
  • 北京网站制作出名 乐云践新手机建站专家
  • 做机械有什么兼职网站安徽网站优化怎么做
  • 网站建设规划semir是什么品牌
  • 网站建设开发环境自学服装设计下载