0

我遇到了一个我还无法弄清楚的崩溃 - 在分叉之前分配了一个结构。在结构中,条件分配的内存也分配给字符串。如果在 fork 之前或之后由父级访问此结构,则不会遇到任何问题。

当孩子尝试访问该结构时,该结构内存中的所有值都是垃圾,但 valgrind 不会抱怨对结构的内存访问,因此它似乎认为内存应该是有效的。然而,当结构中的字符串被访问时——指针是一个垃圾值——程序崩溃了。Valgrind 指出内存最近没有被分配或释放,但这是意料之中的,因为它是一个垃圾值。

有没有人经历过类似的事情?到目前为止,我还没有从我的搜索中找到任何有用的提示。

编辑:有条件分配的内存

4

1 回答 1

3

叉子只是复制内存。因此,它在分叉之前就已损坏。

为什么不在那里设置一个断点或在 fork 之前执行相同的内存访问以遇到相同的问题。

于 2013-09-19T21:56:15.183 回答