【发布时间】:2013-12-24 04:18:33
【问题描述】:
我正在尝试在 Xcode 5 C++ 项目的 lldb 中调用 std::cout。我的项目有一个#include <iostream> 行(我验证编译的std::cout 命令工作正常),但它确实没有有一个using 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; 行。
【问题讨论】:
-
能贴出代码吗?
-
expr std::cout << "test"不是一个简单的表达式,我认为它不会在那里工作,因为它涉及函数调用。 -
@DieterLücking,如果“实际代码”是指我的 lldb 命令,我尝试了
std::cout和cout。我在其中测试 lldb 命令的项目代码是明确的,因为我在 OP 中编写它,没有using namespace std;行。 -
@DieterLücking,不,您可以看到
#include <iostream>行在我的代码示例中明确显示。我还确认了std::cout命令在编译后的代码中有效,只是在 lldb 调试器中无效。 -
expr std::cout.operator 怎么样