内核配置kgdb选项

收藏于 2013-04-12

迁移自本人的百度空间

--------------------------------

从Linux 2.6.25起, KGDB被集成到Linux内核中,这使得kgdb的使用变得简单和轻松。

要使用kgdb调试内核和驱动,必须先对内核进行如下配置。

笔者使用的内核版本是3.8.6

 

运行如下命令启动配置内核脚本。

$ makemenuconfig

 

1 KGDB必须使能的内核选项:

 

CONFIG_EXPERIMENTAL = y  Location: -> General setup     

                                                           -> Prompt for development and/or incomplete code/drivers

CONFIG_KGDB = y   Location:     -> Kernel hacking       

                                                  -> KGDB: kernel debugger

CONFIG_KGDB_SERIAL_CONSOLE = y (使用串口进行通信)  Location:     -> Kernel hacking       

                                                                                                      -> KGDB: kernel debugger               

                                                                                                          -> KGDB: use kgdb over the serial console

 

2 其它相关内核选项:

 

2.1 建议关闭的选项

CONFIG_DEBUG_RODATA = n 该选项是将内核的一些内存区域空间设置为只读,这样可能导致kgdb的 设置软断点功能失效。所以推荐将该选项关闭。   Location:       -> Kernel hacking

                                 -> Write protect kernel read-only data structures

 

2.2.2 建议打开的选项

CONFIG_KGDB_LOW_LEVEL_TRAP = y  使能该选项可以kgdb不依赖notifier_call_chain()机制来获取断点异常, 这样就可以对notifier_call_chain()机制实现相关的函数进行单步调试。 Depends on: KGDB [=y] && (X86 [=y] || MIPS [=MIPS]) 

Location:       -> Kernel hacking          

                        -> KGDB: kernel debugger (KGDB [=y])

                            -> KGDB: Allow debugging with traps in notifiers

 

CONFIG_DEBUG_INFO = y 该选项可以使得编译的内核包含一些调试信息,使得调试更容易。 

Location:       -> Kernel hacking

                       -> Compile the kernel with debug info

 

CONFIG_FRAME_POINTER = y 该选项将使得内核使用帧指针寄存器来维护堆栈,从而就可以正确地执行堆栈回溯,即函数调用栈信息。 

Location:       -> Kernel hacking

                       ->  Compile the kernel with frame pointers

 

CONFIG_MAGIC_SYSRQ = y (如果你选择了KGDB_SERIAL_CONSOLE,这个选项将自动被选上) 激活"魔术 SysRq"键. 该选项对kgdboc调试非常有用,kgdb向其注册了‘g’魔术键来激活kgdb 。   

Location:       -> Kernel hacking

 

当你想手动激活kgdb时,你可以触发SysRq的g键, 如:

$ echo"g">/proc/sysrq-trigger

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值