memcpy造成的崩溃
最近拿到一个dump,调用栈只有一个内存地址,当时就懵逼了。幸亏这个崩溃可以重现(由于内存越界造成的崩溃,还不是每次必现)。
但重现了也不是就ok了,就算在windbg里面调试,崩溃的时候也是跟不了调用栈,可能与vs的release优化有关。最后还是用最古老的“输出日志调试法”才定位到问题:由于内存越界,memcpy的长度超过了buffer的大小,然后造成崩溃。
写下来主要是为了记住,万一遇到这种调用栈只有一个内存的崩溃,可以考虑一下内存越界的原因,以及memcpy这种操作。