有一个疑惑,调试运行程序和执行程序时,程序的运行状态一定是一样的吗?比如说创建两个线程,用互斥量同步,在线程函数的入口处设断点,发现调试运行时并不能一定保证两个线程的严格交替运行,有时候会在某个线程中循环多次。但是程序运行时是没有问题的。
调试运行的原理是什么呢?

解决方案 »

  1.   

    确实涉及多线程时候,调试运行和直接运行可能产生不同的效果,以前也为这个事情烦恼,后来就利用log来debug,设断点的方式来调试多线程程序可能会扰乱一些时序,甚至容易出现IDE崩溃。
      

  2.   

    恩的确存在多线程的时序问题,调试比较麻烦,好在我不需要研究的太深呵呵用用MFC,在时序问题上开几个同步线程,处理下消息队列,一般还是能解决的
      

  3.   

    多线程时,还是用log记录的数据准确。