我有一个C ++ (Qt)项目,其中包含一个静态链接的(非Qt,由我编写)库,它可以进行一些计算和基于该库的GUI应用程序库。
编译GUI应用程序(静态链接计算库)的一半时间我收到空结果。
如果我清理并重建整个项目,它会再次运作。
我完全不知道这个故障来自何处,我正在寻找解释或至少指导什么以及在哪里寻找。
关于图书馆如何运作的更多信息:
启动Parameters
类的实例,然后将其作为指向Computation
类的构造函数的指针传递。
然后它有一个方法,根据Parameters
中包含的参数进行计算,并返回long double
结果。
谢谢!
答案 0 :(得分:2)
如果您有间歇性内存损坏,请使用valgrind运行您的程序,这在大多数主要Linux发行版中都可用。
例如:
valgrind ./my_binary
这将产生(可能)大的内存泄漏,溢出,未经初始化的变量或其他无效的内存访问日志,重要的是使用正确的选项的行号和堆栈跟踪。包括@MichaelWalz在评论中建议的未初始化变量。
这可以让您缩小代码或库中的问题范围。