gdb基本使用
仔细想了想,虽有雄心壮志,但我还是决定不重复造轮子了(主要是忘得差不多了),还是分享大佬文章先:文章传送门
gdb联合qemu的基本使用
在掌握了gdb基本调试技巧后,接着我们要联合qemu调试内核,虽然专门写了这篇文章介绍联合调试,其实是非常简单:
sudo qemu-system-i386 $(QEMU_OPTION) -S -s --kernel kernel &
gdb -x gdbinit
其中的QEMU_OPTION是运行qemu的参数,gdbinit是让gdb提前执行的脚本,主要功能是方便我们打断点,其中联合qemu调试的关键如下:
file kernel
target remote :1234
是不是简单的令人发指,这也是我选择qemu的原因,在这两个脚本下就可以写上我们自己的调试命令了。
好了,有了gdb和qemu,妈妈再也不用担心我找不到BUG了。
未完待续
每个BUG作者都有自己的一份独特的调试技巧,这个附录会在以后编写ZOS的过程中逐渐添加内容,每当遇到典型的BUG时,比如空指针,死锁,我就会将完整的调试过程在这个小节进行叙述,用自己的拙见为大家抛砖引玉。同时欢迎大家将自己的调试技巧分享出来。