Swift 5.9 Backtracer 實現並發感知,並改進可靠性和 Linux 支持

2023-12-17     InfoQ

原標題:Swift 5.9 Backtracer 實現並發感知,並改進可靠性和 Linux 支持

作者 | Sergio De Simone

譯者 | 平川

策劃 | Tina

除了通過宏和借用式內存管理擴展語言之外,Swift 5.9 還引入了一些有用的程序調試功能,包括進程外崩潰處理程序、即時調試支持和回溯,旨在簡化使用結構化並發時的控制流解釋。

進程外崩潰處理是一個非常強大的新功能,它通常可以防止程序崩潰,並讓你可以檢查程序或為其附加調試器。

當啟用了這個新特性的程序崩潰時,你會看到一個提示,讓你可以更改回溯設置,生成新的回溯,列出加載的圖像,顯示寄存器和內存內容,並獲得進程中所有線程的列表。或者,你可以將調試器附加到崩潰的進程並交互式地檢查其狀態。如果你不選擇任何選項,那麼程序將在 30 秒或預先配置好的時間後崩潰。

進程外崩潰處理程序對 Linux 開發人員來說特別重要,因為他們習慣於在控制台中獲得程序崩潰的簡明錯誤消息,而不是藉助任何其他額外的工具。為此,在 Linux 上,崩潰處理程序是默認開啟的,而在 macOS 上則必須手動啟用。這個新功能尚未提供 Windows 支持,但是開發者可以訪問作業系統內置的崩潰報告來獲取導致崩潰的其他信息。

另一項備受歡迎的改進是回溯器現在具備了並發感知能力。也就是說,它能夠通過異步幀進行回溯,例如當 async 函數通過 await 語句執行時。在這種情況下,await/async 調用在回溯中和普通調用沒什麼不一樣,並不會顯示屬於運行時 await/async 機制的過渡幀。不過,這個新功能要求回溯器能夠查找程序符號來判斷一個幀是否是異步的。

最後需要說明的是,為了提高可靠性,Swift 5.9 中的新回溯器允許你配置回溯器將生成的最大幀數以及你想要顯示的堆棧頂部的幀數。此外,在默認情況下,它會跳過系統幀和 Swift thunk,應用程式開發人員很少對這些內容感興趣。

原文連結:

https://www.infoq.com/news/2023/11/swift-5-9-backtracer-debugger/

月薪八千離職賠百萬,寧德時代的「競業封印」;國內網際網路大廠月薪最新一覽;螞蟻宣布新一輪職級體系改革|Q資訊

洞見 re:Invent:生成式 AI 與雲共舞,成為構建者最好的時代來臨!

行業熱議:數據中台下一步是數據飛輪?

Mesos 時代徹底消亡:10 年創業掙扎、微軟谷歌收購未果,這家公司還是倒閉了

文章來源: https://twgreatdaily.com/zh-hk/a649d58ce7bb35531e1f692d1b00515b.html