今天一个server程序出现问题,在开发机器上正常,到了产品服务器上就总是崩溃。原因查了很久,总是报shared_ptr内部的错误。不知为什么?
最后决定提升GCC编译器的warning level,看看编译器能否提供帮助。
在CMakeLists.txt文件中加上:
add_definitions(-Wall)
编译器果然给了很有用的信息,发现我的函数返回类型为shared_ptr,但是却没有返回任何值。将函数返回类型改为void后,产品服务器上程序不再崩溃了。
所以,CMake默认的警告级别不够用,特别是服务端开发,最好还是用GCC最高警告级别。
本文分享了一次解决server程序崩溃的经历。通过提高GCC编译器的警告级别,发现了返回shared_ptr但未返回任何值的问题,并成功修复了该问题。
1235

被折叠的 条评论
为什么被折叠?



