最近ccflow程式在執行的時候經常導致iis宕機,單步除錯無法找到問題。
但是退出重新啟動vs程式,又可以了。第一次執行沒有問題,為此問題,不知道從何地方下手。
為此我想到了寫乙個單元測試來測試是否可以,在ccflow上面建立乙個單元測試**。如下
把default.aspx設定為起始頁,執行第1次成功,第2次就失敗。
由此我想到,一定是底層的**出現錯誤,而非前端的js導致iis宕機的問題。
我把範圍在縮小一次,執行default.aspx ,發現**出現在第乙個傳送方法上面。
bp.wf.dev2inte***ce.node_sendwork(「001」, workid, 102, 「liping」);
進一步縮小範圍,就是我們的核心** nodesend() ;的方法,出現問題。因為nodesend這個方法比較大,所以我在中間寫乙個了個異常。
經過測試發現,這個大方法的上部分,沒有問題。
我把剩餘代一半**,在縮小範圍一半,在中間部分,增加上
throw new exception(「err@執行到這裡了,刷下一下頁面,檢查是否出問題,如果出問題就說明,以上**有問題。」);
這個異常,最後定位到,處理事件的這個方法出問題了。
用同樣的方法,把在方法體中間,加丟擲異常,反覆幾次,終於定位到了,傳送郵件的時候導致的問題。
總結:1.遇到類似的問題,需要寫乙個單元測試,需要找到重現的場景。
2.找到重現的場景,就需要採用2分法,把**體分成一段一段的,然後在去找問題。
3.單元測試,是解決問題的最佳辦法。
除錯ccbpm系統的bug個技巧
最近ccflow程式在執行的時候經常導致iis宕機,單步除錯無法找到問題。但是退出重新啟動vs程式,又可以了。第一次執行沒有問題,為此問題,不知道從何地方下手。為此我想到了寫乙個單元測試來測試是否可以,在ccflow上面建立乙個單元測試 如下 把default.aspx設定為起始頁,執行第1次成功,...
乙個古怪的bug除錯過程
也許這也不能算是乙個bug,只不過沒有了解清楚乙個函式的確切用法罷了。這一切都源於乙個經典的程式 include include int main void return 0 當我輸入abcd n 的時候,輸出是abcd n 這很正常 當我輸入ctrl d 也就是eof 結束程式,這也很正常 但是,...
關於除錯bug的感想
1.今天boss eric 幫我除錯了一下程式中的bug,查詢得很有條理 其中有些功能我還不是很會使用,譬如全域性搜尋功能,我以前只知道有,但是關鍵時刻不知道使用,這次長見識了 為什麼我就不敢那麼做呢?我總是視官方的 如同雷區,寸步不敢刪不敢改,導致我一直陷入苦惱。2.對程式上的認識還是比較欠缺,以...