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!
相关推荐

2026-07-04
现代 C++ 实战(21):树结构全家桶
第 20 篇 的链表是「一对一」串联;树则是一对多的分支结构。从二叉搜索树到 AVL、红黑树、B 树、堆——五种经典树形结构,覆盖了内存索引、STL 容器、优先队列和磁盘存储的核心场景。 demo:ref/cpp_demo/algorithms/tree/(binary_tree、avl_tree、red_black_tree、b_tree、heap)。 这是「现代 C++ 实战」系列的第 21 篇。建议先读 第 20 篇:栈、队列与链表。 一、五种树,一张选型地图 结构 平衡策略 查找 插入 典型场景 BST 无保证 O(h) O(h) 教学、小规模有序数据 AVL 严格平衡 O(log n) O(log n) 查找密集、更新较少 红黑树 近似平衡 O(log n) O(log n) std::map / std::set B 树 多路平衡 O(log n) O(log n) 数据库索引、文件系统 堆 堆序性质 O(n) 查任意 O(log n) 优先队列、Top-K 12345678910111213BST(可能退化成链) ...

2026-07-07
现代 C++ 实战(24):HTTP 服务与 JSON
第 23 篇 收官第三季算法篇;第四季进入工程实战。第一篇从最常见的后端能力入手:用 cpp-httplib 搭 HTTP 服务,用 nlohmann/json 处理 JSON——几十行代码就能跑起一个 REST 接口。 demo:ref/cpp_demo/networking/http_json/。 这是「现代 C++ 实战」系列的第 24 篇,第四季开篇。建议先读 第 01 篇:CMake 与现代构建(FetchContent)和 第 23 篇。 一、HTTP 基础速览1234567客户端 服务端 │ GET /camera HTTP/1.1 │ │ Host: localhost:8080 ────────→ │ 路由匹配 → 处理 → 响应 │ │ │ ← HTTP/1.1 200 OK │ │ Content-Type: image/jpe...

2026-06-14
现代 C++ 实战(01):CMake 与现代构建
上一篇我们把环境跑通了。从这一篇开始,我们真正进入 C++ 工程的地基:CMake。本系列 39 个 demo 全部用 CMake 构建,其中 projects/fetch_content/ 是一个「集大成」示例——它用 FetchContent 自动拉取 gtest、json、fmt、spdlog 等 6 个第三方库,演示现代 C++ 项目最常见的依赖管理方式。 搞懂这篇,后面所有带外部库的 demo 你都不会慌。 这是「现代 C++ 实战」系列的第 1 篇。对应 demo:ref/cpp_demo/projects/fetch_content/。建议先读 第 00 篇:环境搭建与项目导览。 一、为什么需要 CMake?手写 Makefile 在小项目里够用,但现代 C++ 项目很快会遇到天花板: 痛点 Makefile 的局限 CMake 的做法 跨平台 Windows / macOS / Linux 语法不同 一套 CMakeLists.txt,生成对应平台的构建文件 依赖管理 手动下载、编译、写 -I / -L Fet...

2026-06-26
现代 C++ 实战(13):C++20 同步原语
第 12 篇用 thread、mutex、condition_variable 搭好了并发地基。C++20 补上最后几块拼图:jthread 自动 join 与协作式取消、semaphore 限流、latch / barrier 多线程阶段同步——写法更短、语义更清晰。 这一篇对应 demo:ref/cpp_demo/concurrency/sync_primitives/。 这是「现代 C++ 实战」系列的第 13 篇。建议先读 第 12 篇:多线程基础。 一、C++20 补上了什么? 原语 解决的问题 std::jthread 忘记 join() 导致 terminate;需要优雅停止后台线程 std::counting_semaphore 限制同时访问资源的线程数(连接池、限流) std::latch 一次性「等所有人到齐」 std::barrier 可重复的多阶段同步点 std::stop_token 协作式取消(配合 jthread) 编译要求:GCC 10+、Clang 10+、MSVC 2019+,-std=c++20...

2026-07-03
现代 C++ 实战(20):栈、队列与链表
第 19 篇 的哈希表用数组 + 指针组织数据;再往前退一步,有三种几乎无处不在的基础结构:栈(LIFO)、队列(FIFO)、链表(动态串联节点)。实现简单,却是表达式求值、BFS、LRU 的底座。 demo:ref/cpp_demo/algorithms/stack_queue_list/(stack_demo、queue_demo、linked_list_demo)。 这是「现代 C++ 实战」系列的第 20 篇。建议先读 第 19 篇:哈希表。 一、三种结构一句话 结构 规则 典型操作 栈 Stack 后进先出 LIFO push / pop / top 队列 Queue 先进先出 FIFO enqueue / dequeue / front 链表 Linked List 节点 + 指针串联 头插、尾插、删除、遍历 12栈: push → [30][20][10] ← top 队列: front → [10][20][30] ← back链表: head → (30) → (20) → (10)...

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+...





