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,
I use gcc to compile my C file.
你的指针,有一个类型,这个类型是不完全的。也就是说,你只给出了这个类型的声明,没有给出其定义。你这里的类型多半是结构,联合之类的东西。
查看gcc预定义宏的方法:
新建一个最简单的C文件test.c(其实任何C文件都可以),只有一行:
int main(void) {}在命令行执行如下命令:
编译器便会列出所有的预定义宏.
#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++程序时该标识符被定义。
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.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);
- linux kernel 调试常用搜索方法及常见问题小结
- 嵌入式 kernel调试方法小结
- linux kernel performance 调试小结
- 常用调试方法小结
- Magento - 开发常见问题原因及调试方法
- Handler总结常用方法及常见问题
- String的常用方法及常见问题
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法 .
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法 .
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法
- linux驱动程序调试常用方法
- Fedora添加国内源(sohu+163)
- 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
- 图片缩放UIGraphicsGetImageFromCurrentImageContext不是线程安全的
- java Socket 之 Datagram socket(UDP)
- Vs2008假死
- linux kernel 调试常用搜索方法及常见问题小结
- USACO section 3.1 Humble Numbers(DP)
- 站内搜索 高亮显示关键字(兼容火狐 谷歌 ie)
- mpich2用户手册(精简)
- java泛型
- java socket 之 Stream Socket(TCP/IP)
- 最近公共父节点(即LCA问题)的一点思路
- nginx 限制指定ip的并发数和 速度
- Tomcat 与 eclipse 文件夹映射关系~~~~~