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

pure virtual finction call 及 abnormal program termination錯誤

答題得分者是:aftcast
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-08-26 02:17:36 IP:122.116.xxx.xxx 未訂閱
程式是放在工廠的電腦,用來判別面板是否有任何異常,透過攝影鏡頭取像

程式內有使用thread以及virtual function,因為是接手別人寫的程式,執行時不定期會出現

abnormal program termination錯誤視窗(根據以前寫程式遇過的狀況,通常按掉之後程式就會關閉),但是這隻程式會再出現R6025-pure virtual finction call的錯誤訊息

按確定之後程式就會被關閉

因為是工廠電腦,出錯當時人都不再旁邊,而且是隨機發生,只能根據操作員的回報,實在很難判斷當時的情況

已經參考過關於Pure Virtual Function Call的除錯問題

但是因為工廠電腦並無安裝bcb,因此無法利用pwipwi版主提供的方法(觀看call stack)來解決

請問有什麼方法或工具可以查出出現這種錯誤的可能原因嗎?

看上述這篇討論,問題點似乎在multi-thread,但是又不太確定,工廠沒辦法帶電腦進去測試

或者我還需要提供那些資訊給各位先進,還請指教,非常感謝


ps.程式使用BCB6開發,作業系統為XP SP3
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-08-30 18:16:20 IP:210.64.xxx.xxx 訂閱
根據經驗來看。應該是如同dllee副站長所遇到的一樣。是屬於thread未死時object A就先死的情形。

結決的辦法可以例用critical section 放在thread 一開始時(即第一行)Acquire,而在thread結束前一刻把critical section Release。此外,在objectA 的 delete 前也放同一個critical section並Acquire。

如此就可以讓確保 object A一定會於 thread結束時才被delete,否則就會因為 critical section還保護中而暫時hang住直到thread結束。

此類問題正確講應該是歸類至 thread 的同步問題。 比如 A object 正在run 該object 的某方法(不一定要是實作pure virtual),而另一個thrad(比如主thread),就任意的把該object給 delete…

------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2010-08-30 18:24:47, 註解 無‧
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-09-07 21:23:51 IP:111.82.xxx.xxx 未訂閱
感謝affcast的回覆,debug超久的,終於找到問題,果然是thread同步出了問題

===================引 用 aftcast 文 章===================
根據經驗來看。應該是如同dllee副站長所遇到的一樣。是屬於thread未死時object A就先死的情形。

結決的辦法可以例用critical section 放在thread 一開始時(即第一行)Acquire,而在thread結束前一刻把critical section Release。此外,在objectA 的 delete 前也放同一個critical section並Acquire。

如此就可以讓確保 object A一定會於 thread結束時才被delete,否則就會因為 critical section還保護中而暫時hang住直到thread結束。

此類問題正確講應該是歸類至 thread 的同步問題。 比如 A object 正在run 該object 的某方法(不一定要是實作pure virtual),而另一個thrad(比如主thread),就任意的把該object給 delete…

系統時間:2017-12-19 2:36:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!