除錯ccbpm系統的bug個技巧

2021-10-04 05:33:34 字數 1116 閱讀 3510

最近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.對程式上的認識還是比較欠缺,以...