static void do_tracing_by_name_internal(const char *progname, const char *filename) { /* If process already running, start tracing */ uint32_t pid = VMI_find_pid_by_name_c(progname); uint32_t minus_one = (uint32_t)(-1); if (pid != minus_one) { procname_set(progname); strncpy(tracefile, filename, 256); do_tracing_internal(pid, filename); trackproc_start(pid); return; } /* Otherwise, start monitoring for process start */ procname_set(progname); strncpy(tracefile, filename, 256); DECAF_printf( "Waiting for process %s to start\n", progname); }
void do_tracing(Monitor *mon, const QDict *qdict) { uint32_t pid = qdict_get_int(qdict, "pid"); const char *filename = qdict_get_str(qdict, "filepath"); char proc_name[512]; uint32_t cr3; if( VMI_find_process_by_pid_c(pid, proc_name, 512, &cr3)!= -1){ procname_set(proc_name); strncpy(tracefile, filename, 256); do_tracing_internal(pid, filename); trackproc_start(pid); } else DECAF_printf("Unable to find process %d \n", pid); }
static void do_tracing_by_name_internal(const char *progname, const char *filename) { /* If process already running, start tracing */ uint32_t pid = find_pid_by_name(progname); uint32_t minus_one = (uint32_t)(-1); if (pid != minus_one) { do_tracing_internal(pid,filename); } else { /* Otherwise, start monitoring for process start */ procname_set(progname); strncpy(tracefile, filename, 256); monitor_printf (default_mon, "Waiting for process %s to start\n", progname); } /* Print configuration variables */ //print_conf_vars(); }