作者jamyang (Jack)
看板C_Sharp
標題[問題] 看不到程式碼的debug該如何是好
時間Thu Sep 21 11:41:47 2017
在執行我的程式時,不定時會發生如圖的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://webptt.com/m.aspx?n=bbs/C_Sharp/M.1505965310.A.61C.html
1F:推 YahooTaiwan: 打開工具列 -> Debug -> Windows -> Exception setti 09/21 11:43
2F:→ YahooTaiwan: ngs 09/21 11:43
3F:→ YahooTaiwan: 搜尋 InvalidOperationException,把它打勾 09/21 11:44
4F:→ YahooTaiwan: 你是想問這個嗎?? XDD 09/21 11:45
5F:→ jamyang: 本來連我該怎麻問都沒有頭緒,但是現在照您說的做...看來 09/21 16:02
6F:→ jamyang: 有希望 xd 09/21 16:02
8F:推 name2name2: 可以檢查foreach的時候 其他地方注意不要去增減元素? 09/22 00:38
9F:→ name2name2: 或是不用foreach改用for 就允許其他地方增刪元素 09/22 00:39
11F:→ name2name2: 如果是找錯誤位置 可以先下中斷點在執行正常的地方 09/22 00:43
12F:→ name2name2: 更正 你可以把Exception Serttings裡的勾選框全選試 09/22 00:52
13F:→ name2name2: 試看 有可能可以顯示最初步錯誤的位置 09/22 00:52
14F:→ name2name2: 之後可以用右鍵恢復預設 09/22 00:53
15F:→ Litfal: 看看code應該就看得出來了吧,看不出來八成是多執行續 09/22 01:06
16F:→ Litfal: 樓上ToArray()去Clone一份再用是很好用的偷懶手法XD 09/22 01:07
17F:→ jamyang: 根據網友的指示,可以看到中斷時的堆疊,確認是在呼叫廠 09/24 12:52
18F:→ jamyang: 商dll時造成的big,現在廠商正在fix,在這裡感謝各位大大 09/24 12:52
19F:→ jamyang: 補充一下,廠商的dll似乎也是在foreach出了問題 09/24 14:54