eclipse调试器 - 断点意外行为

时间:2015-02-20 09:11:05

标签: eclipse debugging gdb

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

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

我从未见过如此不受欢迎的行为。请帮忙......

谢谢,Ran

1 个答案:

答案 0 :(得分:1)

这与我遇到的问题完全相同。我可以像你在hello world项目中描述的那样重现它(我在WindowsXP上的KeplerSR2上)。

我看到你找到了我自己发布的答案(将GDB启动器更改为#34; GDS DSF&#34;更改为#34; Legacy Create Process Launcher&#34;)如果其他人遇到了同样的问题: https://stackoverflow.com/a/27377261/2937955

但我理解为什么GDB SDF不能正常工作,至少在我的情况下。看来gdb没找到源文件。当我添加一个断点时,它正在向我喊叫&#34;没有名为D的源文件:010workspaceTestGDB.cpp&#34;。似乎gdb不喜欢反斜杠...为什么这只是简历上的问题?这肯定很奇怪。

这导致我得到以下答案,我希望它也适合你:保留GDB DSF启动器,但在运行&gt;调试配置&gt; yourLauncher&gt;源选项卡中,单击添加并选择&#34;项目 - 路径相对于源文件夹&#34;。选择你的项目并将其置于&#34;默认&#34;源查找路径。