我有一個Qt5/C++應用程序似乎工作正常,但在調試模式(GDB)下運行時,QT Creator控制檯上彈出此錯誤消息標準錯誤) - 偶爾!:Qt5/C++在調試期間生成'損壞的共享庫列表'錯誤
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的情況下運行時不會出現?
你在linux上嗎? – 2014-10-02 15:19:30
我不認爲Valgrind可以保證捕獲所有類別的錯誤。 (例如,開箱即用,它不會捕獲堆棧上的數組溢出。)我不知道它是否可能會丟失導致此消息的錯誤。 – 2014-10-02 15:28:35
是的 - 在Linux 64位Fedora 20上運行。我有Qt Creator的調試模式集(所以所有的調試選項都應該啓用) – TSG 2014-10-02 19:29:56