学习笔记3-RoomPlan、SwiftUI、ptrace、sysctl、DTrace、LLDB

183 阅读2分钟

RoomPlan

RoomPlan 是苹果公司推出的一款基于 ARKit 的 Swfit API 工具,它利用 iPhone 和 iPad 上的摄像头和激光雷达扫描仪来创建房间的 3D 平面图。这个工具能够识别并包括家具的尺寸和类型等关键特征,非常适合用于房地产、电子商务、酒店应用程序,以及建筑和室内设计工作流程。截至目前,RoomPlan AI 目前尚未开放给开发者。

SwiftUI

SwiftUI 是苹果公司推出的一种全新的用户界面框架,用于在所有苹果平台上构建用户界面。它首次在2019年的苹果全球开发者大会(WWDC)上发布,是苹果的Swift编程语言的配套框架,旨在简化界面开发流程,提高开发效率。以下是SwiftUI的一些关键特点:声明式语法,跨苹果多个平台,动态界面,组件化,Preview 功能,兼容现有 AppKit 和 UIKit,自定义视图和动画。

ptrace & sysctl

LLDB 之所以能附加进程是因为 debugserver,而 debugserver 附加是通过 ptrace 函数来 trace process 的。ptrace 是系统函数,此函数提供一个进程去监听和控制另一个进程,并且可用检测被控制进程的内存和寄存器里面的数据。ptrace 可用来实现断点调试和系统调用跟踪。同时 ptrace 提供了一个非常有用的参数,那就是 PT_DENY_ATTACH,这个参数用于告诉系统阻止调试器依附。另一种检测应用是否正在被调试的方案,是使用 sysctl。

DTrace

动态跟踪技术是一种后现代的高级调试技术,全称为 Dynamic Trace,属于系统内核实现的,可用对内核态和用户态程序进行动态跟踪且性能损耗很小不会对系统构成任何危险。DTrace 只能在 OSX 上运行。苹果也在 iOS 上使用 DTrace,用以支持像 Instruments 这样的工具,但对于第三方开发者,DTrace 只能运行于 OSX 或 iOS 模拟器。DTrace 工具组件包括提供器和探测器。提供器由 dtrace 内核驱动命令及附加在上面的 dtrace 脚本组成,脚本使用 D 语言编写。探测器由提供器启动,可标识所检测的模块和函数。

自定义LLDB命令

iOS 开发中,LLDB 是一个强大的调试工具,它允许开发者自定义命令来扩展调试功能。自定义 LLDB 命令通常涉及编写一些脚本来增强调试体验。自定义 LLDB 命令的步骤如下:创建命令 Python 脚本。加载并使用 Python 脚本,command script import。

参考文档