VELT-0.1.6开发:在VS2013下用QEMU调试x86 Linux内核
2015-03-13 22:32
489 查看
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息
VELT的全称是Visual EmbedLinuxTools,它是一个visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visualstudio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译和调试,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.5,仅支持vs2013。此插件可以在百度网盘下载(http://pan.baidu.com/s/1c0lMxdm),安装过程参见《用vs2013+velt-0.1.4进行嵌入式开发:插件安装》。下面是它的基本功能:支持x86 Linux,海思hi3516/hi3520,MinGW这几个平台,提供这几个平台的项目模板。
完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。
完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。
利用串口进行内核的简单调试。
在VS下完成Linux内核的配置。
不使用Makefile进行Linux应用程序的编译。
使用Makefile进行Linux应用程序的开发。
使用SSH连接目标机器并用gdb进行应用程序的调试。
使用Telnet连接目标机器并用gdb进行应用程序的调试。
在VS中集成Linux终端(Poderosa),支持SSH/Telnet/Com,在打开终端时自动将VS的变量导出为bash里的变量,如ProjectDir等。
带python-2.7.6,且集成了numpy, scipy, matplotlib, cv2, pyqt4等python库。可以在PTVS下直接调用进行调试。
接下来使用QEMU来调试x86内核。它的基本原理是使用QEMU虚拟一个x86的机器,打开gdbserver接口,再用gdb通过网络连接到此接口上进行调试。
我们需要i386-softmmu目录下生成的qemu-system-i386.exe和pc-bios目录下的文件。由于我们只对内核有兴趣,所以暂时不需要***虚拟硬盘。
此时的QEMU:
再将目标主机的连接方式改为Qemu:
再修改调试时的工作目录:
在start_kernel函数设置一个断点,然后就可以调试运行了,F5~~~~
哈哈,一切顺利!!!
再试试单步执行,一切正常~~~收工
VELT的全称是Visual EmbedLinuxTools,它是一个visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visualstudio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译和调试,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.5,仅支持vs2013。此插件可以在百度网盘下载(http://pan.baidu.com/s/1c0lMxdm),安装过程参见《用vs2013+velt-0.1.4进行嵌入式开发:插件安装》。下面是它的基本功能:支持x86 Linux,海思hi3516/hi3520,MinGW这几个平台,提供这几个平台的项目模板。
完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。
完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。
利用串口进行内核的简单调试。
在VS下完成Linux内核的配置。
不使用Makefile进行Linux应用程序的编译。
使用Makefile进行Linux应用程序的开发。
使用SSH连接目标机器并用gdb进行应用程序的调试。
使用Telnet连接目标机器并用gdb进行应用程序的调试。
在VS中集成Linux终端(Poderosa),支持SSH/Telnet/Com,在打开终端时自动将VS的变量导出为bash里的变量,如ProjectDir等。
带python-2.7.6,且集成了numpy, scipy, matplotlib, cv2, pyqt4等python库。可以在PTVS下直接调用进行调试。
接下来使用QEMU来调试x86内核。它的基本原理是使用QEMU虚拟一个x86的机器,打开gdbserver接口,再用gdb通过网络连接到此接口上进行调试。
1.1 在MinGW下编译qemu
首先我们需要一个可用的qemu,选择最新的2.2.0版本。要在MinGW下成功编译,需要SDL-1.2.5,还需要directx,这个可以在libsdl.org上获得。./configure –target-list=i386-softmmumake就可以了。我们需要i386-softmmu目录下生成的qemu-system-i386.exe和pc-bios目录下的文件。由于我们只对内核有兴趣,所以暂时不需要***虚拟硬盘。
1.2 编译内核
接下来在kernel.org上下载linux-3.18.9的内核。同样打开内核的调试信息。我们需要内核根目录下的vmlinux和arch/x86/boot/bzImage文件。1.3 用QEMU加载内核
接下来我们用QEMU加载内核:qemu-system-i386 –kernel bzImage –S –gdb tcp:127.0.0.1:1234这里的-S让QEMU在启动时等待gdb连接。-gdb指定gdbserver要绑定的ip和端口。执行此命令后QEMU的状态:1.4 使用gdb连接
打开gdb并加载vmlinux:gdb vmlinux然后在gdb的命令行下执行:此时的QEMU:
1.5 用vs2013调试内核
在用命令行调通QEMU之后,用VS2013就很简单了,只需要将前面的-exec-run改为target remote127.0.0.1:1234就可以了。创建一个内核工程,将项目类型修改为Linux内核:再将目标主机的连接方式改为Qemu:
再修改调试时的工作目录:
在start_kernel函数设置一个断点,然后就可以调试运行了,F5~~~~
哈哈,一切顺利!!!
再试试单步执行,一切正常~~~收工
相关文章推荐
- VELT-0.1.5开发:在vs2013下调试Linux内核
- VELT-0.1.5开发:在vs2013下调试Linux GUI程序
- Vs2013在Linux开发中的应用(18): 应用程序调试方案
- VELT-0.1.5开发:在VS2013下进行python开发
- vs2013开发调试cocos2d-x-Lua工程项目
- VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)
- VELT-0.1.5开发:在vs2013下编译gdb
- VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)
- VELT-0.1.5开发:在VS2013下进行python开发
- Vs2013在Linux开发中的应用(14): 远程调试设想
- VELT-0.1.5开发:使用kgdb调试Linux内核【转】
- [内核编程] VS2013 WDK8.1 开发,调试驱动(xp win7 亲测)
- vs2013+WDK8.1+WinDbg调试驱动开发环境配置(多帖子整理,水原创)
- vs2013+WDK8.1+WinDbg调试驱动开发环境配置(多帖子整理,水原创)
- VS2013开发调试PHP扩展
- VELT-0.1.5开发:使用kgdb调试Linux内核
- 用真机进行调试VS2013开发的windowsPhone app
- 使用vs2013开发过程中,调试时很慢的解决办法
- QT5.3.1和VS2013开发,安装插件后在VS2013建新工程报错模块计算机类型“x64”与目标计算机类型“X86”冲突
- VELT-0.1.5开发:在VS2013下进行python开发