2011-03-29 56 views
0

我有C++代碼,它使用QueueUserWorkItem來調用從調用winsock接受的包裝類的函數。這在調試中可以正常工作,如果我使用Dependency Walker的啓動配置文件選項運行發佈可執行文件,它也可以工作。但是,如果我正常運行發行版可執行文件,它會在對QueueUserWorkItem的調用中崩潰。只要它調用該函數,應用程序就會退出。執行永遠不會到達我傳入QueueUserWorkItem的函數,但函數指針是有效的。Windows QueueUserWorkItem C++發佈模式問題

有沒有人知道任何可能導致QueueUserWorkItem在發佈模式下崩潰而不是調試?

+0

涉及QUWI並受工具影響的碰撞通常是由穿線比賽引起的。改變的時間可以觸發他們。 – 2011-03-29 21:03:49

回答

1

有沒有人知道任何可能導致<random function>在發佈模式下崩潰但無法調試的任何內容?

是的,緩衝區溢出。調試版本有放在他們周圍的守衛,你可以覆蓋,但在釋放模式下,你可能覆蓋重要的記憶。

+1

是的,除其他外...「生存版本」是一個常見的參考:http://www.codeproject.com/KB/debug/survivereleasever.aspx – ildjarn 2011-03-29 19:43:36