iOS_symbolyize_crash
发表于|更新于|Programming
|浏览量:
1 | /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash userPhone.crash app.dSYM > dumpedSYM.txt |
文章作者: WALL-E-2000
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 WALL-E's Blog!
相关推荐

2019-11-15
Xcode_some_directories
1/Library/Developer/CoreSimulator/Profiles/Runtimes 1~/Library/Developer/CoreSimulator/Devices 1~/Library/Caches/com.apple.dt.Xcode/Downloads

2026-10-05
C++ 调试实战(05):观察点——谁偷偷改了我的变量?
有一类 bug 特别折磨人:某个变量的值莫名其妙变了,但你翻遍代码也找不到哪里改了它。可能是数组越界写到了隔壁,可能是野指针,可能是另一个线程。断点帮不上忙,因为你根本不知道该在哪一行下断点。这时要用的是观察点(watchpoint):不是「程序执行到某一行时停」,而是「某块内存被修改时停」。 这是「C++ 调试实战」系列的第 5 篇。前面讲的断点是盯着「代码」,观察点是盯着「数据」。 一、一个「账对不上」的 bug下面是一个记账程序:Ledger 里有三个账户余额,外加一个审计总额 audit_total,它应该始终等于三个余额之和。 12345678910111213141516171819202122232425262728// watch.cpp#include <cstdio>struct Ledger { int balances[3]; int audit_total; // 应当始终等于 balances 之和};void deposit(Ledger& l, int idx, int amount) ...

2026-09-30
C++ 调试实战(00):调试前的准备——编译选项、调试器与第一次会话
写 C++ 的人,大多数时候靠 printf / std::cout 调试:加一行输出、重新编译、跑一遍、再加一行……程序小的时候够用,程序一大、一涉及指针和多线程,这招就开始力不从心。调试器能做到的事情多得多:让程序停在任意一行、一行一行往下走、钻进函数里看、看函数返回了什么、随时打印甚至修改变量、在变量被改的一瞬间停下来、在程序崩溃时保留现场。 这个系列就专门讲这件事:用 GDB 和 LLDB 调试 C++ 程序。每一篇都配一段可以直接编译的小程序,所有命令和输出都在真实环境里跑过。 这是「C++ 调试实战」系列的第 0 篇。本篇不讲具体命令的细节,只做三件事:搞清楚编译时要加什么选项、把调试器装好、跑通第一次调试会话。 系列导航 篇 主题 你会学到 00 调试前的准备(本篇) -g / -O0、GDB 与 LLDB 的安装、第一次调试会话 01 断点 按行 / 按函数下断点、条件断点、临时断点、启用 / 禁用 / 删除 02 运行与单步 run / continue / next...

2026-08-18
Needle 2 技术分析:一个 14 MB 的端侧 Tool Call 引擎
本文基于实测数据,覆盖架构原理、Schema 设计规律、iOS 集成,以及一次把 3 类设备扩到 22 类的完整实验记录。 我最近在做一个 iOS 家电控制 Demo,核心需求是:在手机上、离线、实时响应自然语言指令。用一个大模型的 API 当然能做,但那不是这个 Demo 想探索的东西。 选到 needle2 是因为它把「工具调用」这件事做到了极致的轻量:45M 参数、单一 14 MB 二进制(权重也在里面)、单次会话峰值 RAM 28 MB(官方宣称;后文会给出实测数字)、Apache-2.0 许可。 一、背景needle2 在树莓派 5 上跑 500 tok/s,Apple Vision Pro 上跑 400–1500 tok/s。它不是「小一号的通用 LLM」,而是一个专门为 function call 场景设计的模型。 这篇文章是我在做这个 Demo 过程中积累的分析,从架构原理到踩坑细节,全部基于实测。 二、架构:Simple Attention Network(SAN)needle2 的架构来自 2025 年的一篇论文:arXiv:260...

2026-10-06
C++ 调试实战(06):崩溃现场分析——段错误、core dump 与 AddressSanitizer
Segmentation fault (core dumped)——大概是每个 C++ 程序员见过最多的一行报错。它只告诉你「程序崩了」,不告诉你崩在哪、为什么崩。这一篇讲三种找到答案的办法:在调试器里运行,崩溃时直接停在现场;事后用 core dump 还原现场;以及用 AddressSanitizer 在内存错误发生的那一刻就抓住它,哪怕这个错误并没有让程序崩溃。 这是「C++ 调试实战」系列的第 6 篇。本篇会大量用到第 04 篇的调用栈知识:崩溃分析的第一步永远是 bt。 一、示例:一个忘了判空的指针123456789101112131415161718192021222324252627// crash.cpp#include <cstdio>#include <string>struct Config { std::string name; int retries;};Config* find_config(const std::string& key) { if (key == ...

2016-01-10
OS X 快速调出 Emoji 面版
Emoji 键盘的呼出非常简单,只需记住这个快捷键组合即可: Command + Control + Spacebar



