Windows Practice_文件搜索器(二)_多线程调试

多线程如何进行调试呢?

上一节中我们滥用多线程,导致扫描结果不正确,并且好费时间也增加,但是,有一点我们也是需要注意的,多线程以后肯定使用的比较较多的,我们怎样才能很好的对多线程进行调试呢?
visual studio集成开发环境给我们提供了一个线程调试的功能。界面如下所示:
这里写图片描述

当启动的线程比较多的时候,设置断点可能会导致电脑卡死
所以我们在调试多线程的时候,不能在开启很多条线程之后让它中断下来,而是要从一开始就设置断点,一个线程一个线程的开启,并且每开启一个线程,我们要对这个线程进行重命名,否则它们的名字是一样的,都叫ucrtbased.dll,我们根本无法区分那条是那条线程。
对于多线程函数,我们应该很清楚线程函数中的每一行代码的作用,因为我们在调试的时候,主要的精力是放在线程窗口的。
需要注意的是,刚进入main函数时,就有4个线程已经启动了,这是系统中的线程,我们不用管,如下所示:
这里写图片描述
接下来就f10单步往下走,当第一次进入到线程函数时,我们会看到多了一条线程,并且有一个黄色的箭头表示线程正在运行。
这里写图片描述
此时,我们就要对此线程进行命名了,一般来说,我们会根据线程启动的顺序的标号进行命名,这里我们就为这个线程重命名为1,然后再接着往下单步调试,当又一次创建线程的时候,如下如所示,此时1号线程还在运行。
这里写图片描述
此时我们为新创建的线程命名为,继续往下调试,当执行到这一步时,2号线程开始运行了,如下图所示:
这里写图片描述
继续往下单步执行,直到有创建一条线程为止,如下图所示
这里写图片描述
然后将新创建的线程重命名为3,就这样依次类推,当我们创建了7、8个线程后,如下图所示:
这里写图片描述
细心的朋友会发现,怎么少了5号线程了呢?其实我也不太清楚,我是按着顺序一步一步的命名下来的,我觉得是5号线程执行完退出了,这个也不太重要,重要的是,我们可以双击某一个线程来看它当前的运行状态,但是我们一般不要这样做,因为这样就相当于人为的进行了线程的切换。
如下图所示,我们双击8号线程结果:
这里写图片描述
上面就是我们对多线程调试的方法。希望对广大朋友以及我以后的工作有用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值