【问题标题】:Phantom Input When Running Green Hills Debugger运行 Green Hills 调试器时的幻象输入
【发布时间】:2012-11-30 19:45:22
【问题描述】:

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

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

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

谢谢, 戴夫

【问题讨论】:

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

标签: c++ rtos greenhills


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-01-08
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多