我有很长的代码,有多个进程,并且在程序运行的某个地方运行时我得到一条消息,例如“无效的下一个大小(快)”和一些没有意义的数字。
我无法让gdb单独在该进程中运行,而且我无法弄清楚程序在这里发生了什么。我把printf
向左和向右(我用fflush
冲洗它,所以它会在那时准确打印出来)但是当发生这种情况时我仍然找不到确切的线!
如何调试这样的问题?我很感激帮助,因为我已经尝试了所有我能想到的东西。
答案 0 :(得分:0)
首先尝试使用
找到该行grep -rni "invalid next" *.c
假设它是某些子目录中的所有c文件。然后你应该看看这些数字的含义(或纠正错误信息更有意义)。如果你没有gnu-grep:
find -name '*.c' | xargs grep -ni "invalid next"
答案 1 :(得分:0)
当他们使用sizeof()函数为某些东西分配错误的内存量时,似乎很多人都有这个问题。
查看这些主题:
http://www.gtkforums.com/viewtopic.php?t=4819
http://www.linuxquestions.org/questions/programming-9/free-invalid-next-size-fast-c-error-729852/