我有一个看起来运行良好的 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 的情况下运行时不会出现?