2013-03-08 45 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) 

注意,函數可以是不存在於靶在所有,即不使用其身體只是沒有編譯。在這種情況下使用它以某種虛假的方式,或使可導出(註釋屬性((知名度(「默認」)))