def makeThreadSuspendMessage(self, thread_id, frame, stop_reason):
        
        """ <xml>
            <thread id="id" stop_reason="reason">
                    <frame id="id" name="functionName " file="file" line="line">
                    <var variable stuffff....
                </frame>
            </thread>
           """
        try:
            cmdTextList = ["<xml>"]
            cmdTextList.append('<thread id="%s" stop_reason="%s">' % (thread_id, stop_reason))
            
            curFrame = frame
            while curFrame:
                #print cmdText
                myId = str(id(curFrame))
                #print "id is ", myId
                
                if curFrame.f_code is None:
                    break #Iron Python sometimes does not have it!
                
                myName = curFrame.f_code.co_name #method name (if in method) or ? if global
                if myName is None:
                    break #Iron Python sometimes does not have it!
                
                #print "name is ", myName
                
                myFile = pydevd_file_utils.NormFileToClient(curFrame.f_code.co_filename)                
                #print "file is ", myFile
                #myFile = inspect.getsourcefile(curFrame) or inspect.getfile(frame)
                
                myLine = str(curFrame.f_lineno)
                #print "line is ", myLine
                
                #the variables are all gotten 'on-demand'
                #variables = pydevd_vars.frameVarsToXML(curFrame)

                variables = ''
                cmdTextList.append('<frame id="%s" name="%s" ' % (myId , pydevd_vars.makeValidXmlValue(myName))) 
                cmdTextList.append((quote(myFile, '/>_= \t'), myLine) % 'file="%s" line="%s">"') 
                cmdTextList.append(variables) 
                cmdTextList.append("</frame>") 
                curFrame = curFrame.f_back
            
            cmdTextList.append("</thread></xml>")
            cmdText = ''.join(cmdTextList)
            return NetCommand(CMD_THREAD_SUSPEND, 0, cmdText)
        except:
            return self.makeErrorMessage(0, GetExceptionTracebackStr())
dataset/ETHPy150Open CountZer0/PipelineConstructionSet/python/common/diagnostic/pydevDebug/pydevd_comm.py/NetCommandFactory.makeThreadSuspendMessage/swapped operands of `%`