秀丽嚓茶

文章
7
资源
0
加入时间
2年10月21天

利用内存断点(数据断点)结合windows CRT 定位堆栈溢出问题

公司司产品经过这三年的迭代已经非常复杂了,代码量超过10万,而且混杂了来自韩国,美国,台湾,北京好几个团队的贡献,加上跨现流行几大移动平台(android, ios)。维护,优化和定位bug已经远不如以前容易了。所以常常借助了比较的工具平台(valgrind, cpplint, intel vtunes)。 内存断点是定位内存错误方案中最好的解决方案了。

为什么要用 “ __attribute__ ((__packed__)) ” 定义结构体

 首先,解释下 “__attribute__ ((__packed__))” 是做什么的?我们知道,通常定义一个U32 ,CPU 期望 这个 U32 地址是 DW 对齐的, 这样对CPU访问 mem bus 比较友好。所以,当我们定义这样一个结构体:struct test{        char i,        uint32 a}那么,编译器会默认在 i 和 ...