eclipse 调试器 - 断点意外行为

eclipse debugger - breakpoint unexpected behaviour

我在使用 Eclipse 断点方面需要一些帮助。我正在使用 Eclipse Luna Service Release 2 RC3 (4.4.2) 和 GDB 7.1 在 ubuntu 10.04 32 位上开发多线程 C++ 应用程序。 我设法在断点处放置和停止,但继续我没有让调试器在同一个地方停止,尽管它定期一次又一次地执行该行(不在断点处停止),在下方或上方添加新的断点行,使其停止,但在单击恢复时,它不会再次停在这些行。我尝试使用不间断模式和不使用不间断模式,但仍然得到相同的意外结果。 我什至尝试创建新项目 hello world,在其中添加 while 循环和睡眠,并将断点设置为睡眠。它停在那里,但删除断点,恢复并再次添加断点,它不会再停止....

int main() {
    while(1)
    {
        sleep(1);
    }
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
}

我从未见过如此出乎意料的行为。请帮忙...

谢谢,运行

这和我遇到的问题完全一样。我可以按照您在 hello world 项目中描述的那样重现它(我在 WindowsXP 上的 KeplerSR2 上)。

我看到你自己找到了我发布的关于它的答案(将 GDB 启动器从 "GDS DSF" 更改为 "Legacy Create Process Launcher"),如果其他人遇到同样的问题,我将其链接:

但至少在我的情况下,我更好地理解了为什么 GDB SDF 无法正常工作。似乎 gdb 没有找到源文件。当我添加断点时,它对我大喊 "No source file named D: 010workspaceTestGDB.cpp"。似乎 gdb 不喜欢反斜杠......为什么这只是简历上的问题?那肯定很奇怪。

这让我得到了以下答案,我希望它也对你有用:保留 GDB DSF Launcher,但在 运行>Debug Configurations>yourLauncher>Source 选项卡中,单击添加并选择 "Project - Path Relative to Source Folders".选择您的项目并将其放在 "Default" 源查找路径上方。