[問題] VS2008 debug和printf的結果不一樣

看板C_and_CPP (C/C++)作者 (無家的小孩)時間14年前 (2011/12/15 15:21), 編輯推噓3(3014)
留言17則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 當使用 printf 時,能顯示一個變數的數值, 例如 A 但當使用 VS 2008 內建的 debug 變數觀察功能則顯示另個數值,例如 B, 請問有先進有遇到這種情況嗎? 是哪個方法較正確呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.19.77

12/15 15:22, , 1F
code勒
12/15 15:22, 1F

12/15 15:24, , 2F
幫別人捉錯,且那是個很大的program,所以無法提供
12/15 15:24, 2F

12/15 15:41, , 3F
那大家也沒辦法除錯
12/15 15:41, 3F

12/15 15:44, , 4F
個人是覺得問題一定是由其它位置引起,但是就沒有方向著手
12/15 15:44, 4F

12/15 15:45, , 5F
傾向是printf對,debug所看到的數值都是0
12/15 15:45, 5F

12/15 15:51, , 6F
printf與debug兩者顯示格式是否相同
12/15 15:51, 6F

12/15 15:56, , 7F
是相同的
12/15 15:56, 7F

12/15 16:22, , 8F
這種猜法是能猜到什麼答案....就一定某個地方寫錯嘛
12/15 16:22, 8F

12/15 17:09, , 9F
自己查記憶體位址一不一樣
12/15 17:09, 9F

12/15 17:31, , 10F
這真的要問神奇海螺了
12/15 17:31, 10F

12/15 17:52, , 11F
目前試著能不能要到那段有問題的程式碼中
12/15 17:52, 11F

12/15 22:55, , 12F
先去找看看是不是有區塊是只有在DEBUG MODE才作用的...
12/15 22:55, 12F

12/15 23:12, , 13F
Build個release版, 但是把optimization都先全關掉試試XD
12/15 23:12, 13F

12/15 23:12, , 14F
另外, debug版, VC會替變數初值成特定的數值, release版
12/15 23:12, 14F

12/15 23:13, , 15F
則不會, 所以如果撞到未給初值的變數, 也有機會遇到....
12/15 23:13, 15F

12/16 09:11, , 16F
要是是那些未定義行為的話,印象中也有踫過在 debug
12/16 09:11, 16F

12/16 09:11, , 17F
及 release (開了 optimization) 有分別的情況
12/16 09:11, 17F
文章代碼(AID): #1EwQ05Ga (C_and_CPP)
文章代碼(AID): #1EwQ05Ga (C_and_CPP)