我试图std::cout在Xcode 5 C++项目中调用lldb.我的项目有一个#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
Run Code Online (Sandbox Code Playgroud)
对于那些感兴趣的人,我试图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;
}
Run Code Online (Sandbox Code Playgroud)
断点return 0;在线.
小智 4
也许你可以用另一种方式做到这一点:
1、创建一个dylib,导入所需的所有头文件,编写如下函数:
void mylog(const MyObject& obj)
{
//assume MyObject is the type you want to view in Debuger
std::cout << obj << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
在桌面(或其他较短的路径)中构建为 libdbghelper.dylib 。
2、将其加载到您的调试项目中:
(lldb) target modules add /Users/yourName/Desktop/libdbghelper.dylib
Run Code Online (Sandbox Code Playgroud)
3、然后就可以用命令log了
(lldb)expr mylog((const MyObject&)myobj);
Run Code Online (Sandbox Code Playgroud)
这是我的 mac 中的运行结果: https ://i.stack.imgur.com/LBBLJ.jpg
dylib的代码如下: https://i.stack.imgur.com/H1Q9v.jpg
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |