我有一个Qt5 / C ++应用程序似乎工作正常,但在调试模式(GDB)下运行时,QT Creator控制台(stderr)会弹出此错误 - 偶尔!:
Corrupted shared library list: 0x7fffe8008e90 != 0x751e50
我找不到任何关于原因的参考,我无法弄清楚是什么触发它(其他与使用QLinkedList有关。)我尝试切换到QVector但有时候弹出相同的错误。
这是什么以及如何解决? Valgrind说没有内存腐败......这是一个虚假的报道问题吗?或者我做错了什么。
我已将上述错误追溯到下面的最后一行(第4行)。
Settings *programSettings = Settings::instance();
QString driver=programSettings->database_driver();
driver="QMYSQL"; // Override for testing
m_db = QSqlDatabase::addDatabase(driver);
这对我没有意义......有人可以解释为什么QSqlDatabase :: addDatabase行会导致损坏吗?同样,为什么在调试时只出现错误...但在没有gdb的情况下运行时不会出现错误?
答案 0 :(得分:1)
根据观看次数,似乎有很多人都有这个问题。我们将代码简化为一个简单的示例,然后重现问题。问题的根源不是用户代码,而是Qt Creator本身。我们不能做得更远 - 只要忍受它,直到Qt Creator修复程序出现。
答案 1 :(得分:0)
看起来你正在写一些不属于你自己的记忆。看起来您正在取消引用具有未初始化值的指针。在启用所有警告的情况下编译您的应用程序,并确保您了解所有警告。之后,您可能需要在最小化代码之后开始代码审核。