运行Green Hills调试器时的幻像输入

时间:2012-12-13 00:24:27

标签: c++ rtos greenhills

我在Green Hills INTEGRITY 5.0.10下运行Marvell Monahans PXA320。我正在使用MULTI 4.2.3进行开发。我正在使用RTSERV连接进行调试,我被要求接管一个菜单驱动的程序。

我注意到如果我暂停程序(修改断点)然后恢复它,任务进入无限循环,在调试器I / O选项卡中显示菜单。在打印的菜单的每个实例之后,它表示我已经进行了非法选择。因此,某些输入显然被输入任务,就像我输入了一样(并且此输入显然对应于无效的菜单选择)。我没有在显示器上看到这个幻象输入是什么。

我能做些什么来防止停止/恢复搞砸I / O?

谢谢, 戴夫

1 个答案:

答案 0 :(得分:0)

我的第一个猜测是getc()(或你的等价物)返回-1。如果输入缓冲区因停止应用程序而溢出,则可能会发生这种情况。应用程序停止时,I / O会继续流动...

使用INTEGRITY进行调试时暂停程序通常不是一个好主意。通常最好将调试器连接到单个线程(空闲或不经常使用的东西),在该线程中设置“任意”断点,然后恢复线程。 (不要关闭窗口!这样做会删除断点。)您将在线程上看到一个“DebugBrk”状态,然后您可以双击并附加到该特定线程。

遵循该备用程序应该(希望!)防止I / O错误。