C++ 运行Green Hills调试器时的幻象输入

C++ 运行Green Hills调试器时的幻象输入,c++,rtos,greenhills,C++,Rtos,Greenhills,我在绿山完整5.0.10下的Marvell Monahans PXA320上跑步。我正在使用MULTI 4.2.3进行开发。我正在使用一个RTSERV连接进行调试,我被要求接管一个菜单驱动的程序 我注意到,如果我停止程序(修改断点),然后恢复它,任务将进入无限循环,显示调试器I/O选项卡中的菜单。每次打印菜单实例后,它都会说我做了非法选择。因此,一些输入显然被输入到任务中,就好像我输入了它一样(这个输入显然对应于无效的菜单选择)。我在显示器上看不到这个幻象输入是什么 我能做些什么来防止停止/恢复

我在绿山完整5.0.10下的Marvell Monahans PXA320上跑步。我正在使用MULTI 4.2.3进行开发。我正在使用一个RTSERV连接进行调试,我被要求接管一个菜单驱动的程序

我注意到,如果我停止程序(修改断点),然后恢复它,任务将进入无限循环,显示调试器I/O选项卡中的菜单。每次打印菜单实例后,它都会说我做了非法选择。因此,一些输入显然被输入到任务中,就好像我输入了它一样(这个输入显然对应于无效的菜单选择)。我在显示器上看不到这个幻象输入是什么

我能做些什么来防止停止/恢复破坏I/O

谢谢,
Dave

我的第一个猜测是getc()(或等效的)返回-1。如果由于停止应用程序而导致输入缓冲区溢出,则可能发生这种情况。应用程序停止时,I/O保持流动

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


遵循该替代过程应该(希望!)防止I/O错误。

是什么驱动操作系统计时器滴答作响?菜单是否正常通过串行端口?您能将调试器配置为继续并让它通过串行端口吗?如果是这样,那么会发生什么?同样的行为?