多路串口程序,写串口后,读串口数据进行分析。限于数据量大及硬件设备的配置,程序基本无法使用开发用的电脑来进行跟踪调试。运行两路串口时,正常。但运行三路串口时,release版本,运行取得正常结果,然后程序马上自动关闭。而debug版本,运行取得正常结果,然后马上弹出我想大家都见过的“debug assertion failed”.点“忽略”,则可以继续使用软件。as following:
````````````````````````````````````````````````````````
Debug Assertion Failed!Program: ..path...\xxxx.exe
File:afxole.inl
Line:277For information on how your program can cause an assertion failure, see the visual c++ documentation on asserts.```````````````````````````````````````````````````````可从哪些方面的原因进行判断和诊断?——(最好能通过分析直接解决!!!)
如果非要跟踪调试,请给出一些需要注意的事项和有用的技巧。先谢谢大家。今天累了,先回家休息,明天再来琢磨这个bug。谢谢

解决方案 »

  1.   

    debug运行的时候不要忽略,调试,看栈呗.....
      

  2.   

    看下File:afxole.inl
    Line:277 具体是什么代码报错
      

  3.   

    可能是assert(...);引起的问题
    release下忽略这些
      

  4.   

    release版本,运行取得正常结果,然后程序马上自动关闭。头大,调试时会出现:user breakpoint called from code at 0xxxxxxxxx
      

  5.   


    不能在开发机器上调试 ???你可以使用远程调试,把VC下Debuger目录下的 
    C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\Debugger
    的东西 拷贝到目标计算机上然后运行 msvcmon.exe 既可以远程调试
      

  6.   

    release 版本的它还会执行断言宏的。所以你那个Assertion Failed当然不会显示。Debug版本比较全面的,它会执行断言宏的。如果断言宏被触发了,说明你这个程序肯定有问题,楼主不妨根据断言宏上的信息找到出错的地方,好好分析一下。如果不行的话,不妨把出错信息发上来,大家一齐分析。