在我的代碼中,我有一個STL向量,它保存着指向對象的指針。 我這樣編碼的原因是因爲我必須從不同的地方操作對象本身。GDB&C++:打印對象指針的向量
std::vector<Object*> objects;
for (int i = 0; i < 10; i++) {
Object* o = new Object(i);
objects.push_back(o);
}
此代碼假定Object是一個將整數作爲構造函數參數的對象。假設在for循環結束後我斷點與我的GDB斷開了,我必須做些什麼才能輕鬆查看我的向量中的對象?
當我做「p對象」時,它只列出了完全期望的指針地址,但我希望看到每個對象所保存的整數變量。我嘗試過「p objects [0]」,但是這返回「找不到運算符[]」。
有沒有人遇到過這個問題?或知道如何解決這個問題? 我的目標是當這些對象的指針存儲在STL向量中時,能夠從GDB中查看實際保存的對象。
我建議有一個向量智能指針。你可以在'gdb'調試器中嘗試'p * o'或'p objects'。 – 2014-10-11 06:16:49
我需要觀察指向不同地方的對象的指針的內容,做「p對象」會向我顯示所有的地址,但它們不會告訴我每個對象中的內容,以及「p objects [0 ]「也不起作用,說」無法找到運算符[]「 – user3064869 2014-10-11 06:19:47
最近版本的'gdb'和[GCC](http://gcc.gnu.org/)即'g ++'可能有幫助 – 2014-10-11 06:21:14