快乐虾
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 studio 的 IDE 中进行 Linux 应用程序的开发(包括编译和调试),也可以进行 uboot 和 linux 内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是 0.1.4 ,仅支持 vs2013 。此插件可以在 CSDN 下载频道下载( http://download.csdn.net/detail/lights_joy/8429771 ) 。下面是它的基本功能:
-
支持 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 等。
在用 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 。
原文:http://blog.csdn.net/lights_joy/article/details/44205775
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!