使用VirtualBox和KGDB调试内核

转载 2016年08月29日 11:27:33


http://blog.csdn.net/cjxsimon/article/details/44173071


网上有许多教程讲解关于使用KGDB和VirtualBox进行内核调试的,但是几乎都是使用两个虚拟机进行调试,本文主要是讲解如何使用host(自己的电脑)和一个虚拟机(guest)进行调试。本文主要是参考http://www.opensourceforu.com/2011/03/kgdb-with-virtualbox-debug-live-kernel/ 这个网页来讲的,但是有几点值得注意的地方:

1.在配置串口时可能会遇到很多报错,与kvm冲突,缺少kernel source等,这些问题都可以在网上搜索到解决的办法。另外,原网页中串口的路径是原作者电脑上的路径,你在配置时就在自己电脑上随便写个路径就行;

2.原文说使用NFS进行文件共享,感觉很复杂。其实可以使用VirtualBox“设置”选项里面的“共享文件夹”,将你要调试kernel source代码所在的文件夹添加,选择“固定分配”,然后在guest终端下面执行“sudo mount -t vboxsf /共享文件夹的名字(在共享文件夹里面可以看到) /mnt/share/”, /mnt/share/ 是你自己创建的一个目录,这样就可以在这个目录下访问或修改你的共享文件。(在虚拟机里面编译内核是非常耗时的,因此如果将内核代码所在的文件作为共享文件,就可以在host下make,然后在虚拟机里面make modules_install和make install);

3.原文里面使用socat时只用了“socat -d -d /code/guest/serial PTY:”一条命令(注意修改路径),笔者尝试了很多次都是不成功的。网上查阅许多资料后发现,在上一条命令之后,再运行"socat /code/guest/serial tcp-listen:5000"即可。然后在host进行gdb连接时应通过5000端口连接,即target remote:5000;

其他未涉及的地方请参考原文链接。

相关文章推荐

利用KGDB调试Linux kernel

创建时间:2010-01-27作者:Steven YangE-mail:mqyoung@gmail.com 更正:使用KGDB调...

KGDB环境搭建及调试

KGDB环境搭建及调试
  • ztguang
  • ztguang
  • 2016年09月02日 07:47
  • 403

使用kdb和kgdb调试Linux内核(2)

Linux内核崩溃时,如果保存core文件失败,或者发生在系统启动早期,kdb/kgdb可能是一个解决问题的利器。过去网上很多文章介绍利用串口kgdb调试内核,这要求运行gdb的机器和被调试的机器通过...
  • yayong
  • yayong
  • 2016年02月05日 09:36
  • 1338

使用kgdb进行Linux内核调试(未完成!)

Linux内核调试 本篇文章将介绍如何进行Linux的内核调试,我们的环境如下: 主机:Ubuntu 11.04 虚拟机:VirtualBox的Ubuntu11.04 首先做如...
  • htttw
  • htttw
  • 2012年02月15日 17:58
  • 1574

使用kdb和kgdb调试Linux内核(3)

Linux内核可以远程用gdb调试。但调试内核某块还是有些特殊的问题要处理。本文主要介绍如何利用gdb kgdb 去调试Linux内核模块。...
  • yayong
  • yayong
  • 2016年05月13日 09:05
  • 1774

使用kdb和kgdb调试Linux内核(1)

使用kdb和kgdb调试linux内核在内核模块开发早期是非常方便的手段。尤其kgdb是源码级内核调试器,是学习Linux内核的有力工具。...
  • yayong
  • yayong
  • 2016年02月04日 09:34
  • 1080

使用KGDB调试内核 on QEMU

本文由daviyang35起草,DDD最终完成。 对于本文有任何疑问,可直接在文章后评论询问。 1: 编译Linux + KGDB 1.1: 安装编译工具 请参考其他相关教程,推荐在安装系统的...

使用KGDB调试内核 on QEMU(一步一步跟我学)

http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/ 本文由daviyang35起草,DDD最终完成。 对于本文有任...

使用KGDB 进行内核调试(平台搭建和调试)

最近做的research涉及到在调试一个loadable linux kernelmodule, 查了下相关资料,发现在kernel下debug 需要的工具是KGDB(其实KGDB主要是做一个连接桥梁...

使用KGDB调试内核和模块

内核空间的代码(包括内核和模块)无法像应用程序那样使用gdb进行简单直观的调试. 代码调试一般有两种方法: 一种是通过调试器辅助调试, 如gdb, Visual C++的集成调试环境, JT...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用VirtualBox和KGDB调试内核
举报原因:
原因补充:

(最多只允许输入30个字)