線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1229
推到 Plurk!
推到 Facebook!

程式沒有任何訊息消失了!!

答題得分者是:andychang1690
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-30 01:01:21 IP:210.66.xxx.xxx 未訂閱
請問各位先進是否有人曾經預到應用程式會沒有任何錯誤訊息的情形下消失的情形嗎? 目前小弟所寫的一支Socket Server在2000 Server上執行,會在沒有任何警告或是錯誤的訊息下消失的情形。該程式用到多個Thread與動態的記憶體配置,先前是曾遇到記憶體存取錯誤或記憶體資源不足等情形,但至少都會有視窗出現,但這次完全沒有任何的訊息出現,連事件檢視器也沒留下記錄..... 是否有人知道是怎麼樣的錯誤或是操作才會導致OS不會出現任何訊息就把應用程式給"終結"了....
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-30 01:07:30 IP:220.134.xxx.xxx 未訂閱
小弟意見,有錯請指正 我想像您這種情形影響因素相當多,很難說出你真正的問題點,建議你可就程式部份進行debug,如果發現問題點而又無法解決時,再與其他先進進行討論。 ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-30 01:16:15 IP:221.169.xxx.xxx 未訂閱
ChrisChen: 可否檢查程式那些地方用到Terminate或Close指令! 尤其你用到多個Thread。 請參考! Andy Chang
------
Andy Chang
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-30 01:21:19 IP:210.66.xxx.xxx 未訂閱
是否可以舉幾個影響因素的例子呢?因為該程式已經連續運作了一週未出現任何錯誤,但在程式消失時也沒有訊息出現,在這一週觀察了工作管理員記憶體也沒有增長的情形;因此是否可以請您舉幾個會造成無訊息關閉程式的因素呢?謝謝!
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-30 01:33:05 IP:210.66.xxx.xxx 未訂閱
引言: ChrisChen: 可否檢查程式那些地方用到Terminate或Close指令! 尤其你用到多個Thread。 請參考! Andy Chang
您好,程式唯一有Close是在主Form的"結束"鈕;另外程式本身原持斷的寫入Log至檔案,在程式啟動及正常結束及每個Thread Executoe進入及離開也都會寫Log,而程式消失後查看Log檔,就像被人由工作管理員中直接結束了一樣...因為Log顯示好幾個Thread都有啟動記錄,但沒有離開記錄。 但在程式正常時記錄中會顯示每個Thread的啟動及結束....
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-30 03:12:31 IP:221.169.xxx.xxx 未訂閱
引言:
引言: ChrisChen: 可否檢查程式那些地方用到Terminate或Close指令! 尤其你用到多個Thread。 請參考! Andy Chang
您好,程式唯一有Close是在主Form的"結束"鈕;另外程式本身原持斷的寫入Log至檔案,在程式啟動及正常結束及每個Thread Executoe進入及離開也都會寫Log,而程式消失後查看Log檔,就像被人由工作管理員中直接結束了一樣...因為Log顯示好幾個Thread都有啟動記錄,但沒有離開記錄。 但在程式正常時記錄中會顯示每個Thread的啟動及結束.... < face="Verdana, Arial, Helvetica"> ChrisChen:這類問題是最討厭的,建議你: 一、將程式上傳至求助區讓各位大大們幫忙檢查。 http://delphi.ktop.com.tw/post.asp?method=Topic&FORUM_ID=97&CAT_ID=31&Forum_Title=%B7%7C%AD%FB%A8D%A7U%B5%7B%A6%A1%C0%C9%AE%D7%A4W%B6%C7%B0%CF 二、先Mark一些無相關的地方測試一下如產生Log檔。 或每個Tread各自產生各自的Log檔測試一下。 請參考! Andy Chang
------
Andy Chang
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-30 13:44:02 IP:61.222.xxx.xxx 未訂閱
打擾各位先進了!真不好意思! 這個問題分析了一個晚上,終於找到問題所在了!    問題出在其中有一個Thread在執行某個Method時,在Method中有宣告一塊128K的Char Array,原本以為應該夠用了,結果沒想到對方送過來的資料大於128K,因此在複製資料進char Array時(memcopy),就發生意外了,在將該記憶體改成動態依資料大小來配置時問題就排除了!    不過在這裏有一點很奇怪,就是如果在IDE環境下上述的操作會出現記憶體存取錯誤,可是如果直接執行執行檔時程式會直接就消失了!這一點我還是無法解釋,是否有請先進開釋....  < class="code"> << 兇手 >> function TEAIConnector.getMsgData_EXT(pMessageObj:pChar): string; var mBuf:array[1..128*1024] of char; mStr:string; begin FillChar(mBuf,128*1024,0); MQ_getMsgData_EXT(pMessageObj,mBuf); // <-- 兇手,取資料時大於128K了(memcopy) mStr := mBuf; // <-- 在IDE環境會在這一行一執行後出現記憶體存取錯誤 SetLength(mStr,Length(mBuf)); Result :=mStr; end;
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-09-30 15:00:21 IP:221.169.xxx.xxx 未訂閱
ChrisChen:恭喜你解決了問題。IDE環境下通常是debug mode。 與執行Mode還是不同的try就是一例。 Andy Chang
------
Andy Chang
ChrisChen
一般會員


發表:4
回覆:11
積分:3
註冊:2004-04-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-09-30 16:16:19 IP:61.222.xxx.xxx 未訂閱
引言: ChrisChen:恭喜你解決了問題。IDE環境下通常是debug mode。 與執行Mode還是不同的try就是一例。 Andy Chang
嗚..嗚...嗚...看了十幾個記錄檔,比對好久才找到每次出事時都會有某一個交易被發動才找到的.....嗚..嗚...嗚....台灣又多了一隻大熊貓了.... 謝謝您們花時間來幫我出主意囉~~~
系統時間:2024-07-04 10:55:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!