相关疑难解决方法(0)

Linux内核实时调试,它是如何完成的以及使用了什么工具?

用于在Linux内核上进行实时调试的最常见和不常见的方法和工具是什么?我知道Linus比如说.为防止这种调试Linux内核,或者至少是,因此什么都没有在这个意义上在这些年已经完成,但老实说,自2000年以来大量的时间已经过去了,我很感兴趣,如果这种心态已经改变了有关Linux的项目以及目前使用哪些方法在Linux内核上进行实时调试(本地或远程)?

欢迎参考有关所提及的技术和工具的演练和教程.

linux debugging kernel linux-kernel

52
推荐指数
6
解决办法
4万
查看次数

如何使用GDB和QEMU调试Linux内核?

我是内核开发的新手,我想知道如何使用QEMU和gdb运行/调试linux内核.我实际上正在阅读Robert Love的书,但遗憾的是它无法帮助读者如何安装适当的工具来运行或调试内核......所以我所做的就是按照本教程http://opensourceforu.efytimes.com/2011/02/kernel-development-debugging-using-eclipse /.我正在使用eclipse作为IDE在内核上开发,但我想首先让它在QEMU/gdb下运行.所以我到目前为止所做的是:

1)用以下代码编译内核:

make defconfig (then setting the CONFIG_DEBUG_INFO=y in the .config)
make -j4
Run Code Online (Sandbox Code Playgroud)

2)编译完成后,我使用以下命令运行Qemu:

qemu-system-x86_64 -s -S /dev/zero -kernel /arch/x86/boot/bzImage
Run Code Online (Sandbox Code Playgroud)

它以"停止"状态启动内核

3)因此我必须使用gdb,我尝试以下命令:

gdb ./vmlinux
Run Code Online (Sandbox Code Playgroud)

正确运行但是...现在我不知道该怎么办...我知道我必须在端口1234(Qemu使用的默认端口)上使用远程调试,使用vmlinux作为符号表文件调试.

所以我的问题是:我应该怎样做才能在Qemu上运行内核,将调试器附加到它上面,从而使它们协同工作,使内核开发更轻松.

linux gdb qemu linux-kernel

33
推荐指数
2
解决办法
4万
查看次数

如何在ARM上使用kgdb?

ARMv7用作目标机器.我已经2.6.34.13为目标编译了Linux源代码.

Target使用minicom通过串口连接Host(Linux Development machine).

Target加载了新内核,并在命令提示符下启用了KGDB.

$ echo ttyAMA0 > /sys/module/kgdboc/parameters/kgdboc 
$ echo g > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

显示输入KGDB ...消息并等待命令.

主机方面,

$arm-none-linux-gnueabi-gdb vmlinux

    gdb > set remotebaud 115200
    gdb > set debug remote 1
    gdb > target remote /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

在此之后,默认情况下会发生一些命令通信.

  1. qSupported从主机发送到目标.但目标不支持qSuppoted,因此返回$#00.同样?,HC-1发送命令但收到适当的响应.

  2. qOffsets命令没有收到目标的任何响应.

我怀疑是vmlinux.因为如果我放弃listgdb,它就不会显示10行代码

arch/arm/kernel/head.S : No such file or directory.
Run Code Online (Sandbox Code Playgroud)

注意::在服务器中完成的内核编译.因此在开发机器中没有可用的源.但看起来,arm-gdb正在寻找头部.

我不确定我在做什么错.我需要为整个内核加载符号.在这方面指导我.

c arm linux-kernel kgdb

14
推荐指数
1
解决办法
3522
查看次数

标签 统计

linux-kernel ×3

linux ×2

arm ×1

c ×1

debugging ×1

gdb ×1

kernel ×1

kgdb ×1

qemu ×1