對某些需要在編譯以後放到伺服器端或者集群執行的程式,在沒有除錯工具的情況下,解決問題的方法主要是通過輸出語句(將info輸出到日誌中),分為以下步奏:
1、對問題的定位
將程式分為幾大邏輯,根據順序逐個大邏輯進行測試(不要放過任何一部分,不要認為某個部分一定不會出錯,往往出錯的就是這部分)。然後逐步縮小問題出現的範圍,對**進行修改。
2、發現問題
a、出現問題後編譯器一般都會有提示,如果絲毫沒有提示,那麼也許是從某個邏輯出口跳出了。諸如try,catch語句,break,return語句等等。
b、段錯誤(segment error),一般原因為陣列越界,這就要求我們在程式設計的時候考慮周到,對map的getvalue以及string的substring時候先檢查是否haskey,以及index == -1 的問題。
3、對問題的解決
對問題的解決與問題的定位相反,可採取由小到大的方式,先將出現問題的地方改過,然後逐步向後擴大,看看是否會影響到後續**的執行。
4、 不太清楚的函式不要瞎用,以及以前沒用過的東西更要提高警惕。要注意try,catch語句的使用問題,try中的語句throw異常以後,進入對應的catch語句進行執行,直接跳過try中throw異常後面的語句,如果最後有finally,那麼會執行finally的內容然後順序執行。
謝謝kailian、zhangli、wangyue、bowen各位師傅的指導。多做總結,共同進步!
伺服器端tomcat,debug除錯
專案部署在伺服器上,而你要想在本地對其進行debug除錯。何解?通 過設定tomcat以debug模式啟動可以達到預期效果 1 tomcat bin catalina.bat,任意地方增加以下內容 set catalina opts xdebug xrunjdwp transport dt sock...
C 伺服器端編碼心得
很久以前寫的,最近來了兩個做c 的兄弟,感覺有必要共享一下 1.用斷言巨集來檢測程式的邏輯錯誤。分析一下程式core掉的原因,絕大部分是因為空指標或者無效指標引發的,而絕大部空指什和無效指標是因為程式的邏輯錯誤導至的。因此,在除錯版中用斷言巨集來檢測邏輯錯誤,是乙個很有效的方式。以下是我程式裡面的一...
關於Ajax伺服器端驗證
對於這個問題以前卡了幾次,也不知道自己是怎麼處理的。伺服器端驗證往往有乙個延時,也就是專業上所說的非同步操作。如果在提交表單需要獲取伺服器給的返回值來判斷是否需要提交就不是那麼容易了。因為 ajax 的延時性導致所獲取的返回值並非伺服器端的返回值。因為這一步執行的時候外圍程式可能已經執行完返回了。這...