linux kernel 调试常用搜索方法及常见问题小结

来源:互联网 发布:brew 安装php开发环境 编辑:程序博客网 时间:2024/05/17 11:36

1、搜索以什么字符结尾的文件


# grep -r "marvell.com$" *

^word 待搜寻的字符在行首

. 匹配任何一个可能的字符

\ 跳脱符号将特殊字符变成普通字符

? 任何一个『单一』字符

* 匹配模式中重复的字符

例题:在 /kernel 底下,只要含有 XYZ 三个字符的任何一个字符的那一行就列出来

grep [XYZ] /etc/*

egrep -r “create | stream“ *         //

和两种模式的任一种进行匹配


  []

  匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。


同时匹配kobe和james:


sed -n '/kobe/{/james/p}'        

awk '/kobe/&&/james/{ print $0 }'

grep -E '(kobe.*james|james.*kobe)'  


匹配kobe或james:


sed -n '/\(kobe\|james\)/p'

awk '/kobe/||/james/{ print $0 }'

grep -E '(kobe|james)'


在当前目录下找到以.c结尾的文件,然后再在这些文件中查找同时包含marvell和com以及com和marvell的行

grep -sirnE --include="*.c" "marvell.*com|com.*marvell" *


--include=“*.c”    搜索时只搜索以这个为后缀的文件

--exclude="*.h"   如果添加这个代表搜索时不搜索这些文件

-i 不区分大小写

-n 打印行号

-r 递归搜索子目录

-E 用来支持 “|”等

-s, --no-messages
         Suppress error messages about nonexistent or unreadable files. 


2, Makefile 打印方法:    $(warning  $(KERNELDIR))

vi 全局替换   :% s/xxx/yyy/g

            :% s/\[[^>]*\]//g   删除[]內(包括[])的所有内容!

3, ubuntu visio 替换工具 sudo apt-get install via 还不错

4, ERROR :“dereferencing pointer to incomplete type”是什么错误?4, 

“dereferencing pointer to incomplete type”是什么错误?
I use gcc to compile my C file.
你的指针,有一个类型,这个类型是不完全的。也就是说,你只给出了这个类型的声明,没有给出其定义。你这里的类型多半是结构,联合之类的东西。
5、有些时候交叉编译工具也可能会导致kernel异常
6、gcc查看预定义宏的方法:

查看gcc预定义宏的方法:

新建一个最简单的C文件test.c(其实任何C文件都可以),只有一行:

int main(void) {} 

在命令行执行如下命令:
# gcc -dM -E test.c
编译器便会列出所有的预定义宏.
#define _IO_CURRENTLY_PUTTING 0x800  ......  #define __USE_BSD 1  #define __FLT_EVAL_METHOD__ 2  #define _IO_USER_LOCK 0x8000  #define _IO_NO_WRITES 8  #define __ASMNAME2(prefix,cname) __STRING (prefix) cname  #define __unix__ 1  ......  #define __unix 1  #define __UID_T_TYPE __U32_TYPE  #define getc(_fp) _IO_getc (_fp)  #define __SIZE_T   #define __LDBL_MAX_EXP__ 16384  #define _ATFILE_SOURCE 1  #define _IO_ssize_t _G_ssize_t  #define __linux__ 1  ......  #define __SIZEOF_LONG_LONG__ 8  #define _LINUX 1  ......  #define _G_VTABLE_LABEL_HAS_LENGTH 1 
当然,你也可以换成你想查看的编译器,如montavista 5.0的编译器:
arm_v5t_le-gcc -dM -E test.c 

ANSI C标准中有几个标准预定义宏(也是常用的):

__LINE__:在源代码中插入当前源代码行号; 
__FILE__:在源文件中插入当前源文件名; 
__DATE__:在源文件中插入当前的编译日期 
__TIME__:在源文件中插入当前编译时间; 
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1; 
__cplusplus:当编写C++程序时该标识符被定义。

7、vim可以设置一些常用模式(.vimrc):
set hlsearch
set nobomb
set ts=8

8、kernel BUG() 宏 及 panic实现与效果

#define BUG() _BUG(__FILE__, __LINE__, BUG_INSTR_VALUE)#define _BUG(file, line, value) __BUG(file, line, value)#define __BUG(__file, __line, __value)\do {\asm volatile("1:\t" BUG_INSTR_TYPE #__value "\n"\".pushsection .rodata.str, \"aMS\", %progbits, 1\n" \"2:\t.asciz " #__file "\n" \".popsection\n" \".pushsection __bug_table,\"a\"\n"\"3:\t.word 1b, 2b\n"\"\t.hword " #__line ", 0\n"\".popsection");\unreachable();\} while (0)

结果:(R0-R12 通用寄存器,R13 MSP/PSP(堆栈指针),R14 LR(连接寄存器),R15 PC(程序计数器))

PSR 状态字寄存器

[    3.589806] Code: e3700a01 e5840008 9a000000 e8bd8010 (e7f001f2)

[    3.595788] ------------[ cut here ]------------
[    3.600457] kernel BUG at /home/zhuangwenxue/8860U/code/kernel/drivers/usb/gadget/android.c:2718!
[    3.609156] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[    3.615138] Modules linked in:
[    3.618068] CPU: 0    Tainted: G        W     (3.4.0-g2c8996c-00133-ga9f68ae-dirty #1)
[    3.626094] PC is at android_probe+0x30/0x3c
[    3.630215] LR is at __class_register+0x1a0/0x1d8
[    3.635037] pc : [<c07d70c4>]    lr : [<c03ac90c>]    psr: 80000013
[    3.635067] sp : dd943ed8  ip : 02a4a000  fp : 00000000
[    3.646482] r10: c0d00374  r9 : c0d683c4  r8 : 000001d2
[    3.651548] r7 : 00000000  r6 : c0f14d9c  r5 : c0f14d9c  r4 : c11d2128
[    3.658202] r3 : c07d7094  r2 : 00000000  r1 : 00000000  r0 : e3807d00
[    3.664550] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    3.671997] Control: 10c5787d  Table: 8020406a  DAC: 00000015
[    3.677582]
[    3.677582] PC: 0xc07d7044:
[    3.681825] 7044  e1a00004 e1a01009 ebef5060 e1a00008 ebf177da e1a0000a e8bd8ffe e35c0003
[    3.690004] 7064  1affffae eaffffaa c0bb5f27 c09552b5 c0bab5fe c0bab617 c0f114a0 c11d2004
[    3.698153] 7084  c0bb5f55 c0bb5f93 c11d2008 c0bb5fb0 e92d4010 e59f4028 e5940008 e3500000
[    3.706332] 70a4  1a000006 e59f101c e2842eab ebef5623 e3700a01 e5840008 9a000000 e8bd8010
[    3.714481] 70c4  e7f001f2 c11d2128 c0b3d56d e92d47f3 e1a05003 e593800c e1a04002 e59f31d8
[    3.722661] 70e4  e2807008 e3580000 e1a00002 e5841004 e1a09001 e4805054 01a08003 e59f11bc
[    3.730810] 7104  e59f21bc ebeb8e45 e5950004 e3500c02 2a000033 e1a01008 ebebc74f e2506000
[    3.738959] 7124  aa000005 e1a00007 e59f1198 e5952004 e1a03006 ebef47aa ea00005d e5950004
[    3.747138]
[    3.747138] LR: 0xc03ac88c:
[    3.751350] c88c  ea00000d e1a00004 e2866014 ebffffac e2508000 13a07014 13a06000 10070597
[    3.759560] c8ac  1a00000d e2855001 e5943008 e0831006 e7933006 e3530000 1afffff1 e3540000
[    3.767709] c8cc  1a00000b ea00000f e5941008 e0863007 e1a00004 e0811003 ebffff73 e2455001
[    3.775858] c8ec  e2466014 e3750001 1afffff6 e1a07008 eafffff1 e594003c e2800018 ebfbfe90
[    3.784007] c90c  ea000000 e3e0700b e1a00007 e8bd81f0 c0f71270 c0b91c50 c11678d8 c03ac42c
[    3.792186] c92c  c03ac6b0 c0b91672 c0b4c158 c11bf108 c11bf130 c0ef0e68 e92d40f8 e1a05000
[    3.800335] c94c  e59f306c e1a06001 e1a04002 e5930018 e3500000 0a000005 e30810d0 e3a02040
[    3.808515] c96c  ebf62fab e2507000 1a000001 ea00000a e3a07010 e59f303c e1a01004 e5876000

[    3.816664]
[    3.816664] SP: 0xdd943e58:
[    3.820906] 3e58  00000000 c07d7094 c11d2128 c0f14d9c c0f14d9c 00000000 000001d2 c0d683c4
[    3.829085] 3e78  c0d00374 00000000 02a4a000 dd943ed8 c03ac90c c07d70c4 80000013 ffffffff
[    3.837234] 3e98  e383d218 00000000 e3807d00 c03ac90c c11d2bd8 00000000 c0b3d56d e3807d00
[    3.845414] 3eb8  000001d2 c03ac99c c07d7094 c11d2128 c0f14d9c c0f14d9c 00000000 c07d70b4
[    3.853563] 3ed8  c0ea6cf0 c03acbac c03acb98 c03ab744 c0ea6cf0 c0f14d9c 00000001 c0ea6cf0
[    3.861712] 3ef8  c0f14d9c c0f14d9c 00000000 c03abad0 c0f14d9c c0ea6cf0 dd943f18 c0ea6cf0
[    3.869891] 3f18  c0ea6d24 c03abb58 c0f14d9c dd943f30 c03abaf8 c03a9fb4 dd902a78 dd9f39c0
[    3.878040] 3f38  c0f14d9c c0f14d9c e3806280 c0ef0e80 00000000 c03aaec0 c0b3d56d 00000000
[    3.886220]
[    3.886220] R0: 0xe3807c80:
[    3.890431] 7c80  76697264 aa007265 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
[    3.898611] 7ca0  aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
[    3.906790] 7cc0  00000001 00000000 c9e07680 e3807c80 c9e07710 00000000 00000000 00000000
[    3.914939] 7ce0  00000000 3ccb37e1 e3807bc0 00000000 00000000 a1ff0008 00003380 00000000
[    3.923119] 7d00  c0b3d56d 00000000 00000000 00000000 00000000 dd92aa80 00000000 00000000
[    3.931268] 7d20  c03ac5f4 00000000 00000000 00000000 00000000 00000000 00000000 e383d200
[    3.939417] 7d40  72646e61 5f64696f 00627375 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
[    3.947565] 7d60  aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
[    3.955745]
[    3.955745] R3: 0xc07d7014:
[    3.960109] 7014  aa00000f e2844020 e59f6068 e59f1068 e1a0200a e1a00004 ebef47ed e7963105
[    3.968167] 7034  e59300d4 ebef5858 e7960105 ebf275f3 e1a00004 e1a01009 ebef5060 e1a00008
[    3.976316] 7054  ebf177da e1a0000a e8bd8ffe e35c0003 1affffae eaffffaa c0bb5f27 c09552b5
[    3.984465] 7074  c0bab5fe c0bab617 c0f114a0 c11d2004 c0bb5f55 c0bb5f93 c11d2008 c0bb5fb0
[    3.992644] 7094  e92d4010 e59f4028 e5940008 e3500000 1a000006 e59f101c e2842eab ebef5623
[    4.000793] 70b4  e3700a01 e5840008 9a000000 e8bd8010 e7f001f2 c11d2128 c0b3d56d e92d47f3
[    4.008942] 70d4  e1a05003 e593800c e1a04002 e59f31d8 e2807008 e3580000 e1a00002 e5841004
[    4.017121] 70f4  e1a09001 e4805054 01a08003 e59f11bc e59f21bc ebeb8e45 e5950004 e3500c02

[    4.025270]
[    4.025301] R4: 0xc11d20a8:
[    4.029513] 20a8  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.037692] 20c8  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.045841] 20e8  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.054021] 2108  00000000 00000084 e60f0000 00000000 00000000 00000000 00000000 00000000
[    4.062169] 2128  c11d2128 c11d2128 e3807d00 00000000 00000000 00000000 00000000 00000000
[    4.070349] 2148  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.078498] 2168  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.086647] 2188  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.094826]
[    4.094826] R5: 0xc0f14d1c:
[    4.099038] 4d1c  00000000 484d434e 304d434e 0000000c 00000008 00000004 00000001 00000001
[    4.107218] 4d3c  00000001 00000000 00000000 00000001 686d636e 306d636e 00000010 00000010
[    4.115397] 4d5c  00000008 00000002 00000002 00000002 00000001 00000002 00000002 c0c03bf3
[    4.123546] 4d7c  00000124 c0483570 00000000 c07d7094 c04933f8 00000000 00000000 00000000
[    4.131695] 4d9c  c0b3d56d c0ef0e80 00000000 00000000 00000000 00000000 c03acb98 c03acbb8
[    4.139874] 4dbc  00000000 00000000 00000000 00000000 00000000 e3806280 c0c703d4 00000014
[    4.148023] 4ddc  00000001 000001f4 00000800 00000000 dead4ead ffffffff ffffffff 000001f4
[    4.156172] 4dfc  0000000a 00000000 00000000 00000000 00000000 dead4ead ffffffff ffffffff
[    4.164352]

[    4.164352] R6: 0xc0f14d1c:
[    4.168564] 4d1c  00000000 484d434e 304d434e 0000000c 00000008 00000004 00000001 00000001
[    4.176743] 4d3c  00000001 00000000 00000000 00000001 686d636e 306d636e 00000010 00000010
[    4.184922] 4d5c  00000008 00000002 00000002 00000002 00000001 00000002 00000002 c0c03bf3
[    4.193071] 4d7c  00000124 c0483570 00000000 c07d7094 c04933f8 00000000 00000000 00000000
[    4.201251] 4d9c  c0b3d56d c0ef0e80 00000000 00000000 00000000 00000000 c03acb98 c03acbb8
[    4.209400] 4dbc  00000000 00000000 00000000 00000000 00000000 e3806280 c0c703d4 00000014
[    4.217549] 4ddc  00000001 000001f4 00000800 00000000 dead4ead ffffffff ffffffff 000001f4
[    4.225728] 4dfc  0000000a 00000000 00000000 00000000 00000000 dead4ead ffffffff ffffffff
[    4.233877]
[    4.233877] R9: 0xc0d68344:
[    4.238119] 8344  c0d2b0c8 c0d2b110 c0d2b128 c0d2b140 c0d2b158 c0d2b170 c0d2b188 c0d2b1fc
[    4.246299] 8364  c0d2b45c c0d2bf94 c0d2c2cc c0d2c2ec c0d2c3ec c0d2c430 c0d2c448 c0d2c460
[    4.254478] 8384  c0d2c478 c0d2c490 c0d2c4a8 c0d2c4c0 c0d2c4d8 c0d2c4f0 c0d2c508 c0d2c520
[    4.262597] 83a4  c0d2c538 c0d2c704 c0d2c740 c0d2c758 c0d2c99c c0d2c9b4 c0d2ccb8 c0d2ce28
[    4.270776] 83c4  c0d2ce94 c0d2ccc4 c0d2cd68 c0d2ce18 c0d2ceec c0d2cf60 c0d2d00c c0d2d168
[    4.278925] 83e4  c0d2d1f0 c0d2d1fc c0d2d220 c0d2d22c c0d2d238 c0d2d2d0 c0d2d2e8 c0d2d2f8
[    4.287105] 8404  c0d2d304 c0d2d3a8 c0d2d3cc c0d2d3f4 c0d2d43c c0d2d474 c0d2d4ac c0d2d4e4
[    4.295284] 8424  c0d2d51c c0d2d554 c0d2d75c c0d2d8c4 c0d2d92c c0d2da98 c0d2dc28 c0d2dc34
[    4.303433]
[    4.303433] R10: 0xc0d002f4:

[    4.307736] 02f4  e5941000 ebce8595 e3500000 1a000009 e1a00005 e59f1058 ebd6cb72 e3500000
[    4.315916] 0314  1a00000c e5940000 e59f1048 ebd6cb6d e3500000 1a000007 e5943004 e1a00007
[    4.324095] 0334  e12fff33 e3500000 0a000002 e59f0028 e1a01005 ebebb0ac e284400c e1540006
[    4.332244] 0354  3affffe2 e3a00000 e8bd80f8 c0d676c0 c0d67c9c c0b229b0 c0b227f0 c0b227f9
[    4.340393] 0374  e92d4038 e2515000 e1a04000 0a000014 ebd6cb91 e2803001 e0843003 e1550003
[    4.348573] 0394  03a0303d 05453001 0a00000d e2800002 e0844000 e1550004 1a000008 e3a0303d
[    4.356722] 03b4  e1a00005 e5453002 ebd6cb83 e1a01005 e2802001 e2450001 ebd6a757 ea000000
[    4.364871] 03d4  e7f001f2 e3a00000 e8bd8038 e92d45f8 e1a04000 e1a08001 ebffffe0 e1a00004
[    4.373050] Process swapper/0 (pid: 1, stack limit = 0xdd9422f0)
[    4.379154] Stack: (0xdd943ed8 to 0xdd944000)
[    4.383366] 3ec0:                                                       c0ea6cf0 c03acbac
[    4.391667] 3ee0: c03acb98 c03ab744 c0ea6cf0 c0f14d9c 00000001 c0ea6cf0 c0f14d9c c0f14d9c
[    4.399847] 3f00: 00000000 c03abad0 c0f14d9c c0ea6cf0 dd943f18 c0ea6cf0 c0ea6d24 c03abb58
[    4.407843] 3f20: c0f14d9c dd943f30 c03abaf8 c03a9fb4 dd902a78 dd9f39c0 c0f14d9c c0f14d9c
[    4.416175] 3f40: e3806280 c0ef0e80 00000000 c03aaec0 c0b3d56d 00000000 00000000 c0f14d9c
[    4.424324] 3f60: c0f93040 c0d2ce28 00000000 000001d2 c0d00374 c03ac030 00000000 00000006
[    4.432473] 3f80: c0f93040 c0d2ce28 00000000 000001d2 c0d00374 c0d2ce5c 00000006 c0008720
[    4.440500] 3fa0: 00000007 00000006 c0d41d2c c0d41d0c c0f93040 c0d009e8 00000006 00000006
[    4.448802] 3fc0: c0d00374 00000000 c0d67cd8 c0d67cd8 c000ead0 00000013 00000000 00000000
[    4.456951] 3fe0: 00000000 c0d00a9c 00000000 00000000 c0d00a18 c000ead0 00000000 00000000
[    4.465008] [<c07d70c4>] (android_probe+0x30/0x3c) from [<c03acbac>] (platform_drv_probe+0x14/0x18)
[    4.474164] [<c03acbac>] (platform_drv_probe+0x14/0x18) from [<c03ab744>] (really_probe+0xd4/0x2c4)
[    4.483198] [<c03ab744>] (really_probe+0xd4/0x2c4) from [<c03abad0>] (driver_probe_device+0x88/0xb0)
[    4.492324] [<c03abad0>] (driver_probe_device+0x88/0xb0) from [<c03abb58>] (__driver_attach+0x60/0x84)
[    4.501602] [<c03abb58>] (__driver_attach+0x60/0x84) from [<c03a9fb4>] (bus_for_each_dev+0x4c/0x84)
[    4.510636] [<c03a9fb4>] (bus_for_each_dev+0x4c/0x84) from [<c03aaec0>] (bus_add_driver+0xd0/0x250)
[    4.519487] [<c03aaec0>] (bus_add_driver+0xd0/0x250) from [<c03ac030>] (driver_register+0x9c/0x128)
[    4.528673] [<c03ac030>] (driver_register+0x9c/0x128) from [<c0d2ce5c>] (init+0x34/0x6c)
[    4.536761] [<c0d2ce5c>] (init+0x34/0x6c) from [<c0008720>] (do_one_initcall+0x34/0xf8)
[    4.544727] [<c0008720>] (do_one_initcall+0x34/0xf8) from [<c0d009e8>] (do_initcalls+0x70/0xa0)

[    4.561849] [<c0d00a9c>] (kernel_init+0x84/0x118) from [<c000ead0>] (kernel_thread_exit+0x0/0x8)
[    4.570608] Code: e3700a01 e5840008 9a000000 e8bd8010 (e7f001f2)
[    4.577109] ---[ end trace da227214a82491b8 ]---
[    4.581870] swapper/0 used greatest stack depth: 5088 bytes left
[    4.587242] msm_otg msm_otg: phy_reset: success
[    4.591851] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    4.591851]
[    4.600915] CPU1: stopping
[    4.603448] [<c0013e04>] (unwind_backtrace+0x0/0x11c) from [<c001312c>] (handle_IPI+0x100/0x1dc)
[    4.612360] [<c001312c>] (handle_IPI+0x100/0x1dc) from [<c0008628>] (gic_handle_irq+0x104/0x110)
[    4.620998] [<c0008628>] (gic_handle_irq+0x104/0x110) from [<c080db80>] (__irq_svc+0x40/0x70)
[    4.629604] Exception stack(0xdd965f98 to 0xdd965fe0)
[    4.634640] 5f80:                                                       ffffffed 00000001
[    4.642667] 5fa0: 02a54000 c005b58c dd964000 c0e4f700 c0f93108 c0f933c0 8020406a 511f04d4
[    4.650969] 5fc0: 00000000 00000000 0000001a dd965fe0 c000eb28 c000eb34 a0000013 ffffffff
[    4.659148] [<c080db80>] (__irq_svc+0x40/0x70) from [<c000eb34>] (default_idle+0x24/0x2c)
[    4.667175] [<c000eb34>] (default_idle+0x24/0x2c) from [<c000eeb8>] (cpu_idle+0x68/0xf0)
[    4.675385] [<c000eeb8>] (cpu_idle+0x68/0xf0) from [<80208160>] (0x80208160)
[    4.682405] wcnss_8960: crash shutdown : 0
[    7.793285] Rebooting in 5 seconds..
[   12.806195] reset_debug emergency_restart  entry
[   12.810285] Going down ................  // Coming into dloader

panic("fixed area size is larger than %dM\n", MAX_FIXED_AREA_SIZE >> 20);