Chinaunix

标题: oci ,以及dmalloc問題,請朋友們指點 [打印本页]

作者: gangjh    时间: 2006-12-08 20:41
标题: oci ,以及dmalloc問題,請朋友們指點

版主請不要刪,我在C++版掛了幾天沒人理,只好轉這里了 !


http://bbs.chinaunix.net/viewthr ... &extra=page%3D4

環境說明:
OS : Debian Linux testing
Oracle :Oracle 10.2.0.1.0
dmalloc :5.4.2-5   

疑問一.
OCIEnvCreate, OCIHandleFree是否使用正確 ?


  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4. #include <dmalloc.h>
  5. #include "oci.h"

  6. int  main(int argc, char *argv[])
  7. {
  8.         OCIEnv       *envhp;
  9.         if (OCIEnvCreate ( &envhp, (ub4)OCI_DEFAULT, (dvoid *)0,
  10.                         (dvoid * (*)(dvoid *, size_t)) 0,
  11.                         (dvoid * (*)(dvoid *, dvoid *, size_t)) 0,
  12.                         (void (*)(dvoid *, dvoid *)) 0,
  13.                         (size_t) 0,
  14.                         (dvoid **) 0))  {
  15.                 printf("couldn't create environment");
  16.         }

  17.         OCIHandleFree ((dvoid *)envhp, OCI_HTYPE_ENV);

  18.         exit(0) ;
  19. }
复制代码

疑問二:
編譯:

  1.    $gcc -I /app/oracle/product/10.2.0.1/rdbms/public/ -L /app/oracle/product/10.2.0.1/lib/ -o aa aa.c -ldmalloc -lclntsh

  2. $dmalloc -l aa.log all
  3. $DMALLOC_OPTIONS=debug=0xcf66d2b,log=aa.log
  4. $export DMALLOC_OPTIONS
复制代码

執行後得到aa.log檔. 發現很多沒有釋放的指針 (附檔aa.log.gz)
請幫忙分析一下,是Oracle bug,還是我使用錯誤!

1165293967: 312: top 10 allocations:
1165293967: 312:  total-size  count in-use-size  count  source
1165293967: 312:      408211      3      384987      1  ra=0xb7682d8c
1165293967: 312:      145150     18      145150     18  ra=0xb7c0b866
1165293967: 312:      129404      5      129404      5  ra=0xb7b9e11d
1165293967: 312:        5200      5        5200      5  ra=0xb7bf4ee2
1165293967: 312:        4092     31        3564     27  ra=0xb7bf169e
1165293967: 312:        3468      1        3468      1  ra=0xb7c735db
1165293967: 312:        2080      2        2080      2  ra=0xb7bf5a6e
1165293967: 312:        1408      4           0      0  ra=0xb705da1f
1165293967: 312:        1224      3         408      1  ra=0xb7c6b2ba
1165293967: 312:      706400    214      678731    117  Total of 50
1165293967: 312: Dumping Not-Freed Pointers Changed Since Start:
1165293967: 312:  not freed: '0xb6c92008|s1' (103328 bytes) from 'ra=0xb7b9e11d'
1165293967: 312:  not freed: '0xb6cac808|s1' (860 bytes) from 'ra=0xb7b9e11d'
1165293967: 312:  not freed: '0xb6cacc08|s1' (792 bytes) from 'ra=0xb7b9e11d'
1165293967: 312:  not freed: '0xb6cb4008|s1' (2216 bytes) from 'ra=0xb7b9e11d'
1165293967: 312:  not freed: '0xb6cb5008|s1' (22208 bytes) from 'ra=0xb7b9e11d'

[ 本帖最后由 gangjh 于 2006-12-8 20:46 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2