【发布时间】:2012-05-13 18:03:14
【问题描述】:
我知道答案,我把它放在这里让其他人看到它
如果您使用 eclipse CDT,您可能会理解 eclipse 不是调试器,它只是一个应用程序前端,特别是针对 GDB。因此,在调试 C++ 程序时,您实际上只是以更舒适的方式使用 GDB。如果您必须在 eclipse CDT 中调试多线程程序,您会意识到事情很快就会变得忙碌,因为当您遇到断点时,所有线程都会停止,并且当您尝试在特定线程中执行单行时,它也会运行其他线程。为了使其正常工作,线程必须能够任意且独占地运行——这样当程序员执行一行时,它只执行特定的线程。
因此,默认情况下,gdb 的设置默认关闭“调度程序锁定”。如果您调试多线程应用程序,您会明白这必须在 GDB 中启用才能实现所需的行为。如何运行此命令:
set scheduler-locking on
在 eclipse CDT 内的 GDB 中?
【问题讨论】:
标签: c++ c eclipse gdb eclipse-cdt