记忆困难

时间:2011-11-13 14:52:30

标签: debugging memory process pthreads fork

我有很长的代码,有多个进程,并且在程序运行的某个地方运行时我得到一条消息,例如“无效的下一个大小(快)”和一些没有意义的数字。

我无法让gdb单独在该进程中运行,而且我无法弄清楚程序在这里发生了什么。我把printf向左和向右(我用fflush冲洗它,所以它会在那时准确打印出来)但是当发生这种情况时我仍然找不到确切的线!

如何调试这样的问题?我很感激帮助,因为我已经尝试了所有我能想到的东西。

2 个答案:

答案 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/