在转向更新版本的CC编译器时,会出现在以前工作的模块中的段错误.
从核心文件中我可以了解segfault的起源功能.当我观察到这个功能时,我找不到任何可疑的东西.
第一个主要问题是segfault仅在"发布"(优化打开)中进行编译时才会重现,并且不会在"调试"中重现.此外,段错误不会在g ++上重现.
现在我开始使用打印,并且在将代码中的某些行添加cout/ printf(二进制搜索段错误行/打印指针的值)时出现了更大的问题,段错误没有重现.此外,我在代码中的某一行添加了一个cout来维护段错误,这可能意味着段错在该行之前发生.在该行之后评论行使得段错误消失.
对我来说,这会尖叫内存损坏(特别是堆栈),但我不知道如何在不查看生成的程序集的情况下推进此操作.
有任何想法吗?提前致谢.
我正在开发SunOS_5.10_Studio_12_5.12_64,CC版"Sun C++ 5.12 SunOS_sparc 2011/11/16"