kdump 调试手段
kdump是在系统崩溃的时候用来转储内存运行参数的一个工具和服务,打个比方,如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核会将此时的内存中的所有运行状态和数据信息收集到一个dump core文件中以便于工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启。
- 软件安装
sudo apt-get install linux-crashdump
安装之后需要重启,通过 /etc/init.d/kdump-tools status 查看kdump状态,active时表示kdump处于启动状态。
- 产生异常,生成dump文件,通过写的一个module(hello.ko)来实现的,该module在init时候做如下操作:
char *p = kmalloc(1, GFP_KERNEL);
while(1) {
*p = 0;
p++;
}
- 生成的dump文件默认在 /var/crash 下,存储目录可以通过 /etc/default/dump-tools 配置。通过上边的module(hello.ko)生成了多次dump文件,具体内容见压缩文件(crash.zip)。
- 文件分析需要下载安装相应版本的 dbgsym,从
http://ddebs.ubuntu.com/pool/main/l/linux/
下载,通过 ‘sudo dpkg –I XXX.deb’安装,安装之后会在 /usr/lib/debug/boot/ 下生成一个vmlinux文件
- 通过 crash 分析dump 文件命令如下
sudo crash /usr/lib/debug/boot/vmlinux dump.xxxx
操作之后会进入一个 crash 界面,help 输出可以调试命令,crash 以 gdb 为核,可以参考gdb命令。
另一个 .crash 文件需要通过apport软件来解压一下,命令为:
sudo apport-unpack /var/crash/linux-image ~/tmp
解压获取到的文件可以直接通过文本编辑器查看。
kdump 调试手段的更多相关文章
- 在Linux-PC上建立kdump调试环境
kdump就是kernel dump的简称,它是从DDR中直接获取的linux内核数据(系统代码/数据).分析kdump是定位内核panic问题的有效手段之一,同时,通过kdump研究内核数据结构,也 ...
- 解析使用ThinkPHP应该掌握的调试手段
解析使用ThinkPHP应该掌握的调试手段 使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉 ...
- PCI 设备调试手段
Author: Younix Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017.04 一PCI 设备调试手段 busybox ls ...
- thinkphp调试手段
使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身 ...
- shell 调试手段总结
对于厌烦了的 print 和 echo,可以尝试点新鲜省力的小手段. 1. 使用 shell 的执行选项 sh 和 bash 常用的执行指令有:-n.-x.-c.-v. 其中: -n 是 noexec ...
- Android 中调试手段 打印函数调用栈信息
下面来简单介绍下 android 中的一种调试方法. 在 android 的 app 开发与调试中,经常需要用到打 Log 的方式来查看函数调用点. 这里介绍一种方法来打印当前栈中的函数调用关系 St ...
- 程序调试手段之gdb, vxworks shell
调试一个程序主要用到的功能: 启动程序 设置函数断点 设置数据断点 单步执行 查看内存值 修改内存值 linux下的gdb,和vxworks下的shell 虽然使用方式和调试命令略有不同,但是都能满足 ...
- tensorflow tfdbg 调试手段
https://blog.csdn.net/gubenpeiyuan/article/details/82710163 TensorFlow 调试程序 tfdbg 是 TensorFlow 的专用调试 ...
- 【Python3爬虫】突破反爬之应对前端反调试手段
一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕: 此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...
随机推荐
- K-means算法的实现
K-MEANS算法是一种经典的聚类算法,在模式识别得到了广泛的应用.算法中有两个关键问题需要考虑:一是如何评价对象的相似性,通常用距离来度量,距离越近越相似:另外一个是如何评价聚类的效果,通常采用误差 ...
- 如何自学web安全(详细路径)
看到学习路径,收藏一下https://blog.csdn.net/q251500/article/details/79441316
- 在Laravel外独立使用laravel-mongodb
laravel框架外部使用laravel-mongodb 插件 下载安装方式主要根据github上的参考: https://github.com/jenssegers/laravel-mongodb# ...
- 2.2、CDH 搭建Hadoop在安装(安装Java Development Kit)
第2步:安装Java Development Kit 要安装Oracle JDK,您可以使用Cloudera Manager安装Cloudera提供的版本,也可以直接安装Oracle的其他版本. 继续 ...
- oracle_效率优化
1.并行和强制走索引的用法 SELECT/*+parallel(T 16) parallel(B 16) parallel(D 16)*/ T.POLICY_NO, T.DEPARTMENT_CODE ...
- Appium 连手机失败Error: Android bootstrap socket crashed: Error: getaddrinfo ENOTFOUND localhost undefined:4724
问题:Appium执行,连接手机报下面的错误 Error: Android bootstrap socket crashed: Error: getaddrinfo ENOTFOUND localho ...
- The hyperlink for cell A2 references relation rId1, but that didn't exist!
excel单元格中存在超链接,去掉 可以参考 https://www.cnblogs.com/songyunxinQQ529616136/p/6599523.html
- thymeleaf 处理模板为字符串
@Autowired private SpringTemplateEngine thymeleaf; public String aa() { Context context = new Contex ...
- Android四大组件总结
1:Actiivty 用户可以看见并可以操作的界面 Activity开启方式:startActivityForResult :startActivity Activity生命周期: onCreate ...
- Python+Selenium学习--定位一组对象
场景 从上一节的例子中可以看出,webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用find_elements方法. ...