在前面 Bazel 依赖缺失导致的 C++ 进程 coredump 问题分析 这篇文章,因为二进制使用了不同版本的 proto 对象,对象的内存布局不一致导致读、写成员的内存地址错乱,进而导致进程 crash 掉。但是当时并没有展开细聊下面的问题:
这些其实涉及 C++ 的对象模型,《深度探索 C++对象模型:Inside the C++ Object Model 》这本书全面聊了这个问题,非常值得一读。不过这本书读起来并不容易,有的内容读过后如果没有加以实践,也很难完全理解。
于是好好梳理了下,主要结论:
完整文章在: 结合实例深入理解 C++ 对象的内存布局
大家帮忙 review 下~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.