真是原因到底是什麼呢?
由於 exec sql connect 而導致 valgrind 報告 記憶體洩露錯誤。
那麼在同乙個程式裡面,加入 exec sql disconnect 後,會如何呢?
驗證的結果是,依然如此,還是會說 still reachable: 220 bytes in 1 blocks。
進一步的分析會發現,
即使沒有 exec sql connect 或者 exec sql disconnect
只要有對 sqlca 的引用,就會出被報告錯誤。
if(sqlca.sqlcode == 0)
而乙個很單純的程式,如果沒有上述一段程式,就不會被 valgrind 報錯。
valgrind 報告 ecpg記憶體洩露 二
真是原因到底是什麼呢?由於 exec sql connect 而導致 valgrind 報告 記憶體洩露錯誤。那麼在同乙個程式裡面,加入 exec sql disconnect 後,會如何呢?驗證的結果是,依然如此,還是會說 still reachable 220 bytes in 1 blocks...
valgrind 報告 ecpg記憶體洩露 四
我執行測試後的結論是這樣的 確實發生了記憶體洩漏。沒有 sqlca區域。因為,我修改了 src inte ces ecpg ecpglib misc.c的 後,ifdef enable thread safety static void ecpg sqlca key destructor void ...
valgrind 報告 ecpg記憶體洩露 三
valgrind為何 報 ecpg記憶體洩露錯誤?根據我的同事的研究成果 究其原因,全域性變數 sqlca 由malloc形成,但是釋放時是隱含的 ecpg sqlca key destructor函式呼叫 free 進行釋放。複製 bool ecpgconnect int lineno,int c...