diff options
author | guanglei <guanglei> | 2006-07-19 12:50:03 +0000 |
---|---|---|
committer | guanglei <guanglei> | 2006-07-19 12:50:03 +0000 |
commit | 0bdb0b6f10f4e0204f13969fe2d1c972c380d73e (patch) | |
tree | f07881c6c9ac40b3282939ff7188425ab78f9d32 | |
parent | ed8e225fce1087dd5ee71d42f3e2ba0f1a30a1d9 (diff) | |
download | systemtap-steved-0bdb0b6f10f4e0204f13969fe2d1c972c380d73e.tar.gz systemtap-steved-0bdb0b6f10f4e0204f13969fe2d1c972c380d73e.tar.xz systemtap-steved-0bdb0b6f10f4e0204f13969fe2d1c972c380d73e.zip |
bug fix of lket-b2a: segment fault caused by event register
change the timestamp printing format of lket-b2a: usec --> sec.usec
fix an error in "CUSTOMIZED TRACE DATA" : addevent.netdev --> addevent.netdev.transmit
-rw-r--r-- | lket.5.in | 2 | ||||
-rw-r--r-- | runtime/lket/b2a/lket_b2a.c | 22 |
2 files changed, 9 insertions, 15 deletions
@@ -584,7 +584,7 @@ probe register_event register_user_event(GROUP_NETDEV, HOOKID_NETDEV_TRANSMIT, "INT32:INT32", "mac_len:priority") } -probe addevent.netdev +probe addevent.netdev.transmit { printf("%4b%4b", $skb->mac_len, $skb->priority) } diff --git a/runtime/lket/b2a/lket_b2a.c b/runtime/lket/b2a/lket_b2a.c index 87823274..d79bcc4a 100644 --- a/runtime/lket/b2a/lket_b2a.c +++ b/runtime/lket/b2a/lket_b2a.c @@ -28,8 +28,7 @@ GTree *appNameTree; * default hook format table, * based on tapsets/hookid_defs.stp and other hook specific files */ -//event_desc events_des[MAX_EVT_TYPES][MAX_GRPID][MAX_HOOKID]; -event_desc **events_des[MAX_EVT_TYPES][MAX_GRPID]; +event_desc *events_des[MAX_EVT_TYPES][MAX_GRPID][MAX_HOOKID]; int main(int argc, char *argv[]) { @@ -311,8 +310,12 @@ void print_pkt_header(FILE *fp, lket_pkt_header *phdr) { if(!fp || !phdr) return; - fprintf(fp, "\n%lld APPNAME: %s PID:%d CPU:%d HOOKGRP:%d HOOKID:%d -- ", - (phdr->microsecond - start_timestamp), + long long usecs = phdr->microsecond - start_timestamp; + int sec = usecs/1000000; + int usec = usecs%1000000; + + fprintf(fp, "\n%d.%d APPNAME: %s PID:%d CPU:%d HOOKGRP:%d HOOKID:%d -- ", + sec, usec, (char *)(g_tree_lookup(appNameTree, (gconstpointer)((long)HDR_PID(phdr)))), HDR_PID(phdr), HDR_CpuID(phdr), @@ -348,14 +351,7 @@ void register_events(int evt_type, FILE *infp, size_t size) exit(-1); } - if(events_des[evt_type][grpid] == NULL) { - events_des[evt_type][grpid] - = malloc(sizeof(event_desc *)*MAX_HOOKID); - } - if(events_des[evt_type][grpid][hookid] == NULL) { - events_des[evt_type][grpid][hookid] - = malloc(sizeof(event_desc)); - } + events_des[evt_type][grpid][hookid] = malloc(sizeof(event_desc)); while(fmt!=NULL && name!=NULL) { strncpy(events_des[evt_type][grpid][hookid]->evt_fmt[cnt], fmt, 7); @@ -405,8 +401,6 @@ int ascii_print(lket_pkt_header header, FILE *infp, FILE *outfile, int evt_type) else size = header.total_size - header.sys_size; - if(events_des[evt_type][grpid] == NULL) - return -1; if(events_des[evt_type][grpid][hookid] == NULL) return -1; |