2
我有以下代码:gdb调用函数 - 如何使用std :: cout作为参数?
#include <iostream>
using namespace std;
namespace ns
{
class D
{
int n;
public:
D(int _n):n(_n){}
void dump(ostream &os);
};
};
void
ns::D::dump(ostream &os)
{
os << "n=" << n << std::endl;
}
int main() {
ns::D d(200);
return 0;
}
在GDB,当我发出命令,call d.dump(std::cout)
,在该行return 0;
,我得到这个GDB错误:
A syntax error in expression, near `cout)'.
任何建议,我怎么能传递gdb调用函数中的“std :: cout”?
[UPDATE] 其实这是因为gdb,我用的是7.2;在我切换到7.11.1后,它工作正常。
什么的'摹版本++'和'gdb' ?什么汇编标志? –
gdb在完整的C++支持方面并不是很出色,我也没有真正期待它。为了做这样的事情,gdb必须是它自己的C++编译器,并且理解类型转换和继承等语言的核心方面。 –