81bf78b39d3b82f8ffd123f796ae5e6f5228af4c
Stefan Schuermans lwpttr -> lwptev

Stefan Schuermans authored 4 years ago

liblwptev/src/proc_begin.c  1) #include <liblwptev/proc_begin.h>
Stefan Schuermans split event and proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/proc_begin.c  2) #include "cleaner.h"
liblwpttr/src/proc_begin.c  3) #include "event.h"
liblwpttr/src/proc_begin.c  4) #include "stringlist.h"
liblwpttr/src/proc_begin.c  5) #include "symlink.h"
Stefan Schuermans proc_end: add proc_cpu_time

Stefan Schuermans authored 4 years ago

liblwpttr/src/proc_begin.c  6) #include "timing.h"
Stefan Schuermans split event and proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/proc_begin.c  7) 
liblwpttr/src/proc_begin.c  8) #include <lwproctrace.pb-c.h>
liblwpttr/src/proc_begin.c  9) 
liblwpttr/src/proc_begin.c 10) #include <stdlib.h>
liblwpttr/src/proc_begin.c 11) #include <sys/types.h>
liblwpttr/src/proc_begin.c 12) #include <unistd.h>
liblwpttr/src/proc_begin.c 13) 
Stefan Schuermans lwpttr -> lwptev

Stefan Schuermans authored 4 years ago

liblwptev/src/proc_begin.c 14) int lwptev_proc_begin(void **data, size_t *size) {
Stefan Schuermans split event and proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/proc_begin.c 15)   *data = NULL;
liblwpttr/src/proc_begin.c 16)   *size = 0;
liblwpttr/src/proc_begin.c 17) 
Stefan Schuermans lwpttr -> lwptev

Stefan Schuermans authored 4 years ago

liblwptev/src/proc_begin.c 18)   lwptev_cleaner_t *cleaner = lwptev_cleaner_new();
Stefan Schuermans split event and proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/proc_begin.c 19)   if (! cleaner) {
liblwpttr/src/proc_begin.c 20)     return -1;
liblwpttr/src/proc_begin.c 21)   }
liblwpttr/src/proc_begin.c 22) 
liblwpttr/src/proc_begin.c 23)   struct _Lwproctrace__Timespec timestamp = LWPROCTRACE__TIMESPEC__INIT;
Stefan Schuermans lwpttr -> lwptev

Stefan Schuermans authored 4 years ago

liblwptev/src/proc_begin.c 24)   lwptev_timing_get_timestamp(&timestamp);
Stefan Schuermans split event and proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/proc_begin.c 25) 
liblwpttr/src/proc_begin.c 26)   struct _Lwproctrace__ProcBegin proc_begin = LWPROCTRACE__PROC_BEGIN__INIT;
liblwpttr/src/proc_begin.c 27)   proc_begin.pid = getpid();
liblwpttr/src/proc_begin.c 28)   proc_begin.has_ppid = 1;
liblwpttr/src/proc_begin.c 29)   proc_begin.ppid = getppid();
liblwpttr/src/proc_begin.c 30)   if (symlink_read("/proc/self/exe", &proc_begin.exe, cleaner) != 0) {
liblwpttr/src/proc_begin.c 31)     return -1;
liblwpttr/src/proc_begin.c 32)   }
liblwpttr/src/proc_begin.c 33)   if (symlink_read("/proc/self/cwd", &proc_begin.cwd, cleaner) != 0) {
liblwpttr/src/proc_begin.c 34)     return -1;
liblwpttr/src/proc_begin.c 35)   }
liblwpttr/src/proc_begin.c 36)   if (stringlist_read("/proc/self/cmdline", &proc_begin.n_cmdline,
liblwpttr/src/proc_begin.c 37)                       &proc_begin.cmdline, cleaner) != 0) {
liblwpttr/src/proc_begin.c 38)     return -1;
liblwpttr/src/proc_begin.c 39)   }
liblwpttr/src/proc_begin.c 40)   if (stringlist_read("/proc/self/environ", &proc_begin.n_environ,
liblwpttr/src/proc_begin.c 41)                       &proc_begin.environ, cleaner) != 0) {
liblwpttr/src/proc_begin.c 42)     return -1;
liblwpttr/src/proc_begin.c 43)   }
liblwpttr/src/proc_begin.c 44) 
liblwpttr/src/proc_begin.c 45)   struct _Lwproctrace__Event event = LWPROCTRACE__EVENT__INIT;
liblwpttr/src/proc_begin.c 46)   event.timestamp = &timestamp;
liblwpttr/src/proc_begin.c 47)   event.proc_begin = &proc_begin;
liblwpttr/src/proc_begin.c 48) 
Stefan Schuermans lwpttr -> lwptev

Stefan Schuermans authored 4 years ago

liblwptev/src/proc_begin.c 49)   return lwptev_event_pack(&event, data, size, cleaner);