[問題] VC2005追蹤不到某些變數的問題

看板C_and_CPP (C/C++)作者 (怪龍-卡西歐魯)時間14年前 (2011/11/02 13:12), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2005 問題(Question): 目前正在用VC2005 debug 但是發現了一些變數追蹤不到的問題 我有一個如下的資料結構 struct Mesh { vector<Vec3f> m_v; vector<Vec3f> m_v_new; vector<Vec3f> m_n; vector<Vec2f> m_texc; vector<Vec3f> m_e; vector<int> m_vi; vector<int> m_ni; vector<int> m_ti; }; Vec3f是某個函式庫裡面定義的資料型態 不過和我的問題無關就是了 我把這個資料結構修改成這樣 struct Mesh { vector<Vec3f> m_v; vector<Vec3f> m_v_new; vector<Vec3f> m_n; vector<Vec2f> m_texc; vector<Vec3f> m_e; vector<Vec3f> m_nw; vector<Vec3f> m_nf; vector<int> m_vi; vector<int> m_ni; vector<int> m_ti; }; 綠色這兩行是我修改的部分 但是在Debug的時候追蹤這個資料結構結果卻如下圖 http://ppt.cc/_wpU model_old的宣告方式如下 Mesh* model_old; 其實就是Mesh這個資料結構的指標 但是在Debug時展開後沒有看見我新增加的m_nw和m_nf 另外我也有設幾個變數來方便運算 http://ppt.cc/_Ak1 在這張圖裡面我設定了nw這個變數 vector<Vec3f>& nw = model_old->m_nw; 我的程式裡面有大量用到這個變數,而且沒有在compile的時候出錯 所以我想變數應該是宣告成功的 但是在追蹤變數的時候 不管是打nw、*nw還是&nw都追蹤不到 只有看到「錯誤: 找不到符號 "nw"」的訊息 想請問一下是什麼原因導致我追蹤不到這些變數呢? 在修改之前就有的變數是可以看得見的 但是在我修改之後新增的變數無論如何都追蹤不到 而一些我修改時刪除的變數再Debug時居然還追蹤得到(不過裡面是垃圾資料) VC在設定新變數或修改資料結構以後需要做一些什麼特別的操作 才能在Debug時追蹤到那些修改後的變數嗎? 在此先感謝各位的回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 68.99.86.102

11/02 14:35, , 1F
你是用debug build在追的嗎
11/02 14:35, 1F

11/02 14:35, , 2F
如果release build有些東西被optimize掉是很正常的
11/02 14:35, 2F

11/02 22:00, , 3F
我是用debug build沒錯...那要怎麼樣才能追得到呢?
11/02 22:00, 3F

11/03 09:42, , 4F
仔細看一下,覺得你這個問題比較像pdb有問題耶…
11/03 09:42, 4F

11/03 11:41, , 5F
剛剛歪打正著找到了解決辦法,選建置->清除方案後再重新
11/03 11:41, 5F

11/03 11:41, , 6F
開始debug mode就可以看見了(汗)
11/03 11:41, 6F

11/03 11:54, , 7F
所以顯然是symbol table爛掉了 其實VC有時候就會這樣
11/03 11:54, 7F
文章代碼(AID): #1EiD4j1K (C_and_CPP)
文章代碼(AID): #1EiD4j1K (C_and_CPP)