写点什么

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

评论

发布
暂无评论
发现更多内容

微信小程序开发:如何快速实现添加一条分割线的项目需求

三掌柜

微信小程序 3月日更

实时数据流计算引擎Flink和Spark流计算对比

小舰

大数据 flink spark 流计算

Github上堪称最全的面试题库(Java岗)到底有多香

Java 程序员 架构 面试

我从外包辞职了,10000小时后,走进字节跳动拿了offer

Java 编程 程序员 架构 面试

linux下七种文件类型

xiezhr

Linux linux操作 linux运维 linux 文件权限控制

我们为什么需要云原生?

脑极体

融合发展是区块链的未来 数字通证新模式具有划时代意义

CECBC

数字通证

大专生阿里/腾讯/京东面经分享:Java面试精选题+架构实战笔记(技术狂补)

比伯

Java 编程 架构 面试 计算机

你真的懂Spring解决循环依赖吗?

Java 架构 Spring Boot

面试现场:遇到不会回答的问题,如何力挽狂澜 ?

xcbeyond

面试 3月日更

高质量、高并发的实时通信架构设计与探索

融云 RongCloud

Spark提交后都干了些什么?

小舰

大数据 spark Spark调优

我是如何拿到5大银行offer

小舰

面试 银行 笔试 校园招聘

并发编程:一次搞定单例模式

Java架构师迁哥

Hadoop UI 系统 -HUE 详细剖析

大数据技术指南

大数据 hadoop 28天写作 3月日更

如何在 Spring 生态中玩转 RocketMQ?

阿里巴巴云原生

Java Serverless 微服务 云原生 中间件

白话讲解,拜占庭将军问题

架构精进之路

分布式 算法 3月日更

利用区块链技术,打造绿色发展的中药材生态链

CECBC

中药材

标准引领 浪潮工业互联网助力澳门质量品牌国际认证联盟成立

工业互联网

朱嘉明:全面认知区块链的科学特征

CECBC

区块链

C/C++Linux服务器开发完整学习路线(含免费学习资料下载地址)

Linux服务器开发

Linux 后端 C/C++ Linux服务器开发 Linux后台开发

你是否觉得上级的能力不如你?

石云升

心理学 28天写作 职场经验 管理经验 3月日更

GO训练营第12、13周—— runtime

Glowry

【得物技术】TDengine在得物的落地应用

得物技术

数据库 tdengine 数据 sentinel 得物技术

冰河公开了其总结的一项重要的编程技能!

冰河

Java 正则表达式 程序员

(28DW-S8-Day28) 战略流程重整

mtfelix

28天写作

安全高可用通信背后的 MySQL 优化实践

融云 RongCloud

初识Golang之安装运行篇

Kylin

3月日更 21天挑战 Go 语言

打击虚拟货币洗钱:中国破获比特币跨境洗钱案

CECBC

虚拟货币

源码分析-Netty: 架构剖析

程序员架构进阶

架构 Netty 源码剖析 28天写作 3月日更

深入剖析数据库事务的隔离级别

小舰

数据库 事务隔离级别 数据库事务

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