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

被折叠的 条评论
为什么被折叠?



