在上一篇文章中, 我们完成了调试前的配置工作。总体来说,eclipse中的调试配置还是相当简单的。配置好后,就可以在eclipse中展开调试工作了。
本节主要介绍eclipse中调试eCos程序的步骤和方法。在调试过程中,我遇到了一些问题,在此一并说明一下。希望朋友们可以少走一些弯路。
调试方法与步骤
在eclipse中启动调试,与其它IDE环境的调试方法与步骤类似。归纳如下:
1. 启动调试。如果是第一次启动,在配置好后,点击配置界面的Debug按钮,如下图所示。
点击Debug按钮后,会弹出一个对话框,如下图所示。
这个对话框提示点击Yes按钮后将进入Debug调试界面。可以勾选Remember my decision,这样下次就不会再出现这个对话框了。
点击Yes按钮后进入调试界面,如下图所示。
调试界面中的视窗可以根据需要进行调整,并可以根据需要添加新的视窗。
以后,则可以切换到Debug调试界面的Debug视窗,然后点击菜单Run—>Debug,或者按F11来启动调试。
eclipse工具栏中提供了很多调试功能按钮,如单步调试、运行到光标处、停止调试等,每个调试功能都配有快捷键,用户应该学会使用它们,提高效率。
用户可以点击eclipse工作窗口右上的 相应图标,来回在C/C++界面和Debug界面切换。
调试出现的问题
1. No symbol table is loaded. Use the “file” command.
这是因为在Startup选项卡中没有把Load symbols选上,选上了就不会出现了。如下图所示。
2. No source file named cygdrive/e/workspace/proj_ecos/src/test_stm32/service/main/main.c.
解决方法:参考文章:http://blog.csdn.net/caroline_wendy/article/details/17056043。
原来,这个问题是由于C/C++—>Debug—>Source Lookup Path配置项的Path Mapping配置不正确导致的。原先配置为:cygdrive\e\,正确的配置应该是:\cygdrive\e\。如下图所示。
3. No source available for “0x0”
大概意思是在0x0地址处找不到变量。对此问题,一直找不到原因。不过,后面发现这不是一个问题。
按照上一篇文章的介绍配置好后,启动调试,每次都会出现上述这个问题, 但这时候,如果执行一次Resume操作(对应F8快捷键,或者工具栏中的 图标,或者菜单Run—>Resume),则可以往下正常调试。为解决这个问题,我们对调试配置的Startup选项重新配置下,如下图所示。其中,勾选Resume,表示在启动调试时会执行一次Resume操作,正好帮我们解决了上述问题。
另外,还在Run Commands中,添加了一条GDB指令:b cyg_user_start,表示在cyg_user_start()函数中设置一个断点。
总结
以上就是关于在eclipse中进行eCos程序调试的介绍。需要说明的是,这仅仅是一个简单的入门,还有很多需要我们去探索和研究。