gcc与clang对统一程序编译后运行结果不一致的排查方法

最近在工作中遇到一个比较奇怪的现象,同样的一段程序,使用gcc与clang进行编译,最后的运行结果却不一致。
当时真是一脸懵逼,不知道咋搞了。后来老板告诉了一个方法,特意在此把它记录下来,方便以后查阅。

  1. 用gcc和clang分别编译一套代码,依次替换.o文件,如依次用gcc编译出的.o文件替换clang编译出的.o文件,对替换后的运行结果,查看结果是否一致。这也可以确定出是由哪一个文件导致的差异。接下来需要确定具体哪个方法导致结果出现差异。

  2. 将文件中的方法通过二分法的方式,分别在两个文件中实现,分别用gcc和clang编译编译这两个文件,替换后观察结果。从而最终确定是哪个方法导致了结果出现偏差。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一 学习与实践 1 付出不亚于任何人的努力 2要谦虚不要骄傲 3要每天反省 4活着就要感谢 5积善行,思利他 6不...
    grace2039阅读 1,081评论 0 0
  • 1 工作日的清晨,天气很冷。一大早醒来,手机跟电视上推送的都是关于流感的新闻,症状很严重药很紧缺。还好机智的刘娜在...
    撩食先生阅读 3,550评论 4 3
  • 内容:【日精进打卡第198天】 【知~学习】 《六项精进》2遍 共384遍 《大学》2遍 共400遍 ••••••...
    老黑1983阅读 472评论 0 1

友情链接更多精彩内容