【发布时间】:2013-11-08 17:59:55
【问题描述】:
我已准备好使用PROOF 运行我的代码。
每当我独立运行代码时,我都可以正常工作,但当我激活 PROOF 时,我的代码会因分段错误而崩溃。
使用 GDB,我能够准确地知道它崩溃的位置:当我尝试跟随指向对象的指针时。这让我觉得这个指针(我绝对确定它之前是有效的)是无效的,我不知道为什么会这样。
还有其他选择吗?我可以跟踪那个指针以便知道它是在哪里释放的吗?
【问题讨论】:
-
你的意思是它释放了已经释放的指针?
-
通常,我使用 valgrind 来处理这样的事情。如果使用
-g编译并使用valgrind的--track-origins=yes选项,可以在代码中找到无效读取的位置和未初始化数据的位置。 -
@user2533527 不,在程序的那个阶段,该指针应该包含对程序至关重要的信息,所以我实际上需要使用它
-
我会试试@Alex
-
太棒了!发布它报告的任何错误。 :)
标签: c++ pointers segmentation-fault