荣新IT培训中心
全国咨询热线:400-1335-066
您现在的位置:首页>技术文章 > 正文

Linux培训之内核级软件调试技术(4)

时间:2017-09-21 11:28:09 来源:荣新IT教育培训 作者:荣新科技
荣新科技今天分享的这票是Linux培训之内核级软件调试技术(4),这一系列的分享都是精品,喜欢的朋友千万不要错过了,下面一起来看看吧
Linux培训之内核级软件调试技术(4)

kgdb的启动

在将编译出的内核拷贝的到target机器之后,需求配置系统引导程序,参加内核的启动选项。以下是kgdb内核引导参数的阐明:

如表中所述,在kgdb 2.0版本之后内核的引导参数曾经与以前的版本有所不同。运用grub引导程序时,直接将kgdb参数作为内核vmlinuz的引导参数。下面给出引导器的配置示例。

title 2.6.7 kgdb root (hd0,0) kernel /boot/vmlinuz-2.6.7-kgdb ro root=/dev/hda1 kgdbwait kgdb8250=1,115200

在运用lilo作为引导程序时,需求把kgdb参放在由append修饰的语句中。下面给出运用lilo作为引导器时的配置示例。

image=/boot/vmlinuz-2.6.7-kgdb label=kgdb read-only root=/dev/hda3 append="gdb gdbttyS=1 gdbbaud=115200"

保管好以上配置后重新启动计算机,选择启动带调试信息的内核,内核将在短暂的运转后在创立init内核线程之前停下来,打印出以下信息,并等候开发机的衔接。

Waiting for connection from remote gdb...

在开发机上执行:

gdb file vmlinux set remotebaud 115200 target remote /dev/ttyS0

其中vmlinux是指向源代码目录下编译出来的Linux内核文件的链接,它是没有经过紧缩的内核文件,gdb程序从该文件中得到各种符号地址信息。

这样,就与目的机上的kgdb调试接口树立了联络。一旦树立联接之后,对Linux内的调试工作与对普通的运用程序的调试就没有什么区别了。任何时分都能够经过键入ctrl+c打断目的机的执行,停止详细的调试工作。

在kgdb 2.0之前的版本中,编译内核后在arch/i386/kernel目录下还会生成可执行文件gdbstart。将该文件拷贝到target机器的/boot目录下,此时无需更改内核的启动配置文件,直接运用命令:

[root@lisl boot]#gdbstart -s 115200 -t /dev/ttyS0

能够在KGDB内核引导启动完成后树立开发机与目的机之间的调试联络。
荣新科技温馨提示:这一系列对于Linux学习来说很关键,希望同学们认真对待,多练,多思考,不要光看不练,那样对掌握Linux很不好,好了,就说这么多,下次见。