你的 C++ 服务 stop() 顺序很可能有问题
Created|文章
一、一个问题你的服务有没有这种情况:跑起来一切正常,Ctrl+C 一按就段错误?偶尔能干净退出,偶尔 core dump?日志里最后几行是乱序的,有时候甚至看不到 fatal 信息? 如果有,恭喜你——你的 stop() 顺序大概率是错的。 二、一个真实案例一个基于 MQTT 的无人机控制服务(C++、Linux、多线程)。运行态一切完美:消息收发正常,日志正常,CPU 和内存正常。但只要退出程序,Valgrind 就报 112 个 use-after-free 错误。 调用链长这样: 123Logger::workerThread() // 后台线程,处理日志队列 → LogPublisher::publish() // 封装日志为 protobuf,调用 MQTT 发送 → MqttClient::publish() // 实际发送 MQTT 消息 原始的 stop(): 1234567void SystemFactory::stop(){ ...


Recent Posts
Categories
- C++85
- C-Code23
- CMake3
- CS501
- Computer-Networking40
- Computer-Organization1
- Data Structures and Algorithms1
- Data-Structures6
- Essay1
- Essays4
- Foundational Syntax and Core Concepts4
- Git3
- HTTP2
- Interview7
- Lcov2
- Leetcode147
- Linux40
- Linux Internals2
- List1
- Lists1
- MQTT8
- MYSQL3
- MySQL1
- Operating-Systems7
- PKGCONF1
- Python63
- Redis14
- STL3
- UML1
- XML1
- lock1
- practice problems1
- 代码提交1
- 函数模板2
- 前端6
- 寓言故事7
- 工厂模式2
- 文章27
- 类图1
- 编译1
- 设计模式8
- 链表1
Archives
- 2026年06月 13
- 2026年05月 8
- 2026年04月 7
- 2026年03月 7
- 2026年02月 3
- 2026年01月 5
- 2025年12月 11
- 2025年11月 6
- 2025年10月 5
- 2025年09月 15
- 2025年08月 5
- 2025年07月 5
- 2025年06月 5
- 2025年05月 6
- 2025年04月 10
- 2025年03月 5
- 2025年02月 8
- 2025年01月 10
- 2024年12月 10
- 2024年11月 8
- 2024年10月 12
- 2024年09月 11
- 2024年08月 11
- 2024年07月 9
- 2024年06月 9
- 2024年05月 11
- 2024年04月 20
- 2024年03月 19
- 2024年02月 23
- 2024年01月 27
- 2023年12月 13
- 2023年11月 15
- 2023年10月 14
- 2023年09月 14
- 2023年08月 13
- 2023年07月 14
- 2023年06月 12
- 2023年05月 17
- 2023年04月 13
- 2023年03月 14
- 2023年02月 13
- 2023年01月 14
- 2022年12月 6
- 2022年11月 11
- 2022年10月 7
- 2022年09月 4
- 2022年08月 3
- 2022年07月 5
- 2022年06月 7
- 2022年05月 4
- 2022年04月 4
- 2022年03月 4
- 2022年02月 5
- 2022年01月 5
Website Info
Article Count :
535
Runtime :
Total Word Count :
927.6k
Last Update :