3

目标:尝试执行代码演练,了解调用哪些函数来通过网络发送和接收数据包。

我正在构建一个内核并使用 gdb 进行调试/跟踪。

我已经使用以下命令构建了一个 vm:

 time sudo ubuntu-vm-builder qemu precise --arch 'amd64'  --mem '1024'  --rootsize '4096'  --swapsize '1024'  --kernel-flavour 'generic'  --hostname 'ubuntu'  --components 'main'  --name 'Bob'  --user 'ubuntu'  --pass 'ubuntu' --bridge 'br0'  --libvirt 'qemu:///system'

我可以使用以下命令在 qemu 中成功运行 VM:

qemu-system-x86_64 -smp 1 -drive file=tmpGgEOzK.qcow2 "$@" -net nic -net user -serial stdio -redir tcp:2222::22

现在,我想使用 gdb 调试内核。为此,我需要一个带有调试符号(vmlinux)的可执行文件,显然我没有,因为 vm-builder 从未要求任何此类选项,而只是创建了一个 .qcow2 文件。

问题 1:我是否采取了正确的方法来解决问题,是否有更简单的方法来解决问题?

问题 2:有没有办法使用 GDB 调试这个内核?

PS:我没有对 KVM 的硬件支持。

如果我错了,请纠正我。

谢谢。

4

0 回答 0