Debug with LLDB
发表于|更新于|Programming
|浏览量:
First, compile codes with DSYM:
1 | g++ -g test.cpp -o test |
then, launch with LLDB Debugger:
1 | lldb test |
print codes:
1 | list(l) numbers |
set breakpoint:
1 | breakpoint set --file test.cpp --line 13 |
enable breakpoint:
1 | breakpoint enable 1 |
run program:
1 | run |
debug step-in:
1 | n |
continue to end:
1 | c |
文章作者: 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-07-09
现代 C++ 实战(26):LRU 缓存与 JSON 解析器
第 25 篇 给服务加了持久化;本篇是两个经典练手项目:LRU 缓存练数据结构设计,JSON 解析器练递归下降与 std::variant——都是面试高频、又能深入理解 C++ 现代特性。 demo:ref/cpp_demo/projects/learning_guide/(lru_cache/ + json_parser/)。 这是「现代 C++ 实战」系列的第 26 篇。建议先读 第 20 篇:栈、队列与链表(LRU 底层)和 第 24 篇:HTTP 服务与 JSON(nlohmann/json)。 一、LRU 缓存:设计思路LRU(Least Recently Used)——缓存满时淘汰最久未使用的项。要求 get 和 put 均 O(1)。 123456unordered_map<K, iterator> list<pair<K,V>>┌─────────────────┐ ┌──────────────────────┐│ key1 → iter1 ───┼─────────>│ (k...

2026-06-21
现代 C++ 实战(08):错误处理策略
C++ 没有统一的「错误处理方式」——return -1、throw、std::optional、std::expected 各有战场。选错方式要么性能吃亏,要么错误被静默忽略,要么 API 语义含糊。 这一篇用同一个「解析配置文件」场景,对比 四种主流错误处理策略,并给出选型指南。对应 demo:ref/cpp_demo/basics/error_handling_demo/。 这是「现代 C++ 实战」系列的第 8 篇。建议先读 第 07 篇:C++17 工具箱。 一、为什么错误处理值得单独讲?现代 C++ 项目里,错误处理往往比算法更影响可维护性: 调用方会不会忘记检查返回值? 失败时资源会不会泄漏(文件句柄、锁、内存)? API 语义是否清晰:「找不到」和「出错了」是一回事吗? demo 用解析 host=...、port=... 的配置文件贯穿全文——同一功能,四种写法。 二、C 风格错误码:return -1 + 输出参数12345678enum class CErrorCode { SUCCESS = 0, FILE_NOT_FOUND = -...

2026-06-15
现代 C++ 实战(02):C++ 版本演进一览
上一篇我们搞定了 CMake 构建。但在写代码之前,还有一个「地图」问题:C++ 到底演进了哪些版本?每个版本加了什么? 如果你还在用 C++98 的思维读 C++20 的代码,很容易觉得「语法怎么又变了」。 这一篇不深入任何单一特性,而是把 C++03 → C++26 的演进脉络梳理清楚,并带你跑一遍 version_features demo——后面 25 篇特性文章,都可以在这张地图上找到位置。 这是「现代 C++ 实战」系列的第 2 篇。对应 demo:ref/cpp_demo/basics/version_features/。建议先读 第 01 篇:CMake 与现代构建。 一、C++ 标准时间线C++ 不像 Python 那样每年一个大版本,而是 3~5 年发布一次国际标准(由 ISO 委员会制定)。对开发者来说,真正重要的是:编译器支持到了哪个 -std=。 标准 发布年份 __cplusplus 宏 常用编译 flag 定位 C++98 / C++03 1998 / 2003 199711L -std=c++03 经典 C+...

2026-06-22
现代 C++ 实战(09):C++20 格式化与编译期计算
printf 类型不安全,iostream 又冗又慢;C++20 的 std::format 把 {fmt} 收进标准库,Python 风格占位符 + 编译期类型检查。同一时代还有 constexpr 进阶、consteval、std::span——把格式化与计算都推向「更安全、更编译期」。 这一篇对应三个 demo:format_demo、constexpr_demo、span_demo。 这是「现代 C++ 实战」系列的第 9 篇。建议先读 第 08 篇:错误处理策略。 一、格式化三时代 方式 类型安全 语法 性能 printf ❌ 格式与参数不匹配 → UB C 风格 %d 快 iostream ✅ cout << x << y 冗长 较慢 std::format ✅ "{} + {} = {}" 简洁 接近 printf C++23 再加 std::print / std::println——直接输出,不必先拼 string 再 cout。 编译器要求:GCC 13+ / Cla...

2026-07-01
现代 C++ 实战(18):排序算法与 std::sort
第二季讲完语言与工程,第三季进入算法与数据结构。排序是第一课:手写七种经典算法理解原理,再和 std::sort 做性能对比——感受工业级实现为何快一个数量级。 demo:ref/cpp_demo/algorithms/sorting/(含 7 种手写排序 + benchmark)。 这是「现代 C++ 实战」系列的第 18 篇,第三季开篇。建议先读 第 17 篇:C++23 新特性。 一、排序算法全景 算法 平均时间 最坏 空间 稳定 比较? 冒泡 O(n²) O(n²) O(1) ✅ 是 选择 O(n²) O(n²) O(1) ❌ 是 插入 O(n²) O(n²) O(1) ✅ 是 归并 O(n log n) O(n log n) O(n) ✅ 是 快速 O(n log n) O(n²) O(log n) ❌ 是 堆 O(n log n) O(n log n) O(1) ❌ 是 计数 O(n + k) O(n + k) O(n + k) ✅ 否 std::sort O(n log n) — O(log n) ❌ 是(IntroSo...





