gpt4 book ai didi

c++ - 在 lldb 中使用 C++ std::cout

转载 作者:IT老高 更新时间:2023-10-28 23:21:13 25 4
gpt4 key购买 nike

我正在尝试调用 std::cout在 Xcode 5 C++ 项目中的 lldb 中。我的项目有一个 #include <iostream>行(并且我验证了编译后的 std::cout 命令可以正常工作),但它确实 notusing namespace std;行。

当我在 lldb 的断点处停止时,我无法调用 std::cout :

(lldb) expr std::cout << "test"
error: no member named 'cout' in namespace 'std'
error: 1 errors parsing expression

(lldb) expr cout << "test"
error: use of undeclared identifier 'cout'
error: 1 errors parsing expression

对于那些感兴趣的人,我正在尝试使用 std::cout打印 OpenCV Mat 目的。但那个细节可能并不重要。

我的 lldb 版本是 lldb-300.2.53 .

根据要求,这是(简单的)代码:

#include <iostream>
int main(int argc, const char * argv[])
{
std::cout << "Hello World" << std::endl;
return 0;
}

断点位于 return 0;行。

最佳答案

也许你可以通过其他方式做到这一点:

1、创建一个dylib,导入所有需要的头文件,写一个这样的函数:

void mylog(const MyObject& obj)
{
//assume MyObject is the type you want to view in Debuger
std::cout << obj << std::endl;
}

在您的桌面(或另一个较短的路径)中构建为 libdbghelper.dylib。

2,将其加载到您的调试项目中:

(lldb) target modules add /Users/yourName/Desktop/libdbghelper.dylib

3,然后你可以用命令记录它

(lldb)expr mylog((const MyObject&)myobj);

这是我的 mac 中的运行结果: http://i.stack.imgur.com/LBBLJ.jpg

dylib 的代码是这样的: http://i.stack.imgur.com/H1Q9v.jpg

关于c++ - 在 lldb 中使用 C++ std::cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20430256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com