写点什么

Swift 5.9 Backtracer 实现并发感知,并改进可靠性和 Linux 支持

  • 2023-12-19
    北京
  • 本文字数:715 字

    阅读完需:约 2 分钟

Swift 5.9 Backtracer 实现并发感知,并改进可靠性和 Linux 支持

除了通过宏和借用式内存管理扩展语言之外,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/

2023-12-19 08:004546

评论

发布
暂无评论

Open Harmony移植:build lite编译构建过程

华为云开发者联盟

编译 OpenHarmony build lite 芯片开发板

TPC TiKV:Hackathon 中最硬核项目是如何炼成的?| TPC 战队访谈

PingCAP

sql TiDB

在线JSON转CSV格式文件工具

入门小站

工具

2022年最新iOS面试题(附答案)

iOSer

ios iOS面试 ios开发 iOS 知识体系 iOS涨薪

什么牌子的云堡垒机好用?效果好?

行云管家

云计算 堡垒机 云堡垒机

这些DDD"术语"你知道吗?

idonkeyliu

DDD

郑州等保测评公司有哪些?在哪里?

行云管家

网络安全 等保 等保测评 等保2.0 郑州

mark: Docker 容器镜像删除

webrtc developer

测试2

Journeyman

企业知识管理的步骤有哪些?

小炮

龙蜥一站式质量协作平台T-One上线,助你轻松完成测试

OpenAnolis小助手

开源 测试 软件包 协作平台

用户文章 | 没有什么比现成的解决方案更香的了 - P4Python 玩家速看

龙智—DevSecOps解决方案

perforce P4 Perforce Helix Core P4Python

数据分析师如何正确地提意见?

博文视点Broadview

全球案例 | Hubspot 通过 Confluence 打造透明的协作文化,使之成为让无数人骄傲的企业

龙智—DevSecOps解决方案

Jira Atlassian Atlassian Confluence 协同办公软件 协同软件

测试1

Journeyman

龙智荣誉 | 一封来自客户的感谢信

龙智—DevSecOps解决方案

感谢信

性能测试中Disruptor框架ExceptionHandler使用分享

FunTester

Disruptor 性能测试 接口测试 异常处理 FunTester

微信外H5跳转小程序——<JumpApp/>组件(vue项目)

CRMEB

周末给女友讲了遍加密算法,没想到...

浅羽技术

算法 安全 加密算法

从0到1:基于微信小程序的瑜伽馆预约平台的开发笔记

CC同学

Linux之ab命令

入门小站

Linux

代码安全 | 什么是OWASP?OWASP十大漏洞解析

龙智—DevSecOps解决方案

漏洞 安全漏洞 漏洞防护 OWASP十大漏洞 静态代码安全

面试突击31:什么是守护线程?它和用户线程有什么区别?

王磊

java面试

企业CICD规模化落地浅析

阿里云云效

云计算 阿里云 云原生 CI/CD 持续交付

【CAD】入门系列完

謓泽

3月月更

融云猿桌派备忘录,那些被程序员 Pick 的工作方式

融云 RongCloud

程序员 IM

条码WMS系统的架构

源字节1号

开源 前端开发 后端开发 WMS仓库管理

Trace大盘点

奋飞安全

中文在线研讨会 | 如何突破Jenkins瓶颈,实现集中管理、灵活高效的CI/CD

龙智—DevSecOps解决方案

ci 持续集成 持续交付

在线SQL(Insert/Update)语句转JSON工具

入门小站

工具

虚位以待 | 龙智有你更出彩

龙智—DevSecOps解决方案

求职 招聘

Swift 5.9 Backtracer 实现并发感知,并改进可靠性和 Linux 支持_Android/iOS_Sergio De Simone_InfoQ精选文章