[英]How do I Delay destruction of my process if another thread causes it to crash on windows?
我正在編寫一個DLL,它由一個專有程序加載,該程序是封閉源代碼,我無法控制。 我還加載了一個專有的DLL,這同樣模糊不清。 由於我有時必須中繼命令,我通過我的DLL接口訪問DLL I Load,延遲非常低我在初始化DLL時啟動一個單獨的分離線程,並通過無鎖隊列發送未格式化的調試信息。 因此,耗時的格式化調試輸出和寫入日志文件是異步完成的。 問題是進程無意中崩潰(我幾乎肯定不是我的錯),我無法知道最后的調試信息是什么,因為我的分離線程被Windows殺死之后才能將其寫入磁盤。
所以這是我的問題:
我認為即使使用IPC,您也會遇到過程故障期間您的線程可能有未寫入的調試信息的情況。 大概你沒有調試一直在進行,所以我認為你不需要一個單獨的線程,只需要一個編譯時或運行時選項來啟用它。 您可以為進程設置SetUnhandledExceptionFilter
,並在終止之前執行一些操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.