我正在爲我的Windows桌面應用程序的崩潰處理系統工作,並不確定捕獲一些異常的最佳方法。這裏有3個簡單的函數崩潰:如何在Windows中捕獲RSP和RIP損壞異常?
crash_av proc
xor rax, rax
mov qword ptr [rax], 0
ret
crash_av endp
trash_rip proc
push 0
push 0
ret
trash_rip endp
trash_rsp proc
xor rsp, rsp
ret
trash_rsp endp
使用SetUnhandledExceptionFilter
,我只能夠趕上crash_av
。
使用AddVectoredExceptionFilter
,我只能趕上crash_av
和trash_rip
。
但我不知道有什麼辦法可以趕上trash_rsp
。可能嗎?是否有其他碰撞情況我應該尋找?有沒有一種規範的方法可靠地捕獲這些崩潰的全部?
沒有辦法趕上*「崩潰」*。可以攔截未處理的SEH異常,但是您的代碼可能會或可能不會引發異常。 – IInspectable