将系统调用事件跟踪输出的格式更改为 ftrace

2023-12-03

我启用了 ftrace 事件跟踪sys_enter_openat系统调用。各自的输出格式给出events/syscalls/sys_enter_openat/format is

print fmt: "dfd: 0x%08lx, filename: 0x%08lx, flags: 0x%08lx, mode: 0x%08lx", ((unsigned long)(REC->dfd)), ((unsigned long)(REC->filename)), ((unsigned long)(REC->flags)), ((unsigned long)(REC->mode))

正如预期的那样,ftrace 的示例输出行类似于

msm_irqbalance-1338  [000] ...1 211710.033931: sys_openat(dfd: ffffff9c, filename: 5af693f224, flags: 2, mode: 0)

有没有办法改变输出格式filename: 5af693f224可以表示为filename: <string>而不是地址? 我想这可以使用systemtap or krpobe但我的设置目前不允许使用它。


您可以使用自己的格式定义 kprobe 事件:

cd /sys/kernel/debug/tracing
echo 'p:open do_sys_open file=+0(%si):string' > kprobe_events
echo 1 > events/kprobes/open/enable
cat trace_pipe

其输出:

cat-123 [001] .... 123.123: open: (do_sys_open+0x0/0x80) file="/etc/fstab"
cat-123 [001] .... 123.124: open: (do_sys_open+0x0/0x80) file="/dev/zero"

详细信息请参见:https://events19.linuxfoundation.org/wp-content/uploads/2017/12/oss-eu-2018-fun-with-dynamic-trace-events_steven-rostedt.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将系统调用事件跟踪输出的格式更改为 ftrace 的相关文章

  • 是否可以将调试会话附加到 Eclipse CDT 中正在运行的程序

    我正在编写一个netscape iplanet插件 在solaris C上使用eclipse 它基本上是一个具有特定入口点的共享对象 并且我希望能够使用eclipse的调试器 gdb 来调试共享对象 我记得在 AIX 中做过类似的事情 您可
  • execlp() 系统调用输出错误

    这个非常简单的例子exec 系统调用 在这里 我试图打电话execlp 两次 但是 我没有得到例外的输出 它仅显示当前目录的第一次调用的输出 include
  • 获取局部变量

    当从已部署的应用程序获取堆栈跟踪作为错误报告时 获取实际变量值以重建抛出异常之前的系统状态也会很有帮助 类似的事情在 Java 中可行吗 如何才能做到这一点 干杯 最大限度 我很确定您无法获取堆栈跟踪中的局部变量 因为输出是从 StackT
  • 在调试模式下,使用节点检查器时,mocha 不会停止在规范文件中的调试器语句上

    当我使用 debug brk 运行 mocha 并使用 node inspector 打开 chrome 开发工具时 调试器会跳过我放入规范文件中的任何调试器语句 I can如果我遵循 则让调试器语句在模块文件中工作这个伎俩 https g
  • 使用 AJAX 加载的 Javascript 和 MVC4 部分视图

    我有一个 ASP NET MVC 4 视图 可以动态地将两个嵌套部分加载到 div 通过 JQuery AJAX 调用的元素 每个部分都有一大堆自己的 Javascript 为了让它全部正常工作 我目前将所有 Javascript 都放在s
  • 如何使用 std::string 创建条件断点

    假设我有这个功能 std string Func1 std string myString do some string processing std string newString Func2 myString return newSt
  • 如何在 VS QuickWatch 窗口中输入日期时间值?

    我正在尝试更改 QuickWatch 窗口中的一些日期时间数据 我尝试过 1 29 2009 等 但似乎都不起作用 它只是一直回到 12 00 00 AM DateTime 中的年 月 小时等字段是不可变的 您无法在 QuickWatch
  • 跟踪所有 ObjC 方法调用?

    有时 当查看别人的大型 Objective C 程序时 很难知道从哪里开始 在这种情况下 我认为记录对每个非 Apple 方法的每次调用会很有帮助 有没有办法做到这一点 基本上 在某个中心位置进行一项更改 并记录调用的每个方法 最好仅限于非
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 内存转储格式类似于 gdb 中的 xxd

    我正在尝试检查一个缓冲区 其中包含二进制格式的消息 但也包含字符串数据 作为示例 我正在使用以下 C 代码 int main void char buf 100 x01 x02 x03 x04String Data xAA xBB xCC
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • 有没有办法防止 Visual Studio 因特定方法中的异常而中断?

    我知道我可以根据异常的类型以及最终使用 异常 对话框捕获异常的事实来控制 Visual Studio 处理异常的方式 但是 我有一个在内部抛出 并捕获 一个库ArgumentOutOfRange当我调用特定方法时出现异常 抛出异常 并被库捕
  • 如何从外部模块导出符号?

    我在内核源代码树之外进行编码 有两个模块 第一个printt有一个功能printtty 将字符串打印到当前 tty 以及第二个模块hello这会调用printtty 在初始化期间 我已经添加了EXPORT SYMBOL printtty 在
  • 为什么 console.log() polyfill 不使用 Function.apply()?

    我一直在看一些流行的console log 包装 填充 保罗 爱尔兰的 http paulirish com 2009 log a lightweight wrapper for consolelog 本阿尔曼的 http benalman
  • 使用 GDB 远程调试 MPI

    我正在尝试从 pi 的远程访问组中调试我使用 MPI 编写的代码 我无法直接访问 Pi 以便能够使用 GUI 来调试代码 我已经尝试过使用屏幕显示的内容question https stackoverflow com questions 3
  • 为什么我无法调试动态加载的程序集?

    我正在开发一个 Web API 项目 该项目使用内部模拟框架 允许拦截和修改来自控制器的响应 它使用 MEF 加载包含某些先决条件匹配时执行的代码的程序集 我知道这是正常工作的 因为我可以在响应中看到模拟已被执行 但由于某种原因我无法调试动
  • 深入了解崩溃的根源

    我遇到了以下崩溃 我无法按需复制 但确实发生了足以引起用户注意的事件 该崩溃报告也已被符号化 怎么查原因啊 这似乎只发生在 4 1 上 Exception Type SIGSEGV Exception Codes SEGV ACCERR a
  • 无法在 .js 文件内命中断点

    我升级到 win 8 现在我在管理员权限下运行 VS 2012 并在 MVC 4 中创建一个网站 我在线检查了不同的解决方案 但没有一个有效 我的解决方案中有一个 javascript 文件 但是当我在其中放置断点时 在运行时我看到 没有为
  • NetBeans 可以同时调试 PHP 和 JavaScript 吗?

    我想在同一个项目中的 NetBeans 中调试 JavaScript 和 PHP 是否可以 目前我正在使用 HTML5 项目来调试 JavaScript 使用 PHP 项目来调试 PHP 我想要专业的方法来调试两者 这应该可以在即将发布的
  • 如何从 Java 生产代码中删除调试语句

    编译器是否可以从生产代码中删除用于调试目的 例如日志记录 的语句 调试语句需要以某种方式进行标记 可能使用注释 设置属性 debug true 并在每个调试语句中检查它很容易 但这会降低性能 如果编译器能够简单地使调试语句消失 那就太好了

随机推荐

  • Powershell AcceptTcpClient() 不能被 Ctrl-C 中断

    我正在使用 Powershell 编写一个简单的 TCP IP 服务器 我注意到 Ctrl C 无法中断 AcceptTcpClient 调用 不过 Ctrl C 在通话后工作正常 我已经四处搜寻 到目前为止还没有人报告类似的问题 可以通过
  • java数组排序类

    我做了一个类如下 class strVal double val String str 现在我创建了一个此类的数组 现在我想对该数组进行排序strVal val 我想知道Java中有没有标准定义的方法 实现 java lang Compar
  • 如何在客户端开启WCF跟踪?

    我想使用 WCF 跟踪功能 Here我找到了在服务端打开WCF跟踪的帮助 现在我想在客户端为我只能使用的 WCF 服务启用 WCF 跟踪功能 检查此链接以在客户端启用跟踪 http social msdn microsoft com For
  • Android L 的波纹效果 - 按钮的触摸反馈 - 使用 XML

    我试图了解如何实现按钮和其他视图的 波纹效果 触摸反馈 我查看了与 SO 上的波纹触摸效果相关的问题 并对此有了一些见解 我能够使用这个java代码成功地获得连锁反应 import android animation ObjectAnima
  • 从 URL 创建 Img 标签

    我想要的是 如果字符串中的 URL 包含 jpg at the 网址末尾 不是字符串 那么它应该用它来制作图像preg replace否则建立一个正常的链接 例如 如果我有http www example com images photo
  • 提交angularjs后清除表单

    您好 我想在成功完成后清除表单值 我应该如何实施 div div class container form group div div
  • 删除字符串中连续字符的最快方法 - Python [重复]

    这个问题在这里已经有答案了 我们可以使用以下方法删除字符串中的连续字符 def deduplicate string char return char join substring for substring in string strip
  • 如何使用 Google OAuth2 Javascript 库获取刷新令牌?

    我正在使用 Google OAuth2 Javascript 库向用户请求访问令牌 我想将令牌存储在服务器上的数据库中 为了能够在令牌过期后访问该用户的数据 我还需要存储刷新令牌 我知道在使用服务器端 Google OAuth2 库 指定
  • Angular 7共享服务不共享

    我是角度新手 我试图在导航后将数据从一个组件 HomeComponent 传递到另一个组件 Profile Component 我创建了一个共享服务 DataService 我在 HomeComponent 和 ProfileCompone
  • 引导下拉菜单在页面加载时打开

    我已经用引导程序设计了这个下拉菜单 li class dropdown a class dropdown toggle href 15min strong class caret strong a ul class dropdown men
  • 如何匹配 IPv4 地址

    我试图让我的正则表达式匹配以下内容 169 254 0 0 169 254 254 255 谁能帮助我如何实现这一目标 到目前为止我有这个 169 254 1 9 1 2 1 9 1 2 1 4 但它也会拾取 169 254 255 1 这
  • Symfony2:在通用 PHP 类中获取 Doctrine

    在 Symfony2 项目中 当您使用控制器 您可以访问Doctrine通过致电getDoctrine on this i e this gt getDoctrine 通过这种方式 我可以访问这样一个 Doctrine Entity 的存储
  • 如何通过App Engine将图像上传到云存储?

    我正在使用 python 和谷歌应用程序引擎 我想从浏览器获取图像并将其上传到云存储 表格
  • 将位数组转换为 uint 或类似的打包值

    我有大量布尔值 我想将它们打包 解包为 uint 或类似的值 我怎样才能在 C 中做到这一点 您可以使用BitArray类来转换bool数组变成int array int theIntArray new int theBoolArray L
  • 熊猫在滚动时间窗口中找到最大值

    我有一张桌子df有柱子 timestamp and Y 我想添加另一列 MaxY 其中包含最大的Y最多未来 24 小时的值 那是 df MaxY iloc i df df timestamp gt df timestamp iloc i d
  • 双重保存图像

    我已经使用过手册http developer android com guide topics media camera html但我有一个问题 此代码保存图像两次 第一张图片保存在 sdcard DCIM Camera 中 第二张图片保存
  • 如何使用 Selenium 单击按钮的特定部分以显示选项列表?

    table class x btn x btn text icon cellspacing 0 style width 1 tbody class x btn small x btn icon small left tr tr td cla
  • android canvas绘制圆圈并获取触摸事件

    我一直在尝试在我需要的地方制作这样的演示draw许多 数百个 circle形状上canvas 或任何其他方式 如果可能的话 绘制画布后我需要缩放并移动它 并且还想捕捉分别对每个形状进行单击 触摸 事件 所以我知道我可以获取画布触摸事件并获取
  • 有没有办法使用 while 循环函数作为列表跟踪器?并与 FileI/O 混合?

    to do list while True in listed input item list if in listed quit break if in listed 0 add num1 int user li 1 to do list
  • 将系统调用事件跟踪输出的格式更改为 ftrace

    我启用了 ftrace 事件跟踪sys enter openat系统调用 各自的输出格式给出events syscalls sys enter openat format is print fmt dfd 0x 08lx filename