作为所有人,我习惯于在vs中以逐步模式调试我的代码。好吧,现在我有一个到处都有背景工作人员的申请,我已经不在堪萨斯了。
什么是调试线程应用程序的最有效方法,并且能够监视每个线程以跟踪整个代码中发生的事情?
到目前为止,我坚持使用每个线程的单独日志实例进行良好的ol'debugging,但这正慢慢成为一个噩梦,我很快就会淹没在自己的日志中。
最佳答案
不要试图一次全部调试。将注意力集中在一个线程或围绕某个互斥锁进行交互的一对线程中的特定行为上。如果访问共享资源是问题所在,请围绕该资源的使用设置断点(应该在公共代码中,而不是在所有地方)。
如果您只想看到线程3在线程1之前完成,或者线程2用完了它的所有工作项并处于空闲状态,请使用日志。
您还可以使用vs threads视图查看每当进程在任何线程上的任何断点处停止时,每个线程都在做什么。这可以让您了解所有线程在任何给定时刻都在做什么。