Y yercomputer Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-16 #1 我用线程写了一个接受通信数据的程序,但是在我用断点测试单步跟踪的时候出现一个怪问题:在没有循环的代码中,向下一步一步执行代码,突然返回前几行,又向下执行,中间没有循环语句,怎么出现这种怪问题,请高手给出思路,有没有高手也碰到类似的问题,先谢了。
我用线程写了一个接受通信数据的程序,但是在我用断点测试单步跟踪的时候出现一个怪问题:在没有循环的代码中,向下一步一步执行代码,突然返回前几行,又向下执行,中间没有循环语句,怎么出现这种怪问题,请高手给出思路,有没有高手也碰到类似的问题,先谢了。
T tseug Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-16 #3 把没用的DCU什么的都删掉,重新 BuildAll 一下
S shandongxintaix Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-16 #4 你是不是创建了多个线程,如果是多个线程并行运行,当然会出现这种现象。
Y yercomputer Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-16 #7 to shandongxintaixinwen, 是多个线程,怎么解决呢?
S sharing21 Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-16 #11 你把代码是不是从 qq聊天记录 复制过来的,如果是就吧那几句删除从新写一下就好了!!
Y yercomputer Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-19 #12 出来了是因为我创建时候用的false,用true 就可以了,然后再加一个唤醒语句
A appfirst Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-19 #13 如果你跟踪的是线程代码,同时这个线程类型的数量有2个以上,那就对了,因为调试器在线程切换后认为当前线程是仍需要调试的。道理就是两个线程的执行代码地址是一样的,但由于不同的线程实例执行到代码的位置不同,所以当线程切换后就出现了你说的那个问题,而且当你执行几步以后会发现又回到刚才的位置执行了,因为又切换回了刚才那个线程。
如果你跟踪的是线程代码,同时这个线程类型的数量有2个以上,那就对了,因为调试器在线程切换后认为当前线程是仍需要调试的。道理就是两个线程的执行代码地址是一样的,但由于不同的线程实例执行到代码的位置不同,所以当线程切换后就出现了你说的那个问题,而且当你执行几步以后会发现又回到刚才的位置执行了,因为又切换回了刚才那个线程。