2013-03-08 44 views
2

我想测试一个C++函数调用的结果。该函数是公共的,调试器位于对象是成员的调用中。这里是类接口:如何在lldb命令行中调用C++对象的公共函数?

class NumerialDispersion { 
    MeshSystem mesh; 

    vector<double> b_k; 
    vector<double> c_k; 


public: 
    void setupMeshSystem(); 
    void setUpAnalysis(); 
    void calculateK(); 
}; 

我需要测试一个函数,我已经在MeshSystem内声明。 MeshSystem类的接口如下:

class MeshSystem { 

    Element mainMeshElement; 


public: 
    MeshSystem(Element element, double tStep); 


    double get_b_k(uint index); 

}; 

我需要与索引的不同值来执行在LLDB功能get_b_k()。我正在使用Xcode 4.6用户Mountain Lion。

lldb是否支持这种表达式?如果是的话,任何人都可以帮助我吗?

很多人提前感谢。

+0

你试过只是调用它?例如。 'mesh.get_b_k(some_index)'? – 2013-03-08 10:38:46

+0

我试过使用expr mesh.get_b_k(some_index)。但它没有奏效。 我试图使用这个指针访问对象作为this-> mesh。如果我写expr this-> mesh,它会显示所有的成员变量。 但用expr尝试this-> mesh.get_b_k(i)或expr this-> mesh-> get_b_k(i)不起作用。 是否有执行类函数的特定命令? – 2013-03-08 11:12:38

+0

当做这件事时,lldb会做出什么反应? – 2013-11-01 02:16:04

回答

0

任一类型的

p mesh.get_b_k(1) 

expr -- mesh.get_b_k(1) 

注意,函数可以是不存在于靶在所有,即不使用其身体只是没有编译。在这种情况下使用它以某种虚假的方式,或使可导出(注释属性((知名度(“默认”)))