相关疑难解决方法(0)

当试图退出C++ 11 std lib时,调试器会更深入

我在Xcode 4.5中使用(Apple)LLVM 4.1(但我在之前的测试版中看到了相同的内容).我将它定位到C++ 11并使用libc ++(新的,支持C++ 11,std库的LLVM版本).

在调试版本中,如果我尝试跳过调用std库函数的代码(例如std :: vector构造函数),调试器会在std lib实现中停止,如果我尝试跳出它更深入的步骤!在我回到我自己的代码之前,可能需要几次(有时10次或更多次)的步骤(而且我从来没有想过要介入这个地方).

似乎总是有一个_LIBCPP_DEBUG宏,以及_LIBCPP_INLINE_VISIBILITY - 但这些似乎无处不在,所以我不确定它是一个相关性.但是,它似乎与内联的工作方式有关.

我还没有找到任何其他有这个问题的例子 - 但是,对于我来说,它已经持续了几个测试版 - 进入发布 - 并通过完全重新安装操作系统.

有没有人见过这个? - 但更好的是还知道发生了什么?

c++ debugging llvm xcode4 c++11

10
推荐指数
1
解决办法
1110
查看次数

在Xcode 4.4中使用libc ++调试问题

当我尝试在c ++上进行列表迭代调试时遇到问题.

我做了一个简单的测试应用:

int main(int argc, const char * argv[])
{
// insert code here...
std::cout << "Hello, World!\n";

std::list<int> list;
list.push_back(1);
list.push_back(2);
--> list.push_back(3);    //Line before step over
    for (std::list<int>::const_iterator i = list.begin(); i != list.end(); i++)
    {
      std::cout << *i << std::endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在调试时,当我在标有箭头的行上时,当我跳过时,它开始踩踏来自c ++文件的代码:'list'.我必须跨越15次,直到它最终到达for语句中的代码.

此问题仅发生在Xcode 4.4中.在Xcode 4.3中,调试工作得很好.

这里有一些不同的场景,结果不同:

  1. 使用LLVM GCC 4.2作为编译器→它工作正常.
  2. 使用Apple LLVM编译器4.0并为C++标准库设置libstdc ++(GNU C++标准库)→它可以正常工作.
  3. Apple LLVM编译器4.0并为C++标准库设置libc ++(支持C++ 11的LLVM C++标准库)→问题出现了.

在我正在开发的项目中,我们正在使用Apple LLVM编译器4.0和libc ++(支持C++ 11的LLVM C++标准库),所以我需要为场景3解决这个问题.

有谁知道会发生什么,以及是否有解决方法?

c++ debugging lldb libc++ xcode4.4

6
推荐指数
1
解决办法
928
查看次数

在使用Xcode 4.5调试c ++时,单步执行代码会停止在STL代码上

我尝试使用llvm 4.1编译的Xcode 4.5调试c ++代码.代码非常简单,只需将几个项插入到地图中即可.

当我跳过STL函数时,执行在STL代码内停止,而不是像往常一样执行该步骤.

当我使用LLVM-GCC 4.2编译时,调试很好,但是这个编译器没有C++ 11支持.

有没有人遇到过这个问题,并知道它是否可以修复?

c++ debugging xcode c++11 xcode4.5

5
推荐指数
1
解决办法
1240
查看次数

标签 统计

c++ ×3

debugging ×3

c++11 ×2

libc++ ×1

lldb ×1

llvm ×1

xcode ×1

xcode4 ×1

xcode4.4 ×1

xcode4.5 ×1