程式運作到一半莫名其妙當機 |
缺席
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位
我有一支程式運作中, 使用者進入系統操作後, 不特定的時間中, 可能使用者輸入了一些資料(StringGrid), 停了好一會再繼續操作, 或者使用者完成了StringGrid內容, 開始執行我設定的一連串運算及資料儲存到資料庫的流程後, 再重新開啟一個新的StringGrid重覆上述作業時當機(有時做兩次就會, 有時做四五次才會), 我懹疑是記憶體管理上出問題, 但追查各應該釋放或free的階段都有確實執行, 實在查不出其他可能原因, 不知各位有沒有類似的經驗且解決的 我的當機狀況是, 作業完全停擺, 無法輸入任何資料, 一動視窗就出現沒有回應錯誤, 只要將該程式強制關閉再開啟又可以正常運作, 強調一點客戶的電腦沒有任何中毒現象, 而且是不只一台電腦有這個現象, 很多台只要執行這支程式都有發生過 作業系統 XP PARADOX 7 DBFILE INTERBASE(FIRBIRD 1.5X) 謝謝! |
boson
中階會員 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我也曾懷疑過, 但發生狀況前, 有時只有處理一筆, 有時會有百來筆倒不一定, 我發現重點在幾乎都是在StringGrid停頓一陣子不使用時, 當再度動滑鼠或鍵盤就會有此狀況, 在此在特別強調幾個重點
1.不是只有一個客戶電腦會發生(這套系統的用戶大約有300百家, 但有1/3會發生) 2.也不是網路連線問題, 因為有單機用戶也會發生 3.也不是螢幕保護程式問題, 因為我們都不設定, 也強烈要求客戶不得安裝 4.也不是省電問題, 所有xp好心設定的省電功能(包含螢幕, 硬碟, 網卡), 我們都關閉或設永不 5.power也都不使用具有智慧節電功能 6.所有pc都有接ups穩壓, 可能有人懷疑ups老舊, 但有些新機到貨使用也會, 也非都是同一家製造 7.再來的可能出問題部份我們就不知道了 8.如果有那位前輩願意幫我們找到原因且能改善或解決, 我們願意致上酬金表示感謝 在此先向站長致歉, 利用這個版面做了一點商業利益的交換, 我下次不敢了~~~~ ===================引 用 wameng 文 章=================== 有沒有可能是記憶體不足!如果資料筆數很多。 用Memproof 檢查一下記憶體及指針釋放或佔用的情形。 至於一動視窗就沒回應,這是正常的。GDI繪圖有優先處理權,若程式滿載就會出現沒有回應。 可能需再進一步測試哪一段出問題得知。 |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
1.並未用到THREAD
2.SOURCE有10來支PAS, 主程式碼也有近5000行CODE, 全PO實在很難看的懂, 其中我們自己開發的THIRD PARTY元件及工具也不少, 基本上要各位查真的很難, 我只希望有類似狀況發生的經驗, 可以提供我一個方面, 或者我們可以當面討論 3.程式碼屬於公司, 未獲准我無法公佈, 抱歉! ===================引 用 Jasonwong 文 章=================== 1. 版大是否有用到 Thread 呢 2.是否能把 Source 貼出來呢, 與其亂猜倒不如實際來看看 |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
>我發現重點在幾乎都是在StringGrid停頓一陣子不使用時, 當再度動滑鼠或鍵盤就會有此狀況
難道一直動滑鼠與鍵盤就不會有此問題嗎! >也不是網路連線問題, 因為有單機用戶也會發生 是不是有網路阻塞。不清楚您處理單機用戶,也會執行連線嗎 >沒有回應 可能是Windows 訊息阻塞,系統會發一個 WM_NULL 若程式沒有回應。就... 我想想! 1. StringGrid 不可能會有問題,因為我用了7,8年也沒問題。 2. StringGrid 是否是有繼承。是否有些元件訊息處理不正確。尤其是來路不明的THIRD PARTY元件。!@#$ 3. 是不是有什麼 SetEvent 動作導致。 暫時想到這裡 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
這個問題,看來是很難處理的。未知的因素太多。
首先訊息列阻塞時觸發,看來是行不通的。 一來Windows 訊息何止千萬,二來用WndProc或onMessage 雖然可以記錄並判斷訊息狀態。 但似乎是不太穩定的作法。...且太累了太多訊息無從判斷... >我發現重點在幾乎都是在StringGrid停頓一陣子不使用時, 當再度動滑鼠或鍵盤就會有此狀況 事實的狀況,應該是程式擺了一段時間,就當掉了。 幾點建議: 1.是否有一些事件(onChange 又觸發onChange...)或Timer導致。 2. 是否可添加一些 DEBUG 代碼,寫下事件簿。輔佐調查... 3. 若真為訊息阻塞,用 SetPriorityClass(GetCurrentProcess, HIGH_PRIORITY_CLASS);// REALTIME_PRIORITY_CLASS 看看能否改善。此舉有點碰碰運氣之嫌... 看來又是一個長期抗戰DEBUG 的痛苦時期。good luck !!! |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |