写点什么

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:004523

评论

发布
暂无评论

Parallels Desktop PD 18虚拟机关闭、停止、中止和暂停操作的区别

互联网搬砖工作者

全面数字化时代,国有大型银行如何走好金融创新之路?

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

JMeter 并发测试和持续性压测详解

Liam

测试 压测 并发测试 测试工具

Netty框架详解:高性能网络编程的设计与实现

做梦都在改BUG

网络编程 Netty 高性能

总结一下Redis的缓存雪崩、缓存击穿、缓存穿透

做梦都在改BUG

更安全、更低耗的微服务架构改造之道

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

关键的Java JVM选项和参数

码语者

JVM

SLBR通过自校准的定位和背景细化来去除可见的水印

合合技术团队

人工智能 图像处理 水印消除

国内功率半导体需求将持续快速增长

华秋电子

网站不收录是受哪些因素影响?

海拥(haiyong.site)

三周年连更

【坚果派-坚果】OpenHarmony新增并编译芯片解决方案

坚果

OpenHarmony OpenHarmony3.2 三周年连更

新手测试必学的 API 接口文档知识

Apifox

测试 入门 接口文档 API API 文档

一名开发者眼中的TiDB与MySQL选择

TiDB 社区干货传送门

数据库架构选型

华秋PCB生产工艺 | 第十二道主流程之FQC

华秋电子

Spring Security 的介绍和简单使用

会踢球的程序源

Java 后端 spring security Java进阶

阿里P8架构师爆肝分享内部开源的JVM垃圾回收PDF文档,共23.3W字

做梦都在改BUG

Java JVM 垃圾回收

TiDB 6.1/6.5 在 Rocky Linux 8 中的部署升级与 PITR 初体验

TiDB 社区干货传送门

版本升级 安装 & 部署 备份 & 恢复 扩/缩容 6.x 实践

企业级安全运维审计产品-行云管家堡垒机全新V7.0举行线上发布会

行云管家

运维 云堡垒机 安全运维 等级

macbook触摸板怎么按右键

互联网搬砖工作者

Java中的异常处理详解(try、catch、finally、throw、throws) | 社区征文

共饮一杯无

Java 异常处理 三周年连更

每日 Scrum 与站立会议:有什么区别?

码语者

Scrum

精华!Redis 知识总结

会踢球的程序源

Java Java进阶 redis 底层原理

各大金融企业都在用的堡垒机-行云管家堡垒机

行云管家

金融 数据安全 堡垒机

牛客网热度最高的17套一线大厂Java面试八股文!面面俱到,太全了

架构师之道

Java 面试

JavaScript 对象遍历为什么要使用 hasOwnProperty 检查属性

Lee Chen

JavaScript

全新适配鸿蒙生态,Cocos引擎助力3D应用开发

HarmonyOS开发者

HarmonyOS

Greptime 的 GitOps 实践

Greptime 格睿科技

k8s gitops IaC

前端开发:未来依旧光明 | 社区征文

海拥(haiyong.site)

三周年征文

摄影师必备图像编辑工具:Capture One Pro 23中文版

真大的脸盆

Mac Mac 软件 图像编辑 图像编辑工具 图像处理软件

观远数据 × Azure OpenAI,国内首个 BI Copilot 产品化应用

观远数据

ChatGPT

HummerRisk V1.0.0:架构全面升级,开启新篇章

HummerCloud

云原生安全

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