VELT-0.1.5开发:在vs2013下调试Linux内核

快乐虾

http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)

欢迎转载,但请保留作者信息

本文仅适用于vs2013 + velt-0.1.5



VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studioIDE中进行Linux应用程序的开发(包括编译和调试),也可以进行ubootlinux内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.4,仅支持vs2013。此插件可以在CSDN下载频道下载(http://download.csdn.net/detail/lights_joy/8429771。下面是它的基本功能:

  1. 支持x86 Linux,海思hi3516/hi3520MinGW这几个平台,提供这几个平台的项目模板。

  2. 完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。

  3. 完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。

  4. VS下完成Linux内核的配置。

  5. 不使用Makefile进行Linux应用程序的编译。

  6. 使用Makefile进行Linux应用程序的开发。

  7. 使用SSH连接目标机器并用gdb进行应用程序的调试。

  8. 使用Telnet连接目标机器并用gdb进行应用程序的调试。

  9. VS中集成Linux终端(Poderosa),支持SSH/Telnet/Com,在打开终端时自动将VS的变量导出为bash里的变量,如ProjectDir等。 



在用gdb命令行成功连接目标板后,尝试在vs2013下连接目标板。

与应用程序相比,仅仅只需要将原来的-exec-run改为target remoteCOM1,其余照旧。

很快就看到结果了。


首先配置好调试参数:


由于gdb运行于windows下,因而这里采用windows路径。gdb将读取linux内核源码根目录下的vmlinux 


当启动调试时,RemoteConsole会输出提示信息并等待:


此时调试器将等待串口输出:

kgdb: Waiting for connection from remote gdb...

在接收到此输出后启动gdb并加载vmlinux


然后可以看到vs中断下来:



此时的调用栈:


呵呵,小小地激动了一把。


在我们的驱动上设一个断点,run



这回是大大地激动了一把。

不过在用了一段时间后激动慢慢退去,越来越觉得不爽,最主要的就是一个字

毕竟是串口的东西!!

而且由于内核的优化,很多东西其实是显示不出来的。

线程也不正确:




只有当前中断的内核线程可以取到栈。

反汇编基本显示不出来,因为太慢了,而且有数据丢失。

下回试试用命令行的接口,不用mi










评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值