VELT开发与应用
文章平均质量分 88
VELT是Visual EmbedLinux Tools的缩写,这个Visual Studio的插件将使得Visual studio可以进行Linux的开发。本专栏将描述此产品的开发与应用。
嵌云阁主
参与从系统设计到硬件调试和软件编码每一过程的工作
展开
-
velt-0.1.7开发: KernelConfig的问题
VELT的全称是Visual EmbedLinuxTools,它是一个visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visualstudio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译和调试,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.6,仅支持vs2013。此插件可以在CSDN下载频道下载(http://download.csdn.net/detail/lights_joy/8544349)。本文讨论原创 2015-04-01 21:37:35 · 1428 阅读 · 0 评论 -
用VS2013+VELT进行Linux开发
本文讨论了一种在vs2013下进行Linux开发的方法。原创 2015-03-29 16:45:27 · 2898 阅读 · 2 评论 -
VELT-0.1.6开发:加载根文件系统
下面让内核能够加载根文件系统。从qemu的网站上下载linux-0.2.img,然后让QEMU使用此文件做为启动的文件。在命令行下调用:F:\projects\src\gdb2012\src\EmbedLinux\publish\bin\qemu>qemu-system-i386.exe -hda d:\tmp\linux-0.2.img -kernel z:\winshare\linux-3.18.9\arch\x86\boot\bzImage -append "root=/dev/sda ro"当原创 2015-03-16 23:06:34 · 1357 阅读 · 0 评论 -
VELT-0.1.6开发:在VS2013下用QEMU调试x86 Linux内核
接下来使用QEMU来调试x86内核。它的基本原理是使用QEMU虚拟一个x86的机器,打开gdbserver接口,再用gdb通过网络连接到此接口上进行调试。原创 2015-03-13 22:32:05 · 2195 阅读 · 1 评论 -
VELT-0.1.5开发:在VS2013下进行python开发
接下来加上python终端,原以为可以直接用微软的PTVS插件,可惜PTVS分析库文件总出错,其原因在于当库文件比较多的时候,PTVS的分析器将由于内存分配失败而退出!!当然最后无法得到正确的结果,而语法高亮等则是依赖于这个结果。无奈只好删除一些暂时不会使用的库再分析,这回可以了,记下此过程供以后参考!原创 2015-03-12 21:23:57 · 6297 阅读 · 1 评论 -
VELT-0.1.5开发:在vs2013下调试Linux内核
在用gdb命令行成功连接目标板后,尝试在vs2013下连接目标板。原创 2015-03-11 21:51:21 · 1864 阅读 · 1 评论 -
VELT-0.1.5开发: gdb串口调试内核时信息丢失的问题
当用gdb-7.8.2通过串口调试内核时,gdb并不显示内核的输出信息,或者仅能显示部分的输出信息,这对于内核调试而言很不方便。查了下gdb的代码,解决此问题。原创 2015-03-10 21:37:58 · 1648 阅读 · 0 评论 -
VELT-0.1.5开发:在vs2013下编译gdb
本文记录在VS2013下编译gdb-7.8.2的过程,给出了几个关键的修改。原创 2015-03-09 22:58:33 · 1732 阅读 · 0 评论 -
VELT-0.1.5开发:使用kgdb调试Linux内核
尝试通过串口调试Linux内核。以hi3520的内核为试验对象。原创 2015-03-06 23:09:31 · 1600 阅读 · 1 评论 -
VELT-0.1.5开发:在vs2013下调试Linux GUI程序
尝试在vs2013中调试Linux下的GUI程序。选择wxWidgets-2.8.12做为调试对象,测试其自带的samples -> caret原创 2015-03-03 00:04:33 · 2207 阅读 · 0 评论 -
VELT-0.1.5开发:中断MinGW gdb的执行
本文讨论在调用Mingw gdb时如何中断其执行过程。原创 2015-02-28 23:49:15 · 1418 阅读 · 1 评论 -
VELT-0.1.5开发:调试方案更改
本文讨论VELT-0.1.5开发中的程序结构变更。原创 2015-02-28 23:39:03 · 1041 阅读 · 0 评论 -
用VS2013+VELT-0.1.4 进行Hi3516 应用程序 的开发
上一篇文章中介绍了用velt编译并调试海思SDK中的vio示例程序,用的是Makefile的方式,这种方式的好处是可以保留原有的开发方式,又可以引入VS2013。本文讨论不用Makefile的方式编译并调试vio测试工程。原创 2015-02-10 22:57:47 · 1725 阅读 · 0 评论 -
用VS2013+VELT-0.1.4 进行Hi3516 Makefile应用程序 的开发
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.41.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-02-09 21:09:49 · 2325 阅读 · 0 评论 -
用VS2013+VELT-0.1.4进行海思平台 Linux内核 的开发
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.41.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-02-07 16:43:01 · 2583 阅读 · 1 评论 -
用VS2013+VELT-0.1.4进行海思平台 UBOOT 的开发
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.41.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-02-06 23:15:30 · 4639 阅读 · 0 评论 -
用VS2013+VELT-0.1.3进行Linux开发:Makefile型应用程序
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.31.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-01-29 21:59:15 · 2480 阅读 · 0 评论 -
用VS2013+VELT-0.1.3进行Linux开发:静态库
VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码。本文讨论用它来开发一个 Linux静态库。原创 2015-01-28 21:56:55 · 1479 阅读 · 0 评论 -
用VS2013+VELT-0.1.3进行Linux开发:动态库
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.31.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-01-27 21:38:39 · 1716 阅读 · 0 评论 -
用VS2013+VELT-0.1.3进行Linux开发:Hello World
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.31.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-01-26 21:20:38 · 2881 阅读 · 0 评论 -
用VS2013+VELT-0.1.3进行Linux开发:环境搭建
快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.31.1 什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Lin原创 2015-01-26 00:05:55 · 2858 阅读 · 1 评论 -
Vs2013在Linux开发中的应用(36):Milestone-0.1.0
到目前为止,我们已经可以让VS2013完成以下功能:支持x86 Linux,hi3516,hi3520三个平台。完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。完成LINUX内核的配置。不使用Makefile进行Linux应用程序的编译。使用SSH连接目标机器并用gdb进行应用程序的调试。使用Telne原创 2015-01-09 23:17:21 · 1212 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(35):Telnet支持
有时候在嵌入式环境中没有SSH,只能用Telnet进行连接,下面我们让调试器加上telnet支持。在前面的设计中使用了python进行调试引擎和目标机器的连接,接着沿用python,直接使用telnetlib替换先前的ssh连接的部分代码,很容易就搞定了!强大的python~~~原创 2015-01-09 22:56:44 · 1399 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(34):Ctrl + F5支持
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息VS中常用的Ctrl+F5可以不调试直接运行,但是其运行的环境变量仍然可以传递给应用程序,在我们的调试方案中使用了一个叫RemoteConsole的stub程序在调试状态下,EmbedLinux调试引擎会在开始调试时打开一个自动选择的服务端口,再将此端口号通过环境变量传递给RemoteConsole。在原创 2015-01-09 22:40:45 · 1584 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(33):反汇编
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息1.1 失败按照文档的说法,反汇编应当实现IDebugDisassemblyStream2接口,然后在 // The debugger calls this when it needs to obtain the IDebugDisassemblyStream2 for a part原创 2015-01-08 21:09:36 · 1850 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(32):文本可视化
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息VS2013提供了一个文本可视化的工具,在显示XML之类的字符串时相当方便,下面我们就让VS2013也能显示我们的字符串:首先我们需要判断表达式的返回值类型,如果是字符串的话就设置 if (_evalResult.Flags.HasFlag(EvaluationFlags.原创 2015-01-08 20:12:30 · 2048 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(31):内存块显示
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息要实现内存块的显示,需要实现IDebugMemoryBytes2接口,类似这样的: class AD7MemoryBytes : IDebugMemoryBytes2 { private AD7Engine _engine; public AD7Engine原创 2015-01-07 18:29:51 · 1699 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(30):程序中断
在我们在gdb中加载程序并运行时,可以按CTRL-C中断执行,此时gdb输出:^C*stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",frame={addr="0x00110424",func="__kernel_vsyscall",args=[]},thread-id="1",stop原创 2015-01-06 22:06:03 · 1519 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(29):寄存器信息
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息当VS需要获取寄存器值的时候,会调用 // Creates an enumerator for properties associated with the stack frame, such as local variables. // The sample engine原创 2015-01-05 23:30:45 · 1801 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(28):单步执行
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息在VS调试时,有三种类型的单步操作逐语句,逐过程和跳出,当进行这三种操作时,SDM调用的其实是同一个回调: // This method is deprecated. Use the IDebugProcess3::Step method instead. ///原创 2015-01-03 11:11:34 · 1758 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(27):线程列表
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息在gdb加载应用程序并运行时,可以检测到线程的创建,我们将此消息以事件的形式通知了SDM。因此当中断发生时,对于每一个线程,VS的SDM将调用我们的回调: // Retrieves a list of the stack frames for this thread. //原创 2015-01-02 12:09:38 · 1839 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(26):表达式计算
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息当VS调试时将鼠标移到一个变量上面的时候,VS将显示这个变量的值,实际上这个时候VS进行了表达式的计算,我们所需要做的,就是把这个过程转换为gdb的命令: Operation Description -enable-pretty-printing enabl原创 2015-01-01 23:26:55 · 1496 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(25):曙光
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息在SDM接收到断点命中的消息时,它将停止调试过程,然后获取程序状态,第一个要做的就是线程列表: // EnumThreads is called by the debugger when it needs to enumerate the threads in the program.原创 2014-12-31 21:52:20 · 1797 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(24):触发断点
当gdb命中断点时,它将在断点的位置停下来并给出信息:*stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x0805fc75",func="main",args=[{name="argc",value="1"},{name="argv",value="0xbffff6e4"}],file="../../app/原创 2014-12-29 20:53:47 · 1307 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(23):信息输出
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息有时候,我们需要往VS的信息输出窗口输出一些调试信息,此时只要向SDM发送通知: Send(new AD7DebugOutputStringEvent2(e.Output), AD7DebugOutputStringEvent2.IID, thread);利用此功能,很容易就可以把原创 2014-12-27 20:33:23 · 1227 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(22):模块加载
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息当gdb检测到模块的加载时会输出:=library-loaded,id="/lib/ld-linux.so.2",target-name="/lib/ld-linux.so.2",host-name="/lib/ld-linux.so.2",symbols-loaded="0",thread-group原创 2014-12-25 21:27:40 · 1673 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(21): 线程创建
当gdb检测到应用程序创建新线程时会输出: =thread-created,id="1",group-id="i1"此时,需要将此事件通知SDM: Send(new AD7ThreadCreateEvent(), AD7ThreadCreateEvent.IID, ad7Thread);原创 2014-12-20 16:45:08 · 1220 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(20): 断点设置
当vs设置断点时,SDM将调用: // Creates a pending breakpoint in the engine. A pending breakpoint is contains all the information needed to bind a breakpoint to // a location in the debuggee.原创 2014-12-19 21:43:27 · 1760 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(19): 启动gdb
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息1.1 加载调试引擎由于我们无法干预VC的调试引擎加载,但可以侦听VC的调试引擎加载事件,在此事件处理中可以调用自己的调试引擎: publicvoid LaunchDebugTarget(string filePath, string env) {原创 2014-12-17 21:12:49 · 1989 阅读 · 0 评论 -
Vs2013在Linux开发中的应用(18): 应用程序调试方案
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息在前面我们对VS的调试接口做了基本的功能验证,下面开始方案的拟定:如上图所示,我们需要在WINDOWS端运行两个辅助程序,一个是RemoteConsole,这个程序的主要作用是显示远端程序的输出,并将用户输入传送给远端。另一个是python解释原创 2014-12-10 23:07:32 · 1599 阅读 · 0 评论