簡體   English   中英

崩潰報告和 C++ 協程?

[英]Crash reporting and C++ Coroutines?

我使用崩潰報告功能,如果應用程序因未捕獲的異常而崩潰,則允許用戶提交崩潰報告。

采用 C++20 協程后進入應用。 如果在協程中拋出意外異常,則在重新拋出之前捕獲異常。 這會導致 crashreports 不顯示找出發生了什么所需的堆棧跟蹤,而只顯示重新拋出異常的協程的堆棧跟蹤。 這基本上使任何崩潰報告都變得毫無用處。

據我所知,沒有辦法阻止協程捕獲任何異常,因為它是設計的必需部分。

有沒有辦法改善這個我看不到的? 我很好奇,因為我發現沒有其他人抱怨。 :->

編輯:為了澄清應用程序在 Windows 上運行,我的意思是使用以下方法在未處理的異常點創建的小型轉儲的堆棧跟蹤: SetUnhandledExceptionFilter + MiniDumpWriteDump

C++ 還沒有標准的堆棧跟蹤,所以沒有很好的內置方法來做到這一點。
但是,有一些方法依賴於將信息保存在 promise 對象中。
Clang 有一些常用的協程調試方法的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM