在OSX上使用带有GCC4.9的BOOST库时,GDB找不到帧

在OSX上使用带有GCC4.9的BOOST库时,GDB找不到帧,boost,gdb,g++,osx-yosemite,Boost,Gdb,G++,Osx Yosemite,我的问题是,当从Eclipse调试一个使用Boost(甚至是纯头)的程序时,GDB调试器无法找到要跟踪的函数的帧基 请注意,除此之外,该程序在调试和发布模式下工作得非常出色。这个问题只适用于调试和检查参考Boost的源代码 请注意,这个问题只会影响OSX 问题是我看不到局部变量的值。下面是我在Eclipse的“(x)=变量”窗口中看到的消息: Failed to execute MI command: -data-evaluate-expression result Error message

我的问题是,当从Eclipse调试一个使用Boost(甚至是纯头)的程序时,GDB调试器无法找到要跟踪的函数的帧基

请注意,除此之外,该程序在调试和发布模式下工作得非常出色。这个问题只适用于调试和检查参考Boost的源代码

请注意,这个问题只会影响OSX

问题是我看不到局部变量的值。下面是我在Eclipse的“(x)=变量”窗口中看到的消息:

Failed to execute MI command:
-data-evaluate-expression result
Error message from debugger back end:
Could not find the frame base for "main()".
代码非常简单,如下所示:

#include <boost/regex.hpp>
#include <iostream>
int main() {
   int result = 1;
   boost::regex reExpression("[a-z]+");

   std::cout << "!!!Hello World !!!" << std::endl;
   result ++;

  cout << " Result = " << result << "\n";
  return result;
}
如果删除对Boost.Regex的引用,那么一切都正常。我可以检查局部变量结果的值

更有趣的是:我构建了一个库,其中包含一个依赖于Boost的函数,并从main()调用该函数。碰巧它可以检查main()中的代码,并具有main的局部变量的值,但是当我进入库的函数时,我看不到该函数的局部变量

所以,似乎只要源文件引用Boost,GDB就会感到困惑

我已经在OSX上使用MacPort安装了GCC4.9、GDB7.7和Boost1.57

我使用MacPort从源代码处编译Boost,以便使用GCC而不是使用命令GCC:

g++ -v -o -g bin/Essai-MACOS-Debug  src/Essai.cpp -I/opt/local/include /opt/local/lib/libboost_regex-mt.a
sudo端口安装-ns boost config.compiler=macport-gcc-4.9

我还尝试了我自己编译的Boost版本,但我确实遇到了同样的问题

有人知道这个问题吗

编辑: 我已经从源代码(7.9)编译并安装了最后一个GDB版本,这里描述的问题与MacPorts提供的7.7.1版本相同