我有兩個線程在程序中運行。 它們是使用boost :: thread創建的。奇怪的內存泄漏C++與Eigen和boost ::線程
這兩個線程在內存方面不共享任何東西。它們之間沒有共享數據結構或對象。
現在第二個線程使用一個類作爲私有成員有很多特徵雙矩陣。 我確保矩陣使用特徵指令EIGEN_MAKE_ALIGNED_OPERATOR_NEW等對齊
當第一個線程正在運行時,第二個類的矩陣上的元素將被覆蓋。 我通過檢查檢查過,因爲應該是小數的元素突然變成了整數。 當第一個線程沒有運行時,第二個線程沒有問題,它的Eigen成員具有正確的值。
再次: 1)兩個線程不共享數據結構。 2)程序運行時沒有分段錯誤信息或類似的錯誤信息。 3)任何建議如何保護第二線程的內存或如何跟蹤內存是如何被侵犯?
預先感謝您。我很抱歉,我沒有發佈代碼,但它是巨大的。 讓我知道你是否希望我發佈代碼中的特定內容。
這不是內存泄漏。內存泄漏是指分配的內存/對象,而不是釋放/刪除。這聽起來像第一個線程通過僞指針引用內存。這通常發生在一個對象被刪除時,但該程序保持一個去活的指針。 – deemer 2012-07-18 19:56:06