首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何快速定位 Linux Panic 出错的代码

问题描述 内核调试中最常见的一个问题是:内核Panic后,如何快速定位出错的代码? 就是这样一个常见的问题,面试过的大部分同学都未能很好地回答,这里希望能够做很彻底地解答。...那么有了地址以后,就可以定位该地址落在哪个函数的区间内,然后找到该函数,进而通过计算偏移,定位代码。...先通过函数名定位所在函数,然后通过偏移定位代码。 相应的工具有addr2line, gdb, objdump等,这几个工具在How to read a Linux kernel panic?...所以如果要调试代码,必须确保调试符号已经编译内核中,不然,回调里头打印的是一堆地址,根本看不到符号,那么对于上面提到的情况二而言,将无法准确定位问题。...0x0019594c mm/backing-dev.c:335 然后用vim就可以直接找到代码出错的位置: $ vim mm/backing-dev.c +335 如果是情况二,可以先通过nm获取到当前的

49340
您找到你想要的搜索结果了吗?
是的
没有找到

Linux-vim

dnG n为数字,删除光标所在行第n dG 删除光标所在行到最后一 0G 删除光标所在位置该行第一个字符 yy 复制光标所在行 nyy n为数字,复制光标所在的向下n ynG n为数字,复制光标所在行第...n yG 复制光标所在行到最后一 y0 复制光标所在字符该行行首 y$ 复制光标所在行该行行尾 p 将复制的数据粘贴在光标下一 P 将复制的数据粘贴在光标上一 J 将光标所在行与下一的数据合并成一...x为任意字符删除光标下一个x字符之间的文本,并进入编辑状态 cFx x为任意字符删除光标到上一个x字符之间的文本,并进入编辑状态 cnG n为数字,删除光标所在行第n,并进入编辑状态 cG 删除光标所在行末行...command 暂时离开vim查看command的执行结果 2.4 区块选择 命令 说明 v 字符选择,选择光标经过的字符 V 选择,选择光标经过的 + v 区块选择,选择光标经过的区块...4. vim配置文件 vim配置文件包括~/.vimrc,~/.viminfo ~/.vimrc为vim参数设置 ~/.viminfo为用户在vim中的操作记录 可以在一般模式种进行设置 命令 说明 :

6.2K11

vim命令搜索_linuxvim

不过在此之前,请注意文中涉及的所有的例子、命令、指令均是在 Ubuntu 14.04,Vim 7.4 下测试的。...例如,如果你想要搜索的单词是 linux,下图显示的就是在 Vim 窗口底部的搜索命令: 敲击回车键之后,你会看到 Vim 会将光标停留在从光标在插入模式中的位置开始,找到的包含此单词的第一。...如果你刚刚打开一个文件并且立即开始了搜索操作,搜索将从文件的首开始。 如果想要移动到下一处包含被搜索单词位置,按 n 键。...这里有个视频,你可以看看: 下一个,只要你想要,你可以获得所有被搜索单词或模式匹配处所在的和行号的一个列表。这可以在你开始搜索后通过按 [I 来实现。...这个在光标下的单词不仅仅会被拷贝,也会被复制 / 后,允许你对它进行修改并且继续进行搜索操作。

10K20

vim 从嫌弃依赖(2)——vim 模式

一般进行编辑工作,不管是使用Word,记事本,写PPT,对于文本的操作无外乎这么几种操作 移动光标定位置 输入 删除 替换(删除 + 输入) 而vim之所以高效就是将这几个部分分解为几个模式,不同的模式针对这些场景进行了一些优化...一般来说普通的编辑器移动光标的方式都是通过手去移动鼠标,通过鼠标来定位光标要移动的位置,这么做并不高效。...w: 向后移动一个单词 e: 移动光标单词尾部 ^: 移动光标首第一个非空字符处 $: 移动光标末最后一个非空字符处 gg: 移动光标至文件首的首个非空格字节 G: 移动光标至整个文本最后一的首个非空格字节...() %: 移动光标匹配括号的另一端 0: 移动光标至行首 说句题外话,vim 使用 h j k l 来代替 ← ↓ ↑ → 主要是因为当年创建 vi 的时候键盘张这样 如果仅仅使用上述介绍的内容进行移动光标...举几个例子 5dd 删除5 4>> 将4代码进行缩进 2cc 更改接下来的两,并进入插入模式 最后的总结 本篇这里就结束了,最后做一下总结,我们提到几个公式 motion = [数字] + 移动光标

53120

Linux学习——vim

生信技能树学习笔记Vim编辑器——三种模式命令模式 末行模式 编辑模式图片命令模式vim Data/example.fq## 按 : set nu 显示行号## 方向键或hjkl移动光标## 30j:向下移动...30## ctrl + f或b:上下翻页## gg或G移到顶部或底部 或者 [[ 和 ]]## x剪切一个字符## 10x:剪切10个字符## dd:剪切所在行## 10dd: 剪切所在行及下方10...保存并强制退出# set系列命令## :set nu 显示行号## :set nonu 取消行号## :set list 显示不可见字符(分辨制表符与空格)## :set nowrap 显示在一 类似...将文件格式转换为unix# 查询## 输入/keyword进行查询 n/N 向上或向下#替换## :%s///g 全局替换## :s///g 替换光标所在行## :s/// 只替换光标所在行的第一次vim...的异常情况图片当多处编辑或异常断开时会有待处理的.swp文件如果修改不重要可以直接删除.swp文件Vim编辑器:vimtutor zh_CN查看帮助文档

4.6K50

LinuxVim 编辑器从基础大成使用

[TOC] 前言介绍 Vim(Visual Interface|可视化接口),在linux中常常使用的工具,是进行Linux嵌入式编程的必备工具之一; vim最大的贡献就是它的按键系统这也是为什么chrome...、idea、atom等编辑器都会提供一个vim mode; 首先我来简单说为什么要学习Vi或Vim(Vi Imporved)主要我有以下三点: vi是很多Linux系统预装的,也就是说你服务器上面不用担心没有的问题...#参数 +行数 #打开文件跳入指定 +/字符串 #定位字符串首次出现的 -o,-O #打开多个文件小写o表示垂直并列,大写O表示水平并排 基础示例1: #示例1:外部shell参数 vim...# 定位到尾行 vim +3 abc # 定位第三,其他数字依次,如果超过文件最大行数,则光标定位到尾行 vim +/字符xxx abc # 定位xxx首次出现的,通过按N(向上)...^ 同上 $ 将光标定位行尾的位置 b 将光标定位光标所在单词的起始处 e 将光标定位光标所在单词的结尾处 w 将光标定位下一个单词的起始处(注意,是光标所在单词的下一个单词噢^_^) gg

1.9K10

36.Linux驱动调试-根据oops定位错误代码

(PS:若不配置,也可以直接通过栈来分析函数调用过程,在下章会分析:http://www.cnblogs.com/lifexy/p/8011966.html) 2.2而有些内核的环境不同,opps也可能不会打印出上面的...kallsyms.txt里,找到pc值bf000078位于26th_segmentfault驱动里first_drv_open()函数下的bf000000+0x78中 2.5然后将驱动生成反汇编: arm-linux-objdump...而0x56000050是个物理地址,在linux眼中便是个非法地址,所以出错 并找到出错地方位于first_drv_open ()函数下: 3.若发生错误的驱动位于内核的地址值时 3.1还是以26th_segmentfault.c...为例,首先加入内核: #cp 26th_segmentfault.c /linux-2.6.22.6/drivers/char/ //将有问题的驱动复制字符驱动目录下 #vi Makefile...                            //y:将该驱动放入内核中 3.2然后make uImage装载新内核后,再运行测试程序,便会打印出opps信息 3.3在内核源码的根目录下通过: # arm-none-linux-gnueabi-objdump

2.6K80

Linux从入门入土①(Linux概述、文件系统、VIM编辑器)

的区别图片Linux的优势合法升级最新版本却不需要花一分钱。...从etc的data block中找到passwd的inode,查看权限,读取passwd内容VI / VIM编辑器VI / VIM是什么VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器...VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。...可以使用以下按键:字符按键以及Shift组合,输入字符ENTER,回车键,换行BACK SPACE,退格键,删除光标前一个字符DEL,删除键,删除光标后一个字符方向键,在文本中移动光标HOME/END,移动光标首...3个中的任何一个按钮,就可以将光标移动到最底下那一

1.1K30

vim 从嫌弃依赖(3)——vim 普通模式

行内查找字符串 vim操作的效率很大程度上取决于移动光标的效率,平时在修改代码的时候很大程度上都是需要在特定位置修改,下面介绍的操作很大程度上能提高我们移动光标和修改的效率 行内查找字符使用 f{char...H 移动光标窗口首 M 移动光标窗口中间 L 移动光标窗口尾行 gg 移动光标至第一 G 移动光标到最后一 要演示这几个操作光靠一屏就可以显示完的简短的文本是不行的,这里我采用 ~/.bashrc...小伙伴可以随便打开一个系统的配置文件,只要它超过一屏就行 假设光标在文件最后一,使用H 将光标移动到窗口首 假设光标在文件最后一,使用 M 移动光标窗口中间 假设光标在文件第一,...使用 L 移动光标窗口末尾 假设光标在文件的第一,使用 G 移动光标到最后一 后面的 gg 也就不演示了,从上面这些演示来看不难发现窗口和文件不是同一个东西,在窗口中跳转只能在文件的部分区域间进行跳转...这就涉及vim中一个非常重要的概念——文本对象 还记得最开始我们说过,vim将文本分为 字符、单词、句子、段落嘛,这可不是为了方便而人为划分的,而是vim在处理文本的时候就是真么做的。

60520

Linux基本工具——vim

Linux编辑器vim 什么是vim vim的三种常用模式 vim的基本操作 命令模式 插入模式 底模式 搭配vim环境 sudo怎么才能让普通用户使用 什么是vim vimlinux下一款功能强大...但是我们发现插入模式下无法用上面的方式退出,这个时候其实要先按esc退出插入模式,命令模式。 那么如果你到了底模式不想退出怎么办呢?也同样按esc就能回到命令模式。...,但是在linux机器上只需要一命令即可,并且还不容易出错。...光标定位 刚打开vim时,光标是在第一第一个的位置,想要移动光标鼠标是不可以的。 那么我想移动光标怎么办? 这时候用键盘上最右边下面的上下左右箭头就可以移动光标了。...那么如果你想在vim的底模式下执行linux的命令怎么办呢?这里在前面加上一个 ! 就可以了。

6.7K00

Linux系列04 vim

VIM的用法 1.vim 路径 用vim打开文件 vim +数字 路径 打开文件工标移动到第几行 vim +/关键字 路径  打开文件,高亮显示关键字 vim 路径1 路径2   打开多个文件...光标移动到首 shift + 6 行尾 shift + 4 移动到首 gg 末行 G 向上翻页 ctrl +b 向下翻页 ctrl + f 复制 按yy在需要的地方按p...剪切 dd删除后下一上移 D删除后会空行 撤销u ctrl + r 恢复之前的撤销 数字+G   移动到这一 :w保存 :w路径  另存为 :q退出 :wq   保存并退出 :...强制退出 /关键词   搜索 打开多文件是,切换文件  :open 文件名 编辑模式 进入: i在光标所在字符前开始 a在字符后开始 o还光标所在行的下面另起一开始 I在光标所在行首...A行尾 O上面另起一 S删除光标所在行 退出esc vim计算器 ctrl + R   输入=   输入需要计算的内容,最后回车

4.3K10

Linuxvim的使用

这个是在网上找的一张关于vim键盘的图 1. 前言 vimLinux编辑器,功能上和记事本没有区别。不仅仅可以用来写c语言和c++,其它语言也可以在上面写。...: 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动,字符、字或的删除,移动复制某区段及进入Insert mode下,或者 last line mode 插入模式(Insert...要查看你的所有模式:打开vim,底模式直接输入 3. vim的基本操作 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面: vim a.txt 不过有一点要特别注意,就是你进入...4.1.1 光标定位 shift+4=$:将光标的位置定位当前行的结尾 shift+6=^:将光标的位置定位当前行的开始 gg:将光标定位整个文本的最开头 shift+g=...G:将光标定位整个文本的最后一 n+shift+g=G:将光标定位整个文本的任意一 举个例子:10+shift+g,定位第10 h,j,k,l:左,下,上,右,也可以带n。

17210

Vim从理解应用

高亮区域可以是字符、或者是一块文本。当执行一个非移动命令时,命令会被执行这块高亮的区域上。Vim的"文本对象"也能和移动命令一样用在这个模式中。...行间跳转) gg 游标移动到第一(行间跳转) G(Shift+g) 游标移动到最后一(行间跳转) b 前一个单词的开头 w 下一个单词的开头 e 当前单词的结尾 ge 前一个单词的结尾 0或...^ 行头 $ 行尾 f 向后搜索并跳转到第一个匹配的位置(很实用) F 向前搜索并跳转到第一个匹配的位置(实用) t 向后搜索并跳转到第一个匹配的位置之前的一个字母...I 在行首插入 a 在光标后插入编辑 A 在行末插入 o 在当前行后插入一个新 O 在当前行前插入一个新 3.1.2、删除操作 进入普通模式,使用下列命令可以进行文本快速删除: 命令 说明 x...3.2、复制、粘贴、撤销与快速缩进 3.2.1、复制粘贴与剪切粘贴 普通模式中使用y复制: 命令 说明 yy 复制游标所在的整行(5yy表示复制5) y^ 复制至行首,或y0。

48420
领券