[問題] 看不到程式碼的debug該如何是好

看板C_Sharp (C#)作者 (Jack)時間7年前 (2017/09/21 11:41), 編輯推噓3(3016)
留言19則, 5人參與, 最新討論串1/1
在執行我的程式時,不定時會發生如圖的bug然後停止 https://i.imgur.com/yFUAN7c.jpg
1.這個程式是winform 2.用timer, timer.tick內是做 "資料運算->顯示在圖表" google錯誤訊息,大概都是指向foreach內的List<>被新增或移除裡面的元素 但是錯誤出現時,timer.tick執行的次數相當龐大,也沒辦法設定中斷在那邊等 雖然說自己的臭蟲要自己除 但是遇到這種狀況不知道該怎麻著手 請教各位專家,是否可以給個建議,相當感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.36.23 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1505965310.A.61C.html

09/21 11:43, , 1F
打開工具列 -> Debug -> Windows -> Exception setti
09/21 11:43, 1F

09/21 11:43, , 2F
ngs
09/21 11:43, 2F

09/21 11:44, , 3F
搜尋 InvalidOperationException,把它打勾
09/21 11:44, 3F

09/21 11:45, , 4F
你是想問這個嗎?? XDD
09/21 11:45, 4F

09/21 16:02, , 5F
本來連我該怎麻問都沒有頭緒,但是現在照您說的做...看來
09/21 16:02, 5F

09/21 16:02, , 6F
有希望 xd
09/21 16:02, 6F

09/21 16:05, , 7F
09/21 16:05, 7F

09/22 00:38, , 8F
可以檢查foreach的時候 其他地方注意不要去增減元素?
09/22 00:38, 8F

09/22 00:39, , 9F
或是不用foreach改用for 就允許其他地方增刪元素
09/22 00:39, 9F

09/22 00:41, , 10F
或剛查到https://goo.gl/CquDSu 法二把集合ToArray?
09/22 00:41, 10F

09/22 00:43, , 11F
如果是找錯誤位置 可以先下中斷點在執行正常的地方
09/22 00:43, 11F

09/22 00:52, , 12F
更正 你可以把Exception Serttings裡的勾選框全選試
09/22 00:52, 12F

09/22 00:52, , 13F
試看 有可能可以顯示最初步錯誤的位置
09/22 00:52, 13F

09/22 00:53, , 14F
之後可以用右鍵恢復預設
09/22 00:53, 14F

09/22 01:06, , 15F
看看code應該就看得出來了吧,看不出來八成是多執行續
09/22 01:06, 15F

09/22 01:07, , 16F
樓上ToArray()去Clone一份再用是很好用的偷懶手法XD
09/22 01:07, 16F

09/24 12:52, , 17F
根據網友的指示,可以看到中斷時的堆疊,確認是在呼叫廠
09/24 12:52, 17F

09/24 12:52, , 18F
商dll時造成的big,現在廠商正在fix,在這裡感謝各位大大
09/24 12:52, 18F

09/24 14:54, , 19F
補充一下,廠商的dll似乎也是在foreach出了問題
09/24 14:54, 19F
文章代碼(AID): #1PmpJ-OS (C_Sharp)
文章代碼(AID): #1PmpJ-OS (C_Sharp)