diff options
author | guanglei <guanglei> | 2006-10-10 13:42:20 +0000 |
---|---|---|
committer | guanglei <guanglei> | 2006-10-10 13:42:20 +0000 |
commit | 74389cdf3a94b57167af0c13d85c1687ee49f9bd (patch) | |
tree | ca92e2758d5e4e35ff6dbaf9fd85d63a9df8be8f | |
parent | 69e4bcd9d42e828b1d77584947156606289f1e38 (diff) | |
download | systemtap-steved-74389cdf3a94b57167af0c13d85c1687ee49f9bd.tar.gz systemtap-steved-74389cdf3a94b57167af0c13d85c1687ee49f9bd.tar.xz systemtap-steved-74389cdf3a94b57167af0c13d85c1687ee49f9bd.zip |
* runtime/lket/b2a/lket_b2a.c, runtime/lket/b2a/lket_b2a.h:
clean up the unused database tables and destory GTree on exit.
-rw-r--r-- | runtime/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/lket/b2a/lket_b2a.c | 30 | ||||
-rw-r--r-- | runtime/lket/b2a/lket_b2a.h | 1 |
3 files changed, 33 insertions, 3 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog index 4cc33aa0..6f38ac92 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,5 +1,10 @@ 2006-10-10 Li Guanglei <guanglei@cn.ibm.com> + * runtime/lket/b2a/lket_b2a.c, runtime/lket/b2a/lket_b2a.h: + clean up the unused database tables and destory GTree on exit. + +2006-10-10 Li Guanglei <guanglei@cn.ibm.com> + * runtime/lket/b2a/Makefile.am: add the checking and optional compiling for mysql client library * runtime/lket/b2a/Makefile.in: regenerated diff --git a/runtime/lket/b2a/lket_b2a.c b/runtime/lket/b2a/lket_b2a.c index aedb7502..ee9d4857 100644 --- a/runtime/lket/b2a/lket_b2a.c +++ b/runtime/lket/b2a/lket_b2a.c @@ -86,7 +86,6 @@ int main(int argc, char *argv[]) time(&timer); tm = localtime(&timer); strftime(database, 18, "DB%Y%m%d%H%M%S", tm); -// strcpy(database, "lgl"); while (1) { int c = getopt(argc, argv, "mf"); @@ -282,6 +281,30 @@ failed: if(hdrs) free(hdrs); + for(i=1; i<MAX_GRPID; i++) + for(j=1; j<MAX_HOOKID; j++) { + if(events_des[1][i][j] != NULL) { +#ifdef HAS_MYSQL + if(events_des[1][i][j]->flag == 0 && into_db) { + snprintf(sql, 256, "drop table %d_%d",i,j); + if(mysql_query(&mysql,sql)) { + fprintf(stderr, "Failed to exec sql: %s, Error: %s\n", + sql, mysql_error(&mysql)); + exit(-1); + } + snprintf(sql, 256, "delete from table_desc where table_name='%d_%d'",i,j); + if(mysql_query(&mysql,sql)) { + fprintf(stderr, "Failed to exec sql: %s, Error: %s\n", + sql, mysql_error(&mysql)); + exit(-1); + } + } +#endif + if(events_des[1][i][j]->entrytime) /* destroy entrytime tree */ + g_tree_destroy(events_des[1][i][j]->entrytime); + } + } + #ifdef HAS_MYSQL if(into_db) { mysql_close(&mysql); @@ -289,7 +312,7 @@ failed: #endif if (appNameTree) g_tree_destroy(appNameTree); - //TODO: free entrytime tree + return 0; } @@ -582,7 +605,6 @@ void print_pkt_header(lket_pkt_header *phdr) hookid, usecs, pid, HDR_CpuID(phdr)); } if(hookid%2) { - //(events_des[1][grpid][hookid]->entrytime)[pid] = usecs; char *entrytime = malloc(sizeof(long long)); *((long long *)entrytime) = usecs; g_tree_insert(events_des[1][grpid][hookid]->entrytime, @@ -814,6 +836,8 @@ int dump_data(lket_pkt_header header, FILE *infp) continue; } + events_des[j][grpid][hookid]->flag = 1; + for(i=0; i<events_des[j][grpid][hookid]->count; i++) { fmt = events_des[j][grpid][hookid]->evt_fmt[i]; name = events_des[j][grpid][hookid]->evt_names[i]; diff --git a/runtime/lket/b2a/lket_b2a.h b/runtime/lket/b2a/lket_b2a.h index 8212ef62..2415c717 100644 --- a/runtime/lket/b2a/lket_b2a.h +++ b/runtime/lket/b2a/lket_b2a.h @@ -62,6 +62,7 @@ typedef struct { char evt_names[MAX_FIELDS][MAX_FIELDNAME_LEN]; /* e.g. protocal,dev_name,buff_len,... */ char fmt[256]; /* e.g. %1b,%0s,%2b,... */ int count; /* # of fields */ + int flag; /* a flag indicates whether exists trace data for this event */ } event_desc; /* |