Ejemplo n.º 1
0
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);

}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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(); 
}