50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

评论

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

Java并发编程系列——线程池

孙苏勇

Java Java并发 并发编程 多线程 线程池

树莓派小车系列-直播

波叽波叽啵😮一口盐汽水喷死你

树莓派 ffmpeg 云直播 盐汽水 raspberry

科学治疗“知识焦虑症”

陈驰远

个人成长 知识管理

大家看看我这个斜杠青年够斜吗?

伯薇

个人成长 斜杠青年 能力提升 好奇心 T型人才

阿里29大开源项目看看你都用过哪些

Bruce Duan

每天一道 python 面试题 - Python中的元类(metaclass) 详细版本

志学Python

python 爬虫 python元类

架构师们必备的三三制需求分析思维模型

常平

我看拼多多黄峥:旧世界瓦解冰消

池建强

拼多多 黄峥

扩展Redis:增加Redis命令

心平气和

redis

Netty 源码解析(五): Netty 的线程池分析

猿灯塔

缘起:很久很久以前

escray

学习 测试驱动开发实战营

高仿瑞幸小程序 02 创建Tabbar

曾伟@喵先森

小程序 微信小程序 大前端 瑞幸

百度开源项目

Bruce Duan

CEPH OSD Down故障分析与处理

木子

译文MapReduce:大型集群上的简化数据处理

海神名

mapreduce 译文 MIT 分布式计算

下一个阶段,就真的容易了吗?

ke_lv

生活

企业如何选择物联网中台

老任物联网杂谈

物联网中台 IOT Platform 物联网平台

leetcode20.有效的括号

Damien

算法 LeetCode

哲少荐书:这才是心理学

Jackey

心理学 读书

DDD 实践手册(3. Entity, Value Object)

Joshua

系统设计 领域驱动设计 系统架构 架构模式

思维偏差与产品设计的关联思考

石君

产品设计 思维方式 安全产品设计

File类的文件操作

Howe

Java File 文件 io

源码浅析 - CocoaLumberjack 3.6 之 DDLog

Edmond

ios log4j CocoaLumberjack SourceCode DDLog

[计算机网络1]我所知道的关于TCP的一切

海神名

TCP 计算机网络 网络协议 原理

用 Vim 编辑 Markdown 时直接粘贴图片

mzlogin

vim markdown

虚拟化Pod性能比物理机还要好,原因竟然是这样!

亨利笔记

Kubernetes 容器 k8s vSphere pod

leetcode1137:第 N 个泰波那契数

Damien

算法 LeetCode 斐波那契

轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?

楼下小黑哥

支付宝 微信支付 支付系统 付款码

游戏夜读 | 做游戏选什么专业?

game1night

我的关注清单

lmymirror

知识管理 关注清单 RSS

我愿沉迷于学习,无法自拔(三)

孙瑜

深度思考 程序员 感悟

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