今天,我们跨越不同寻常的现象来了,一个同事在呼唤他的代码常乖巧的功能,这是触发了libc(的gethostbyname)段错误。 令人费解的事情是相同的功能,无需麻烦其他源文件曾在相同的运行时间。 令人吃惊的是,该段错误消失使用Valgrind的时候,其实,它完美地与工作Valgrind的,没有报告的错误。
经过大量的牺牲来安抚神灵编译我们最终意识到,头文件声明函数从调用该函数的源文件丢失。 一旦我们添加了这个在,一切都正常运行。
为什么GCC / LD不产生指示功能无法识别?为什么它的valgrind工作错误(甚至是警告)?
谢谢。