正常に動作しているように見える 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なしで実行しているときは表示されませんか?