您的位置:首页 > 其它

vs调试 多线程

2015-10-16 14:54 183 查看
Visual C++调试器可以支持“多线”情况。

例如,当一个线程遭遇一个断点时,调试器会自动切换到该线程的context

去。这所产生的一些行为,可能会令第一次见到的你感到惊讶。

如果你在一个“许多线程都会调用的函数”内设立断点,每当一个线程遭遇此断点,调试器便会在线程之间循环切换。我遇过这种情况数次。我设立一个断点,并且尝试执行下一步,结果却再次回到断点。我想调试器大概正在切换线程。这让我十分困惑。

有一些方法可以避开这些问题。

方法之一是挂起所有的线程——你感兴趣的那个除外。在调试器中,如果你打开【
Debug】菜单并选择【 Threads】,你

就会获得图12-1



在此对话框中你可以挂起(suspend)或重新执行(resume)任何线程,并且将调试器的焦点设定在某个线程身上。为解决前述问题,我应该选择图12-1中的两个线程,并按下【

Suspend】按钮,然后再选择第三个线程,按下【Set
Focus】按钮。

另一个调试方法:

输出日志,log。printf()等方法输出日志。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: