[問題] 非console介面的程式debug技巧

看板C_and_CPP作者 (黑皮)時間14年前 (2010/06/21 12:33), 編輯推噓7(7015)
留言22則, 15人參與, 最新討論串1/3 (看更多)
平常我們在寫console介面的程式 如果遇到bug或是error最常用的debug法應該就是printf一些特定的值 來看看跟自己想的一不一樣 但是如果今天我是在用BCB或是VC寫視窗程式 執行的時候沒有小黑窗跳出來 printf也不能用 不知道大家這種情況都是如何debug的 想詢問一些小技巧 感謝 -- 虧損超過4000萬就解散 ∥ 政府不救兄弟就解散 ∥經營之神 / 我們進場 ∥台灣人都快 \ ∥的行銷課 - - 兄弟不要解散∥ 站出來救國球阿~~~ - -- - / ╯職19 ●●●● / ∥ ●●●● / 職20╰ \ ∥ < ˊ ψdoit1911 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.169.177

06/21 12:36, , 1F
不就直接用 VC 的偵錯就好了@@ 追蹤特定的值
06/21 12:36, 1F

06/21 12:38, , 2F
把信息sprintf到字串再用MessageBox跳出來
06/21 12:38, 2F

06/21 12:38, , 3F
如果要追蹤很長的話也可以試試印到檔案裡
06/21 12:38, 3F

06/21 13:55, , 4F
VC裡有TRACE函式可以用 google一下吧!!
06/21 13:55, 4F

06/21 14:00, , 5F
debuger
06/21 14:00, 5F

06/21 14:05, , 6F
其實視窗程式還是可以把黑窗弄出來的...XDD
06/21 14:05, 6F

06/21 14:05, , 7F
不過中斷點跟單步執行比較實際
06/21 14:05, 7F

06/21 14:05, , 8F
Memo1->Lines->Add(msg);
06/21 14:05, 8F

06/21 14:46, , 9F
F8之後瘋狂壓F10
06/21 14:46, 9F

06/21 17:36, , 10F
Debugger!
06/21 17:36, 10F

06/21 17:49, , 11F
windows下用ollydbg,linux下用gdb
06/21 17:49, 11F

06/21 21:59, , 12F
中斷點 or ShowMessage() or Memo1->Lines->Add();
06/21 21:59, 12F

06/21 22:00, , 13F
把stdout轉向到filestream, 就可以輕鬆地把輸出都轉到檔案
06/21 22:00, 13F

06/21 22:01, , 14F
然後再用tail之類的程式就可以當成console在看(win32也有)
06/21 22:01, 14F

06/21 22:40, , 15F
通常會有專門的函式讓你輸出到 IDE 的 debug window。
06/21 22:40, 15F

06/22 01:18, , 16F
可以用console模式產生視窗阿
06/22 01:18, 16F

06/22 01:18, , 17F
如果整個視窗死當都還是可以處理
06/22 01:18, 17F

06/22 01:29, , 18F
那就要用GetModuleHandle了
06/22 01:29, 18F

06/22 09:00, , 19F
印象中古早的 ePSXe 這種模擬器開 debug 選項還是會跳出
06/22 09:00, 19F

06/22 09:00, , 20F
command line 視窗專門 show 訊息用,可以學這招吧。
06/22 09:00, 20F

06/22 09:37, , 21F
那就GetStdHandle吧 不然freopen到檔案...
06/22 09:37, 21F

06/23 19:13, , 22F
OutputDebugString... 會把字串送到output那邊..
06/23 19:13, 22F
文章代碼(AID): #1C7kkne8 (C_and_CPP)
文章代碼(AID): #1C7kkne8 (C_and_CPP)