[BACK]Return to pmdb.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / pmdb

Diff for /src/usr.bin/pmdb/Attic/pmdb.c between version 1.7 and 1.8

version 1.7, 2002/06/05 18:02:27 version 1.8, 2002/06/09 02:44:13
Line 81 
Line 81 
 {  {
         extern char *__progname;          extern char *__progname;
   
         fprintf(stderr, "Usage: %s [-c core] <program> args\n", __progname);          fprintf(stderr, "Usage: %s [-c core] [-p pid] <program> args\n", __progname);
         exit(1);          exit(1);
 }  }
   
Line 92 
Line 92 
         int i, c;          int i, c;
         int status;          int status;
         void *cm;          void *cm;
         char *pmenv, *core;          char *pmenv, *core, *perr;
         int level;          int level;
           pid_t pid;
   
         if (argc < 2) {          if (argc < 2) {
                 usage();                  usage();
         }          }
   
         core = NULL;          core = NULL;
           pid = 0;
   
         while ((c = getopt(argc, argv, "c:")) != -1) {          while((c = getopt(argc, argv, "c:p:")) != -1) {
                 switch(c) {                  switch(c) {
                         case 'c':                          case 'c':
                                 core = optarg;                                  core = optarg;
                                 break;                                  break;
                           case 'p':
                                   pid = (pid_t) strtol(optarg, &perr, 10);
                                   if(*perr != '\0')
                                           errx(1, "invalid PID");
                                   break;
                         case '?':                          case '?':
                         default:                          default:
                                 usage();                                  usage();
Line 126 
Line 133 
         asprintf(&pmenv, "%d", level);          asprintf(&pmenv, "%d", level);
         setenv("IN_PMDB", pmenv, 1);          setenv("IN_PMDB", pmenv, 1);
   
         ps.ps_pid = 0;          ps.ps_pid = pid;
         ps.ps_state = NONE;          ps.ps_state = NONE;
         ps.ps_argc = argc;          ps.ps_argc = argc;
         ps.ps_argv = argv;          ps.ps_argv = argv;
Line 308 
Line 315 
 {  {
         struct pstate *ps = arg;          struct pstate *ps = arg;
   
         ps->ps_flags |= PSF_KILL;          if ((ps->ps_flags & PSF_ATCH)) {
                   if ((ps->ps_flags & PSF_ATCH) &&
                       ptrace(PT_DETACH, ps->ps_pid, NULL, 0) < 0)
                           err(1, "ptrace(PT_DETACH)");
           } else {
                   ps->ps_flags |= PSF_KILL;
   
         if (process_kill(ps))                  if (process_kill(ps))
                 return 1;                          return 1;
           }
   
         ps->ps_state = TERMINATED;          ps->ps_state = TERMINATED;
         return 1;          return 1;

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8