valgrind 报告 ecpg内存泄露 (二)

真是原因到底是什么呢?

由于 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){
           exit(0);
}

而一个很单纯的程序,如果没有上述一段程序,就不会被 valgrind 报错。

原文地址:https://www.cnblogs.com/gaojian/p/2637907.html