dump_stack 分析使用
dump_stack是用来回溯内核运行的信息的,打印内核信息堆栈段;
dump_stack原型:
void dump_stack(void);
1、使用这个功能时需要将内核配置勾选上;
make menuconfig -> kernel hacking--> kernel debug
2、在函数中使用:
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kprobes.h>
#include <asm/traps.h> MODULE_LICENSE("Dual BSD/GPL"); static int __init hello_init(void)
{
printk(KERN_ALERT "dump_stack start\n");
dump_stack();
printk(KERN_ALERT "dump_stack over\n");
return ;
}
static void __exit hello_exit(void)
{
printk(KERN_ALERT "test module\n");
} module_init(hello_init);
module_exit(hello_exit);
3、需要加入的头文件:
#include <linux/kprobes.h>
#include <asm/traps.h>
4、得到hello.ko之后,insmod hello.ko,打印信息如下:
[ 3719.352022] usb -: new high speed USB device number using ehci_hcd
[ 4266.252826] usb -: USB disconnect, device number
[ 5246.942980] dump_stack start
[ 5246.942985] Pid: , comm: insmod Not tainted 3.0.--generic #-Ubuntu
[ 5246.942987] Call Trace:
[ 5246.942993] [] hello_init+0x17/0x1000 [hello]
[ 5246.942999] [] do_one_initcall+0x42/0x180
[ 5246.943003] [] sys_init_module+0xbe/0x230
[ 5246.943006] [] system_call_fastpath+0x16/0x1b
[ 5246.943008] dump_stack over
在不同环境下,Call Trace也可能被称为Back Trace;
dump_stack 分析使用的更多相关文章
- dump_stack 实现分析【转】
		
转自:http://kernel.meizu.com/2017/03/18-40-19-dump_stack.html 1 简介 说起 dump_stack() ,相信从事 Linux 内核或者驱动相 ...
 - linux内核中打印栈回溯信息 - dump_stack()函数分析【转】
		
转自:http://blog.csdn.net/jasonchen_gbd/article/details/45585133 版权声明:本文为博主原创文章,转载请附上原博链接. 目录(?)[-] ...
 - sysfs分析
		
Linux设备模型——设备驱动模型和sysfs文件系统解读 内核版本:2.6.30 1. What is sysfs? 个人理解:sysfs向用户空间展示了驱动设备的层次结构.我们都知道设备和对应 ...
 - 内核对象kobject和sysfs(3)——kobj分析
		
内核对象kobject和sysfs(3)--kobj分析 在分析kobj之前,先总结下kobj的功能: 实现结构的动态管理: 实现内核对象到sysfs的映射: 实现自定义属性的管理. 关注一下kobj ...
 - warn_alloc():page allocation failure问题分析
		
关键词:warn_alloc().__GFP_XXX.order.CMA等等. 在内存申请的时候经常会遇到类似“ xxx: page allocation failure: order:10...”类 ...
 - Linux soft lockup分析
		
关键词:watchdog.soft lockup.percpu thread.lockdep等. 近日遇到一个soft lockup问题,打印类似“[ 56.032356] NMI watchdog: ...
 - dump_stack的简单使用 【转】
		
转自:http://blog.chinaunix.net/uid-26403844-id-3361770.html http://blog.csdn.net/ryfjx6/article/detail ...
 - CentOS 6.4在运行XFS时系统crash的bug分析
		
最近有一台CentOS 6.4的服务器发生多次crash,kernel version 是Linux 2.6.32-431.29.2.el6.x86_64.从vmcore-dmesg日志内容及cras ...
 - [转]Android WiFi 掉线原因分析
		
看到一个比较详细的分析wifi断开的文章.收藏一下. 原文: http://blog.csdn.net/chi_wy/article/details/50963279 原因1 .从Log分析来看,这个 ...
 
随机推荐
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
			
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
 - js判断一些时间范围是否有重复时间段
			
function isHasRepeatTime(data) { var startTimeArr = []; var endTimeArr = []; (data || []).map(functi ...
 - vue.js使用webpack发布,部署到服务器上之后在浏览器中可以查看到vue文件源码
			
webpack+vue 2.0打包发布之后,将发布的文件部署到服务器中之后,浏览器中访问的时候会出现一个webpack文件夹,里边会显示vue文件源码 如果不想让vue源文件显示出来,可以在confi ...
 - time模块整理
			
time模块中包含的方法 time() -- 返回当前系统的时间戳clock() -- 在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳). 而在WINDOW ...
 - 分布式:2PC,3PC,Paxos,Raft,ISR [转]
			
本文主要讲述2PC及3PC,以及Paxos以及Raft协议. 两类一致性(操作原子性与副本一致性) 2PC协议用于保证属于多个数据分片上的操作的原子性.这些数据分片可能分布在不同的服务器上,2PC协议 ...
 - MyBatis 批量操作、集合遍历-foreach
			
在使用mybatis操作数据库时,经常会使用到批量插入.IN条件查询的情况,这时就难免要使用到foreach元素.下面一段话摘自mybatis官网: foreach 元素的功能是非常强大的,它允许你指 ...
 - WebUploader上传文件(一)
			
写在前面: 文件上传方式很多的,对于大文件的上传,在本次项目中也有涉及,主要是用了分片断点上传大文件.所以就去了解了一下WebUploader,先从简单的上传文件开始吧~ 在代码中写注释,这样看的比较 ...
 - www.netcraft.com查看站点服务器使用的是什么操作系统
			
查看站点服务器使用的是什么操作系统
 - 653. Two Sum IV - Input is a BST
			
Given a Binary Search Tree and a target number, return true if there exist two elements in the BST s ...
 - ArcGIS 网络分析[1.1] 创建用于网络分析用的线类型shp文件[这个太基础了吧!]
			
具体的准备,在上一篇就说过了,不再赘述. 阅读本篇前,需要的预备知识是:ArcGIS创建各种矢量数据的方法,了解地理坐标与投影坐标 本篇只创建单一的线数据,至于点数据,以后进行复杂的网络分析时再添加进 ...