ftrace: tracing linux function calls

First confirm that you have root privilege.

Second check the config of kernel that you have the configs on:

CONFIG_FTRACE=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_EVENT_TRACING=y
CONFIG_FUNCTION_TRACER
CONFIG_STACK_TRACER
CONFIG_DYNAMIC_FTRACE

Last you confirm you have your debugfs/tracefs mounted, by:

mount -t debugfs nodev /sys/kernel/debug/

Then go into the sys entry tracing and you will find the friendly README.

List some triggers:

options/funcgraph-irqs, tracing_on, max_graph_depth, set_graph_function, set_ftrace_filter, set_ftrace_pid, current_tracer.

stack_trace can probe runtime kernel address of functions.

原文地址:https://www.cnblogs.com/sansna/p/9866015.html

时间: 2024-10-20 22:51:57

ftrace: tracing linux function calls的相关文章

使用 ftrace 调试 Linux 内核,第 3 部分

内核头文件 include/linux/kernel.h 中描述了 ftrace 提供的工具函数的原型,这些函数包括 trace_printk.tracing_on/tracing_off 等.本文通过示例模块程序向读者展示如何在代码中使用这些工具函数. 使用 trace_printk 打印跟踪信息 ftrace 提供了一个用于向 ftrace 跟踪缓冲区输出跟踪信息的工具函数,叫做 trace_printk(),它的使用方式与 printk() 类似.可以通过 trace 文件读取该函数的输出

使用 ftrace 调试 Linux 内核,第 2 部分

ftrace 操作概述 使用 ftrace 提供的跟踪器来调试或者分析内核时需要如下操作: 切换到目录 /sys/kernel/debug/tracing/ 下 查看 available_tracers 文件,获取当前内核支持的跟踪器列表 关闭 ftrace 跟踪,即将 0 写入文件 tracing_enabled 激活 ftrace_enabled ,否则 function 跟踪器的行为类似于 nop:另外,激活该选项还可以让一些跟踪器比如 irqsoff 获取更丰富的信息.建议使用 ftra

使用 ftrace 调试 Linux 内核,第1部分

ftrace 是 Linux 内核中提供的一种调试工具.使用 ftrace 可以对内核中发生的事情进行跟踪,这在调试 bug 或者分析内核时非常有用.本系列文章对 ftrace 进行了介绍,分为三部分.本文是第一部分,介绍了内核相关的编译选项.用户态访问 ftrace 的接口.ftrace 的数据文件,并对 ftrace 提供的跟踪器的用途进行了介绍,以使读者更好的了解和使用该工具. ftrace 是内建于 Linux 内核的跟踪工具,从 2.6.27 开始加入主流内核.使用 ftrace 可以

Remote table-valued function calls are not allowed

在SQL Server中,在链接服务器中调用表值函数(table-valued function)时,会遇到下面错误: SELECT * FROM LNK_TEST.TEST.DBO.TEST(12)   消息 4122,级别 16,状态 1,第 1 行   Remote table-valued function calls are not allowed. 以前几乎没有在链接服务器(Linked Server)当中调用过表值函数,查了一下资料,看来SQL Server这似乎是不支持的(抑或是

AsyncCalls – Asynchronous function calls

AsyncCalls – Asynchronous function callsWith AsyncCalls you can execute multiple functions at the same time and synchronize them at every point in the function or method that started them. This allows you to execute time consuming code whos result is

使用ftrace学习linux内核函数调用

http://www.cnblogs.com/pengdonglin137/articles/4752082.html 转载: http://blog.csdn.net/ronliu/article/details/6446251 linux中大量使用函数指针钩子,导致阅读代码困难.比如想知道一个函数的调用路径,那么就只能用source insight之类的工具看代码了.有没有办法可以迅速获得调用关系的整体印象?ftrace是内核提供的一种调试工具,可以对内核中发生的事情进行跟 踪.比如函数的调

linux function

#!/bin/bash function sayHello() { #这里的{ 和它前面的)之间可以没有空格 echo "Hello $1" } sayHello 'Neeky'

远程访问Function时报错Remote table-valued function calls are not allowed.

开始是这样调用的:select * from [LinkedServer].[db name].dbo.[function name](param1, param2) 原因: Only table-valued functions can be used in the FROM clause. 解决办法: If it's a scalar function, use this: SELECT * FROM OPENQUERY(LinkedServer, 'SELECT [db name].dbo

Linux System Calls Hooking Method Summary

http://www.cnblogs.com/LittleHann/p/3854977.html http://www.cnblogs.com/cozy/articles/3175615.html http://samanbarghi.com/blog/2014/09/05/how-to-wrap-a-system-call-libc-function-in-linux/ http://wwwold.cs.umd.edu/Library/TRs/CS-TR-4585/CS-TR-4585.pdf