[問題] 如何寫一個debug用的程式

看板C_and_CPP作者 (↖♂疝气a ☆摩斯★♀↘)時間15年前 (2010/05/05 01:40), 編輯推噓4(4013)
留言17則, 8人參與, 最新討論串1/1
如題 目前在用的一個小工具 裡面可以改一些設定 可是他並沒有內建debugger 只會在讀到錯誤的時候 顯示有錯誤 但不會告知你是哪一行設定寫錯 大家都寫程式 多少會遇過一些很腦憨的BUG (例如把o打成0之類的 囧) 那麼要怎樣去判斷跟讀取字串呢? debug算不好寫的程式嗎QQ? 會很複雜嗎 感謝 -- 如果我在簽名檔放說,我想認養長毛臘腸,這樣會違反板規嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.236.215

05/05 01:52, , 1F
秀出編譯時的錯誤應該是 compiler 的工作吧?
05/05 01:52, 1F

05/05 01:53, , 2F
debugger 是像 gdb 可以即時看執行中的變數那種...
05/05 01:53, 2F

05/05 01:54, , 3F
那種怎麼想都不可能好寫到哪去的 = ="
05/05 01:54, 3F

05/05 04:19, , 4F
你講的不是debugger吧
05/05 04:19, 4F

05/05 04:22, , 5F
要對底層很熟才寫得出debugger
05/05 04:22, 5F
敘述不太好 不是debugger 應該是顯示出錯誤的那個東西 就是1F說的compiler吧XD 例如說i++; 我忘了; 她就會顯示XXX行有出錯 並解釋可能的錯誤 這是一般的compile會跑出來的訊息 我不用做到解釋錯誤 我只要找出哪一行可能有錯 因為設定檔中可能包含上千行的資料 用人肉去debug會死人 囧 舉個小例子 for(i=0;i<10;i++) a++; 這行 如果寫成 for ( i = 0 ; i < 10 ; i ++ ) a ++ ; compiler判斷還是正確 我想知道該怎樣適度的忽略空白部分 又,再者 一般的讀取字串的方法 是用空白隔開 如果全部連在一起可能就沒辦法把個別部分取出 如拆成 for i=0 i<10 i++ a++ 這幾個部分 則我就可以很輕易的debug看出是否有出錯 ※ 編輯: MoseHas 來自: 61.227.193.1 (05/05 06:48)

05/05 07:57, , 6F
你先仔細說明你要找的錯是哪一種錯
05/05 07:57, 6F

05/05 07:57, , 7F
不同的錯誤找的方法也不一樣
05/05 07:57, 7F

05/05 07:58, , 8F
由你的文章看來應該是想要找 syntax error
05/05 07:58, 8F
是syntax error沒錯 不過格式跟C有點像又不太像就是 舉例:[propertyA] == A && [propertyB] != B ||.... 依此類推 我們可以檢查property的名稱有沒有打錯 == 有沒有打成 = 恩...差不多就這樣吧 ※ 編輯: MoseHas 來自: 61.227.193.1 (05/05 08:03)

05/05 09:16, , 9F
要把前幾篇的lex / bison拿出來用了嗎XD
05/05 09:16, 9F

05/05 10:38, , 10F
我有用過一個「Gold Parser」也不錯用
05/05 10:38, 10F

05/05 10:55, , 11F

05/05 10:56, , 12F
是指lint這類的程式嗎, linux下有splint可用
05/05 10:56, 12F

05/05 10:57, , 13F
不過沒用過就是了XD...
05/05 10:57, 13F

05/05 11:00, , 14F
另外這類的錯誤gcc -Wall也可以幫你檢查一些
05/05 11:00, 14F
努力看懂lint是什麼東西中... 是個遊戲會用到程式 簡單來說就是外掛(遮臉) 現在煩惱的是不知道如何讀取資料 難道要一個字元一個字元去讀嗎 囧 遇到&&或者||的時候結束一個property的讀取 再去判斷這個property有沒有寫錯 恩...這是愚笨的我想到的最好方法QQ ※ 編輯: MoseHas 來自: 61.227.193.1 (05/05 19:41)

05/05 19:45, , 15F
用 regexp 自己手動訂規則去檢查?
05/05 19:45, 15F

05/05 20:35, , 16F
慘 都聽不懂 辜狗看看有沒有答案好了..
05/05 20:35, 16F

05/05 22:35, , 17F
重新看完整篇後發現還是前面推的lex & yacc比較符合你需求
05/05 22:35, 17F
文章代碼(AID): #1Bu5mbpk (C_and_CPP)