在c ++中调试sigtrap

时间:2016-11-24 15:45:35

标签: c++ debugging vector random

在最近的一个程序中,我发现我在关机后遇到了一些令人担忧的随机崩溃/崩溃,我认为我已经将它缩小到SIGTRAP,这在特定情况下创建了一个向量时发生。可以在此处找到代码的主要部分:http://pastebin.com/xp9Cm04Q和此处的tile类:http://pastebin.com/Niv7SSyF(运行buildworld子例程时出现问题)并且可以在此处找到控制台输出{{3} }。如果发生这种情况,调试器会转到new_allicator,如果值得了解的话。

另请注意,由于某种原因,在tile中删除了对rTest的调用(只调用了该类具有的RNG),但仅限于此后创建了另一个subZone。不用说,我完全不知道为什么会这样。

我在这做什么蠢事吗?我只使用std库,所以我不认为我可以将它们安装错误或任何东西。这是一个我可以/应该忽略的问题吗?非常感谢任何有关如何处理此问题的帮助。

1 个答案:

答案 0 :(得分:0)

tiles.back().back().giveRGen(&zoneRGen);

一个问题:您的磁贴有一个指向RNG对象的链接;该链接将被破坏,然后复制subZone。例如:

allZones.push_back( subZone( x , y , worldRGen() ) );