def doWaitSuspend(self, thread, frame, event, arg): #@UnusedVariable
        self.processInternalCommands()
        cmd = self.cmdFactory.makeThreadSuspendMessage(GetThreadId(thread), frame, thread.stop_reason)
        self.writer.addCommand(cmd)
        
        info = thread.additionalInfo
        while info.pydev_state == STATE_SUSPEND and not self._finishDebuggingSession:            
            self.processInternalCommands()
            time.sleep(0.2)
            
        #process any stepping instructions 
        if info.pydev_step_cmd == CMD_STEP_INTO:
            info.pydev_step_stop = None
            
        elif info.pydev_step_cmd == CMD_STEP_OVER:
            info.pydev_step_stop = frame
            if frame.f_trace is None:
                frame.f_trace = self.trace_dispatch
            SetTraceForParents(frame, self.trace_dispatch)
            
        elif info.pydev_step_cmd == CMD_RUN_TO_LINE:
            if frame.f_trace is None:
                frame.f_trace = self.trace_dispatch
            SetTraceForParents(frame, self.trace_dispatch)
            
            if event == 'line':
                #If we're already in the correct context, we have to stop it now, because we can act only on
                #line events -- if a return was the next statement it wouldn't work (so, we have this code
                #repeated at pydevd_frame). 
                stop = False
                curr_func_name = frame.f_code.co_name
                
                #global context is set with an empty name
                if curr_func_name in ('?', '<module>'):
                    curr_func_name = ''
                
                if curr_func_name == info.pydev_func_name:
                    line = info.pydev_next_line
                    if frame.f_lineno == line:
                        stop = True
                    else:
                        if frame.f_trace is None:
                            frame.f_trace = self.trace_dispatch
                        frame.f_lineno = line
                        frame.f_trace = None
                        stop = True
                if stop:
                    info.pydev_state = STATE_SUSPEND
                    self.doWaitSuspend(thread, frame, event, arg)
                    return

            
        elif info.pydev_step_cmd == CMD_STEP_RETURN:
            back_frame = frame.f_back
            if back_frame is not None:
                #steps back to the same frame (in a return call it will stop in the 'back frame' for the user)
                info.pydev_step_stop = frame
                if frame.f_trace is None:
                    frame.f_trace = self.trace_dispatch
                SetTraceForParents(frame, self.trace_dispatch)
            else:
                #No back frame?!? -- this happens in jython when we have some frame created from an awt event
                #(the previous frame would be the awt event, but this doesn't make part of 'jython', only 'java')
                #so, if we're doing a step return in this situation, it's the same as just making it run
                info.pydev_step_stop = None
                info.pydev_step_cmd = None
                info.pydev_state = STATE_RUN
                
        del frame
        cmd = self.cmdFactory.makeThreadRunMessage(GetThreadId(thread), info.pydev_step_cmd)
        self.writer.addCommand(cmd)
Returns the value of the given string attribute node, None if the node
dataset/ETHPy150Open CountZer0/PipelineConstructionSet/python/common/diagnostic/pydevDebug/pydevd.py/PyDB.doWaitSuspend--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.5/django/contrib/gis/gdal/srs.py/SpatialReference.__getitem__