有一个内存越界的bug找了2天才找到,最后还是通过借助gdb的帮助,利用watch if 来跟踪某个值什么时候不等于期望值,从而跟踪到越界指令。
reproduce a bug 是找到bug的的第一步,然后再通过一些跟踪调试工具来找到原因。
这个bug算是我目前为止遇到最复杂的了,因为有一定的随机性,所以一开始要找到产生bug时的seed,然后再reproduce the bug ,如果不利用gdb,很难locate到具体到那一行代码出的问题。
本文分享了一个复杂的内存越界Bug的解决过程,该Bug具有一定随机性,通过定位产生Bug时的seed并利用gdb的watchif功能进行跟踪,最终找到了问题所在的具体代码行。
有一个内存越界的bug找了2天才找到,最后还是通过借助gdb的帮助,利用watch if 来跟踪某个值什么时候不等于期望值,从而跟踪到越界指令。
reproduce a bug 是找到bug的的第一步,然后再通过一些跟踪调试工具来找到原因。
这个bug算是我目前为止遇到最复杂的了,因为有一定的随机性,所以一开始要找到产生bug时的seed,然后再reproduce the bug ,如果不利用gdb,很难locate到具体到那一行代码出的问题。
324

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