dump_stack 分析使用
时间:2022-05-03
本文章向大家介绍dump_stack 分析使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
dump_stack是用来回溯内核运行的信息的,打印内核信息堆栈段;
dump_stack原型:
void dump_stack(void);
1、使用这个功能时需要将内核配置勾选上;
make menuconfig -> kernel hacking--> kernel debug
2、在函数中使用:
1 #include <linux/module.h>
2 #include <linux/init.h>
3 #include <linux/kprobes.h>
4 #include <asm/traps.h>
5
6 MODULE_LICENSE("Dual BSD/GPL");
7
8 static int __init hello_init(void)
9 {
10 printk(KERN_ALERT "dump_stack startn");
11 dump_stack();
12 printk(KERN_ALERT "dump_stack overn");
13 return 0;
14 }
15 static void __exit hello_exit(void)
16 {
17 printk(KERN_ALERT "test modulen");
18 }
19
20 module_init(hello_init);
21 module_exit(hello_exit);
3、需要加入的头文件:
1 #include <linux/kprobes.h>
2 #include <asm/traps.h>
4、得到hello.ko之后,insmod hello.ko,打印信息如下:
1 [ 3719.352022] usb 1-8: new high speed USB device number 11 using ehci_hcd
2 [ 4266.252826] usb 1-8: USB disconnect, device number 11
3 [ 5246.942980] dump_stack start
4 [ 5246.942985] Pid: 3438, comm: insmod Not tainted 3.0.0-21-generic #35-Ubuntu
5 [ 5246.942987] Call Trace:
6 [ 5246.942993] [] hello_init+0x17/0x1000 [hello]
7 [ 5246.942999] [] do_one_initcall+0x42/0x180
8 [ 5246.943003] [] sys_init_module+0xbe/0x230
9 [ 5246.943006] [] system_call_fastpath+0x16/0x1b
10 [ 5246.943008] dump_stack over
在不同环境下,Call Trace也可能被称为Back Trace;
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Excel VBA 在保留原单元格数据的情况下,将计算的百分比加在后面
- 入门级别的面试题——LeetCode题目19:删除链表的倒数第N个节点
- python做web接口测试零散笔记--1
- 要一遍做对——LeetCode题目20:有效的括号
- 双指针算法练习(一)
- 一般是面试的热身题——LeetCode题目21:合并两个有序链表
- LeetCode题目22:括号生成
- OpenGL ES 3.0 | 着色器编译器
- LeetCode题目23:合并K个排序链表
- LeetCode题目24:两两交换链表中的节点
- 最难链表题——LeetCode题目25:K 个一组翻转链表
- LeetCode题目26:删除排序数组中的重复项
- PCA算法原理及实现
- LeetCode题目27:移出元素
- LeetCode题目28:实现strStr()