我正在Linux上移植Windows程序。我的程序使用Windows結構化異常處理(SEH)。 Linux不支持結構化的異常處理,但是它提供了信號處理。我們可以重寫信號來開發類似SEH的範例。Linux中的異常處理
一旦你能夠過濾例外Windows提供了三種備選方案的執行控制流:
1)EXCEPTION_EXECUTE_HANDLER:執行處理 2)EXCEPTION_CONTINUE_SEARCH:前進的例外下一個塊(如果沒有則存在OS) 3)EXCEPTION_CONTINUE_EXECUTION:繼續發生中斷的指令發生異常。
我該如何實現這個控制流在Linux。在Linux中,一旦處理完信號,程序就會從被中斷的地方開始執行。 如何開發continue_search和execute_handler範例?
在此先感謝
感謝您的回覆。 – Utkarsh
我正在使用C++語言。我可能需要提取此功能並創建共享對象文件。我也擔心我能否支持共享庫中的信號處理。此外,如果應用程序開發人員用其他處理程序覆蓋了信號,該怎麼辦? – Utkarsh
我已閱讀abou sigaction。正如你所描述的那樣,它將控制權返回到它離開的地方。但是,我還需要跳過/執行特定的代碼,繞過現有流程(執行catch塊並繼續在上面的塊中搜索)。不知道如何實現這個功能。 – Utkarsh