debugger: use tempfile.NamedTemporaryFile instead of tempfile.mkstemp

This commit is contained in:
hjk
2010-03-24 14:48:45 +01:00
parent fddbf6bef4
commit 89ae26419c

View File

@@ -20,30 +20,24 @@ except:
return ucs return ucs
return '?' return '?'
# Fails on SimulatorQt.
try:
import os
def removeFile(name):
try: # files may still be locked by gdb on Windows
os.remove(filename)
except:
pass
except:
def removeFile(name):
pass
# Fails on SimulatorQt. # Fails on SimulatorQt.
try: try:
import tempfile import tempfile
def createTempFile(): def createTempFile():
file = tempfile.mkstemp(prefix="gdbpy_") file = tempfile.NamedTemporaryFile(prefix="gdbpy_")
return file[1] return file.name, file
def removeTempFile(name, file):
file.close()
except: except:
fileCounter = 0 fileCounter = 0
def createTempFile(): def createTempFile():
fileCounter += 1 fileCounter += 1
return "gdbpy_tmp%d" % fileCounter return "gdbpy_tmp%d" % fileCounter, None
def removeTempFile(name, file):
pass
verbosity = 0 verbosity = 0
verbosity = 1 verbosity = 1
@@ -119,7 +113,7 @@ def parseAndEvaluate(exp):
def catchCliOutput(command): def catchCliOutput(command):
filename = createTempFile() file, filename = createTempFile()
gdb.execute("set logging off") gdb.execute("set logging off")
gdb.execute("set logging redirect off") gdb.execute("set logging redirect off")
gdb.execute("set logging file %s" % filename) gdb.execute("set logging file %s" % filename)
@@ -128,12 +122,12 @@ def catchCliOutput(command):
gdb.execute(command) gdb.execute(command)
gdb.execute("set logging off") gdb.execute("set logging off")
gdb.execute("set logging redirect off") gdb.execute("set logging redirect off")
file = open(filename, "r") temp = open(filename, "r")
lines = [] lines = []
for line in file: for line in temp:
lines.append(line) lines.append(line)
file.close() temp.close()
removeFile(filename) removeTempFile(filename, file)
return lines return lines
@@ -292,7 +286,7 @@ def listOfLocals(varList):
block = block.superblock block = block.superblock
else: else:
# Assuming gdb 7.0 release or 6.8-symbianelf. # Assuming gdb 7.0 release or 6.8-symbianelf.
filename = createTempFile() filename, file = createTempFile()
#warn("VARLIST: %s " % varList) #warn("VARLIST: %s " % varList)
#warn("VARLIST: %s " % len(varList)) #warn("VARLIST: %s " % len(varList))
gdb.execute("set logging off") gdb.execute("set logging off")
@@ -320,8 +314,8 @@ def listOfLocals(varList):
gdb.execute("set logging off") gdb.execute("set logging off")
gdb.execute("set logging redirect off") gdb.execute("set logging redirect off")
file = open(filename, "r") temp = open(filename, "r")
for line in file: for line in temp:
if len(line) == 0 or line.startswith(" "): if len(line) == 0 or line.startswith(" "):
continue continue
# The function parameters # The function parameters
@@ -329,8 +323,8 @@ def listOfLocals(varList):
if pos < 0: if pos < 0:
continue continue
varList.append(line[0:pos]) varList.append(line[0:pos])
file.close() temp.close()
removeFile(filename) removeTempFile(filename, file)
#warn("VARLIST: %s " % varList) #warn("VARLIST: %s " % varList)
for name in varList: for name in varList:
#warn("NAME %s " % name) #warn("NAME %s " % name)