
最近遇到一个C程序在退出时出现内存释放相关的报错包括以下两种现象现象一$ ./main... free(): invalid pointer Aborted现象二$ ./main... corrupted size vs. prev_size Aborted感觉这两种现象是同一个问题导致的但用GDB调试了好一会儿也没有发现导致问题出现的真正原因。无奈之下想起借助valgrind也许能发现些什么异常。最后还真是valgrind帮忙定位到了原因。下面把用到的valgrind命令贴出来大家遇到类似的问题可以尝试用valgrind来定位$ valgrind --leak-checkfull --show-leak-kindsall --track-originsyes-syour_program