2

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

4

2 に答える 2

1

ビューの数に基づいて、この問題を抱えている人がたくさんいるようです。コードを単純な例に切り詰めてから、問題を再現しました。問題の原因はユーザー コードではなく、Qt Creator 自体です。これ以上先に進むことはできません。Qt Creator の修正が行われるまで我慢してください。

于 2015-03-14T00:18:08.500 に答える