summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorguanglei <guanglei>2006-10-10 13:42:20 +0000
committerguanglei <guanglei>2006-10-10 13:42:20 +0000
commit74389cdf3a94b57167af0c13d85c1687ee49f9bd (patch)
treeca92e2758d5e4e35ff6dbaf9fd85d63a9df8be8f
parent69e4bcd9d42e828b1d77584947156606289f1e38 (diff)
downloadsystemtap-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/ChangeLog5
-rw-r--r--runtime/lket/b2a/lket_b2a.c30
-rw-r--r--runtime/lket/b2a/lket_b2a.h1
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;
/*