Beispiel #1
0
 def addProcess(self, pid, is_attached, parent=None, is_thread=False):
     """
     Add a new process using its identifier. Use is_attached=False to
     attach an existing (running) process, and is_attached=True to trace
     a new (stopped) process.
     """
     if pid in self.dict:
         raise KeyError("The process %s is already registered!" % pid)
     process = PtraceProcess(self,
                             pid,
                             is_attached,
                             parent=parent,
                             is_thread=is_thread)
     info("Attach %s to debugger" % process)
     self.dict[pid] = process
     self.list.append(process)
     try:
         process.waitSignals(SIGTRAP, SIGSTOP)
     except KeyboardInterrupt:
         error("User interrupt! Force the process %s attach "
               "(don't wait for signals)." % pid)
     except ProcessSignal as event:
         event.display()
     except:  # noqa: E722
         process.is_attached = False
         process.detach()
         raise
     if HAS_PTRACE_EVENTS and self.options:
         process.setoptions(self.options)
     return process
Beispiel #2
0
 def addProcess(self, pid, is_attached, parent=None):
     """
     Add a new process using its identifier. Use is_attached=False to
     attach an existing (running) process, and is_attached=True to trace
     a new (stopped) process.
     """
     if pid in self.dict:
         raise KeyError("The process %s is already registered!" % pid)
     process = PtraceProcess(self, pid, is_attached, parent=parent)
     info("Attach %s to debugger" % process)
     self.dict[pid] = process
     self.list.append(process)
     try:
         process.waitSignals(SIGTRAP, SIGSTOP)
     except KeyboardInterrupt:
         error(
             "User interrupt! Force the process %s attach "
             "(don't wait for signals)."
             % pid)
     except ProcessSignal as event:
         event.display()
     except:
         process.is_attached = False
         process.detach()
         raise
     if HAS_PTRACE_EVENTS and self.options:
         process.setoptions(self.options)
     return process
Beispiel #3
0
 def addProcess(self, pid, is_attached, parent=None):
     if pid in self.dict:
         raise KeyError("Process % is already registered!" % pid)
     process = PtraceProcess(self, pid, is_attached, parent=parent)
     info("Attach %s to debugger" % process)
     self.dict[pid] = process
     self.list.append(process)
     process.waitSignals(SIGTRAP, SIGSTOP)
     if HAS_PTRACE_EVENTS and self.options:
         process.setoptions(self.options)
     return process