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

作者: jamyang (Jack)   2017-09-21 11:41:47
在執行我的程式時,不定時會發生如圖的bug然後停止
https://i.imgur.com/yFUAN7c.jpg
1.這個程式是winform
2.用timer, timer.tick內是做 "資料運算->顯示在圖表"
google錯誤訊息,大概都是指向foreach內的List<>被新增或移除裡面的元素
但是錯誤出現時,timer.tick執行的次數相當龐大,也沒辦法設定中斷在那邊等
雖然說自己的臭蟲要自己除
但是遇到這種狀況不知道該怎麻著手
請教各位專家,是否可以給個建議,相當感謝
作者: YahooTaiwan (超可愛南西我老婆)   2017-09-21 11:43:00
打開工具列 -> Debug -> Windows -> Exception settings搜尋 InvalidOperationException,把它打勾你是想問這個嗎?? XDD
作者: jamyang (Jack)   2017-09-21 16:02:00
本來連我該怎麻問都沒有頭緒,但是現在照您說的做...看來有希望 xd
作者: vi000246 (Vi)   2017-09-21 16:05:00
作者: name2name2 (yang~hi)   2017-09-22 00:38:00
可以檢查foreach的時候 其他地方注意不要去增減元素?或是不用foreach改用for 就允許其他地方增刪元素或剛查到https://goo.gl/CquDSu 法二把集合ToArray?如果是找錯誤位置 可以先下中斷點在執行正常的地方更正 你可以把Exception Serttings裡的勾選框全選試試看 有可能可以顯示最初步錯誤的位置之後可以用右鍵恢復預設
作者: Litfal (Litfal)   2017-09-22 01:06:00
看看code應該就看得出來了吧,看不出來八成是多執行續樓上ToArray()去Clone一份再用是很好用的偷懶手法XD
作者: jamyang (Jack)   2017-09-24 12:52:00
根據網友的指示,可以看到中斷時的堆疊,確認是在呼叫廠商dll時造成的big,現在廠商正在fix,在這裡感謝各位大大補充一下,廠商的dll似乎也是在foreach出了問題

Links booklink

Contact Us: admin [ a t ] ucptt.com