|
|
1
6
快速、简单,但没有那么有帮助:
不是很快和容易,但更有用(如果你让它工作的话): valgrind . |
|
|
2
2
Valgrind
使查找堆损坏问题变得容易。在Valgrind下使用Ruby1.8时报告了一些错误,但是可以使用
this ruby patch
(和配置--启用valgrind)或使用
valgrind suppression file
.要在valgrind下运行ruby程序,只需在命令前面加上
如果崩溃进程是正在运行的进程的子进程,请使用
|
|
|
3
1
我在一个名为rd_test的简单“c”程序中得到了同样的错误;它将使用read(2)从给定的输入文件(可能是设备文件)中读取给定数量的字节。 这个 实际的 结果发现bug是一个1字节的缓冲区溢出(正如我所做的那样 …… Buf[n]=‘0’; … 其中“n”是读取缓冲区“buf”)的字节数。 傻我。 但是,问题是,我从来没有抓住它,直到我运行它与瓦尔Grind! 所以我觉得瓦格林绝对值得在这样的案子上运行。 “双重自由或腐败”的错误在我摆脱了令人讨厌的错误之后就消失了。 |
|
|
4
0
我收到了同样的错误消息,不是在Ruby中,而是在Zenity程序中。 我发现它和我关上两次管子有点关系! 检查是否不释放同一堆内存的两倍或更多倍,再次关闭已关闭的文件或管道。 古德拉克 |