当一个线程因断点而被冻结时,是否有人可以确认是否可以运行其他线程?如果有这样的设置,请告诉我在哪里找到它。
答案 0 :(得分:5)
当断点命中时,调试器总是冻结所有线程。但是,当您按F5继续执行时,您可以控制线程发生的情况。您可以使用Debug + Windows + Threads调试器窗口中提供的Freeze
工具栏按钮,以防止在按F5时线程继续。使用Thaw
按钮重新启用它。
答案 1 :(得分:0)
我不知道这是否可能,但坦白说,如果是,那就不应该。是的,理论上可以打破一个线程,而其他线程继续运行,但请记住,有一个正在运行的线程将尝试与冻结的线程交互。这会导致当前冻结线程出现各种问题。我怀疑调试器的设计考虑到了这一点,因此没有允许这样的设置。如果其他人有不同的知识,请告诉我,因为我发现自己很好奇
答案 2 :(得分:0)
我不熟悉VS,但我知道自7.10版以来gdb支持非停止模式,所以我认为可以用VS做这样的事情。 以下是摘要:“对于某些多线程目标,GDB支持可选的操作模式,您可以在其中检查调试器中已停止的程序线程,而其他线程继续自由执行。这可以最大限度地减少调试实时系统(例如程序)时的入侵其中一些线程有实时约束或必须继续响应外部事件。这被称为不间断模式。“ 您可以搜索“不间断gdb”以获取更多详细信息。