随机分段错误

Jon*_*onh 1 c c++ segmentation-fault

我正在做一个游戏。在某些地方,有时我会收到分段错误,而在所有其他时间代码都可以正常工作。如果我再次运行游戏(在收到分段错误后)它会恢复(没有任何代码更改)并且运行良好。但过了一段时间又发生了这种情况。

我尝试使用 GDB 调试它。我得到以下信息:

  1. 有一个函数调用:func(&s.x),其中 s 是一个结构体,x 是它的 int 类型成员。地址 (&s.x) 是 0xb3456721
  2. 在函数 func 中,参数中接收到的值为 0xb。
  3. 程序崩溃说无法访问 0xb 处的内存。当我使用 GDB 打印变量时,我再次收到无法访问的内存。

任何想法为什么会发生这种情况?

Kyl*_*nes 6

当给定相同的输入时,有时会崩溃但有时不会崩溃的程序中包含不确定的数据源。通常源是一个未初始化的变量或内存块,但它可能依赖于时间戳、进程 ID 或来自系统的其他输入源。