在vxworks中打印应用程序崩溃的堆栈跟踪



我是vxworks的新手,正在使用vxworks(PowerPC处理器(开发基于c++的嵌入式项目。我面临的问题是,我的应用程序有时(很少(会崩溃,我无法识别崩溃的位置,因为tera终端上没有打印任何内容(使用tera术语控制台应用程序的ld<App.out命令从主机加载可执行文件(。我在互联网上没有得到关于在vxworks中调试的有用资源。有人能建议如何识别vxworks中崩溃发生的痕迹吗。

对调试有用的两个命令是itt

i简单地打印出任务列表及其名称和状态。它可用于查找哪些任务失败。

tt显示任务的堆栈跟踪。手册示例:

-> tt "logTask"
3ab92 _vxTaskEntry   +10 : _logTask (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
ee6e _logTask       +12 : _read (5, 3f8a10, 20)
d460 _read          +10 : _iosRead (5, 3f8a10, 20)
e234 _iosRead       +9c : _pipeRead (3fce1c, 3f8a10, 20)
23978 _pipeRead      +24 : _semTake (3f8b78)
value = 0 = 0x0

有关tt的更多信息,请访问dbgLib。i命令在usrLib中有描述,但我在网上找不到它的手册。其来源可在此处获得,其中列出为:

  • i[task]任务的TCB摘要

要做的一项重要工作是:确保使用选项VX_FP_task创建了任何运行C++代码的任务。这可以解释";崩溃";在极少数情况下。

最新更新