linux 内核crash 命令】的更多相关文章

https://www.dedoimedo.com/computers/crash-book.html#download…
一.查看Linux内核版本命令(两种方法): .cat /proc/version .uname -a 二.查看Linux系统版本的命令(3种方法): .lsb_release -a即可列出所有版本信息: 这个命令适用于所有的Linux发行版,包括Redhat.SuSE.Debian…等发行版. .cat /etc/redhat-release这种方法只适合Redhat系的Linux: .cat /etc/issue此命令也适用于所有的Linux发行版. 参考:http://www.ha97.c…
转载自:http://linux.cn/article-3475-1.html 在工作中经常会遇到一些内核crash的情况,本文就是根据内核出现crash后的打印信息,对其进行了分析,使用的内核版本为:Linux2.6.32. 每一个进程的生命周期内,其生命周期的范围为几毫秒到几个月.一般都是和内核有交互,例如用户空间程序使用系统调用进入内核空间.这时使用的不再是用户空 间的栈空间,使用对应的内核栈空间.对每一个进程来说,Linux内核都会把两个不同的数据结构紧凑的存放在一个单独为进程分配的存储…
在内核开发的过程中,经常会碰到内核崩溃,比如空指针异常,内存访问越界.通常我们只能靠崩溃之后打印出的异常调用栈信息来定位crash的位置和原因.总结下分析的方法和步骤. 通常oops发生之后,会在串口控制台或者dmesg日志输出看到如下的log,以某arm下linux内核的崩溃为例, <2>[515753.310000] kernel BUG at net/core/skbuff.c:1846! <1>[515753.310000] Unable to handle kernel…
1.Ubuntu 查看版本命令,三种方法. 1.使用  "uname -a" 2.使用  "lsb_release -a"   3.使用  "cat /etc/issue" 2.CentOS 查看版本命令,三种方法. 1.使用  "uname -a" 2.使用  "lsb_release -a" 3.使用  "cat /etc/issue"…
一.查看Linux内核版本命令(两种方法): 1. cat /proc/version Linux version -.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version (Red Hat -) (GCC) ) # SMP Thu Nov :: UTC 2. uname -a Linux vm-prd-ccctd-ccctd--.tuniu.org -.el7.x86_64 # SMP Thu Nov :: UTC x86_64 x…
加载内核驱动的通常流程: 1.先将.ko文件拷贝到/lib/module/`uname -r`(内核版本号)/kernel/driver/...目录下, 根据具体用途的区别分为net.ide.scsi.usb.video.parport.md.block.ata等等. 2.运行depmod -a,更新模块依赖新,主要是更新modules.dep文件 3.运行modprobe加载内核模块 lsmod 功能:列出内核已载入模块的状态 用法:lsmod 描述: lsmod 以美观的方式列出/proc/…
作者 彭东林 pengdonglin137@163.com 软件 Host: Ubuntu14.04 64 Qemu 2.8.0 Linux 2.6.24 busybox 1.24.2 gcc 4.4.7 概述 为了尽量还原<深入Linux内核架构>这本书的环境,我下载了Linux 2.6.24,由于这个内核版本比较老,所以用最新的gcc编译会有问题,所以需要安装一个比较老的gcc,从该内核的README得知,gcc的版本最少应该是3.2. 正文 一.安装GCC 使用apt-cache sea…
一.查看Linux内核版本命令(2种方法): 1.cat /proc/version Linux version 3.10.0_1-0-0-8 (root@xxx) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Thu Oct 29 13:04:32 CST 2015 2.uname -a Linux xxx 3.10.0_1-0-0-8 #1 SMP Thu Oct 29 13:04:32 CST 2015 x86_…
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息. Linux内核(Linux kernel)简介 内核是操作系统的核心 ,其主要功能有: 1.响应中断,执行中断服务程序 2.管理多个进程,调度和分享处理器的时间 3.管理进程地址空间的内存管理 4.网络和进程间通信等系统服务程序 内核的活动范围: 1.运行于用户空间,执行用户进程 2.运行于内核…
转自:https://blog.csdn.net/guowenyan001/article/details/19807555 一.简介 linux内核发送崩溃时,kdump会生成一个内核转储文件vmcore. 可以通过分析vmcore分析出内核崩溃的原因. crash是一个被广泛应用的内核奔溃转储文件分析工具. 使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo. 二.安装kudmp.crash.kernel-debuginfo 安装包的版本,要…
<< System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tcpdump/ gdb(jdb)/ netstat/vmstat/ mpstat/truss(strace)/iostat/sar/nmon(top)等系列工具,这些工具从某个方面为我们提供了诊断信息.但这些工具常常带有各类“副作用”,比如 truss(见于 AIX/Solaris) 或者 strace(见于…
原理 Linux内核发送崩溃时,kdump会生成一个内核转储文件vmcore. 可以通过分析vmcore分析出内核崩溃的原因. crash是一个被广泛应用的内核奔溃转储文件分析工具.使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo. 安装需要的软件 1.查看系统内核 [root@qd01-stop-free015 ~]# uname -r 3.10.0-1160.15.2.el7.x86_64 2.安装kdump,crash yum insta…
本文主要分析了Linux的iostat命令的源码,iostat的主要功能见博客:性能测试进阶指南——基础篇之磁盘IO iostat源码共563行,应该算是Linux系统命令代码比较少的了.源代码中主要涉及到如下几个Linux的内核文件: 1./proc/diskstats——该文件是内核2.6以上的系统中的,记录了从Linux系统启动之后,所有磁盘的相关信息,该文件中每个参数代表的意义可以自行google或者baidu,或者见博客:/proc/diskstats参数含义. 2./proc/par…
hostname 显示主机名称uname -a 显示内核版本详细信息,其中包括主机名称,发行厂商这个命令是看不到的. 如果要看发行版及厂商可使用命令:lsb_release –a uname -a后,显示:Linux ubuntu 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux Linux ubuntu 操作系统名称2.6.38-10-generic #46-Ubuntu…
一.查看内核版本命令: (1)[root@localhost ~]#cat/proc/version Linux version 2.6.18-238.el5 (mockbuild@x86-012.build.bos.redhat.com)(gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Sun Dec 19 14:22:44 EST2010 (2)[root@localhost~]# uname -r 2.6.18-238.el5 (…
    一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现.    命令格式:  sysctl [-n] [-e] -w variable=value  sysctl [-n] [-e] -p (default /etc/sysctl.conf)  sysctl [-n] [-e] –a   常用参数的意义:  -w  临时改变某个指定参数的值,如         # sysctl -w net.i…
Linux内核参数设置sysctl命令详解 原文:https://www.zhukun.net/archives/8064 sysctl是一个允许您改变正在运行中的Linux系统的接口. 它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能. 用sysctl可以读取设置超过五百个系统变量. 基于这点, sysctl提供两个功能:读取和修改系统设置. 常用参数-w 临时改变某个指定参数的值,如sysctl -w net.ipv4.ip_forwar…
查看linux发行版本: $lsb_release -a 查看linux内核版本: $cat /proc/version 或 $uname -a…
今天使用 make 编译 linux 内核,发现CPU只用了30%多一点,而我的电脑是4核的,所以如果没有意外的话,make 编译 linux 内核的任务是用单线程做的. 又了解到,使用-j4参数可以使用4个线程更高效的完成编译工作.…
1.内核版本由linux内核社区统一编码和发布,格式如下图: major.minor.patch-build.desc 主版本号.次版本号.对次版本号的修订次数-编译次数.当前版本的特殊信息 次版本号有奇数和偶数之分,奇数表示开发版,偶数表示稳定版 desc:常见参数EL(Red Hat企业版Enterprise Linux).pp(Red Hat测试版).fc(Red Hat中Fedorca Core).smp(对称多处理器).rc/r(候选版本,后面的数字越大越接近正式版) 2.uname…
Linux内核同步机制之(一):原子操作 http://www.wowotech.net/linux_kenrel/atomic.html 一.源由 我们的程序逻辑经常遇到这样的操作序列: 1.读一个位于memory中的变量的值到寄存器中 2.修改该变量的值(也就是修改寄存器中的值) 3.将寄存器中的数值写回memory中的变量值 如果这个操作序列是串行化的操作(在一个thread中串行执行),那么一切OK,然而,世界总是不能如你所愿.在多CPU体系结构中,运行在两个CPU上的两个内核控制路径同…
转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核的关键在于你的对内核的深刻理解. 一  调试前的准备 在调试一个bug之前,我们所要做的准备工作有: 有一个被确认的bug. 包含这个bug的内核版本号,需要分析出这个bug在哪一个版本被引入,这个对于解决问题有极大的帮助.可以采用二分查找法来逐步锁定bug引入版本号. 对内核代码理解越深刻越好,同…
转自Linux中国 Linux内核拥有许多可以配置的特性,接下来我们还有许多要配置. 下一个可以配置的特性是x86的随机数生成器(x86 architectural random number generator (ARCH_RANDOM)).记住,我们现在配置的是针对AMD64系统的内核代码.这个随机数生成器使用Intel x86的RDRAND指令.这并不通用,所以为了一个更轻量的内核我禁用了它. 接着,我们可以启用或者禁用"Supervisor Mode Access Prevention…
http://mogu.io/156-156 摘要 本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些Linux内核机制从而选择更合适的使用策略. 前言 搜索团队的服务器前段时间频繁出现CPU load很高(比如load average达到80多)的情况,正所谓术业有专攻,搜索的兄弟们对Linux底层技术理解的不是很深入,所以这个问题困扰了他们一段时间. 相信我们在遇到问题时都有类似的经历,如果这个…
目录[-] 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2  dump_stack() 五  printk() 1  printk函数的健壮性 2  printk函数脆弱之处 3  LOG等级 4  记录缓冲区 5  syslogd/klogd 6  dmesg 7 注意 8 内核printk和日志系统的总体结构 9  动态调试 六  内存调试工具 1  MEMWATCH 2…
linux中管道符"|"的作用 命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象(下图应用别人的图片) 1. 例如: ps aux | grep "test"  在 ps aux中的結果中查找test. 2. 例如:   find . -name "*.txt" | xargs grep "good" -n --color=auto   把find的结果当成参数传入到grep中,即在那些文件内部查找good关键…
Linux内核调试方法总结 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2  dump_stack() 五  printk() 1  printk函数的健壮性 2  printk函数脆弱之处 3  LOG等级 4  记录缓冲区 5  syslogd/klogd 6  dmesg 7 注意 8 内核printk和日志系统的总体结构 9  动态调试 六  内存调试工具 1  ME…
转自:http://www.cnblogs.com/shineshqw/articles/2359114.html kdb:只能在汇编代码级进行调试: 优点是不需要两台机器进行调试. gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数. kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试) printk() 是调试内核代码时最常用的…
1章 内核入门HACK #1 如何获取Linux内核HACK #2 如何编译Linux内核HACK #3 如何编写内核模块HACK #4 如何使用GitHACK #5 使用checkpatch.pl检查补丁的格式HACK #6 使用localmodconfig缩短编译时间 第2章 资源管理HACK #7 Cgroup.Namespace.Linux容器HACK #8 调度策略HACK #9 RT Group Scheduling 与RT ThrottlingHACK #10 Fair Group…