Commit ed437bb6 authored by Christian Stenger's avatar Christian Stenger Committed by hjk
Browse files

Dumper: Fix failing GDB startup when using MinGW



Task-number: QTCREATORBUG-13892
Change-Id: Ia843cf4d88c574013e67cacaa8484b52fdbd4b8a
Reviewed-by: default avatarhjk <hjk@theqtcompany.com>
parent f2cfd3c0
......@@ -33,8 +33,13 @@ import struct
import sys
import base64
import re
import subprocess
import time
try:
import subprocess
hasSubprocess = True
except:
hasSubprocess = False
hasPlot = False
if sys.version_info[0] >= 3:
xrange = range
......@@ -78,62 +83,62 @@ SeparateUtf8StringFormat \
# matplot based display for array-like structures.
#
try:
# FIXME: That might not be the one we want.
pythonExecutable = sys.executable
subprocess.check_call([pythonExecutable, '-c', 'import matplotlib'])
import matplotlib
hasPlot = True
except:
hasPlot = False
if hasSubprocess and hasPlot:
matplotFigure = {}
matplotCount = 0
matplotFigure = {}
matplotCount = 0
devNull = open(os.devnull)
matplotProc = subprocess.Popen(args=[pythonExecutable, "-i"],
bufsize=0, stdin=subprocess.PIPE, stdout=devNull, stderr=devNull)
matplotProc.stdin.write(b"import sys\n")
matplotProc.stdin.write(b"sys.ps1=''\n")
matplotProc.stdin.write(b"from matplotlib import pyplot\n")
matplotProc.stdin.write(b"import time\n")
matplotProc.stdin.write(b"pyplot.ion()\n")
matplotProc.stdin.flush()
def matplotSend(iname, show, data):
global matplotFigure
global matplotCount
def s(line):
matplotProc.stdin.write(line.encode("latin1"))
matplotProc.stdin.write(b"\n")
sys.stdout.flush()
matplotProc.stdin.flush()
devNull = open(os.devnull)
# FIXME: That might not be the one we want.
pythonExecutable = sys.executable
matplotProc = subprocess.Popen(args=[pythonExecutable, "-i"],
bufsize=0, stdin=subprocess.PIPE, stdout=devNull, stderr=devNull)
matplotProc.stdin.write(b"import sys\n")
matplotProc.stdin.write(b"sys.ps1=''\n")
matplotProc.stdin.write(b"from matplotlib import pyplot\n")
matplotProc.stdin.write(b"import time\n")
matplotProc.stdin.write(b"pyplot.ion()\n")
matplotProc.stdin.flush()
if show:
s("pyplot.ion()")
if not iname in matplotFigure:
matplotCount += 1
matplotFigure[iname] = matplotCount
s("pyplot.figure(%s)" % matplotFigure[iname])
s("pyplot.suptitle('%s')" % iname)
s("data = %s" % data)
s("pyplot.plot([i for i in range(len(data))], data, 'b.')")
time.sleep(0.2)
s("pyplot.draw()")
matplotProc.stdin.flush()
else:
if iname in matplotFigure:
def matplotSend(iname, show, data):
global matplotFigure
global matplotCount
def s(line):
matplotProc.stdin.write(line.encode("latin1"))
matplotProc.stdin.write(b"\n")
sys.stdout.flush()
matplotProc.stdin.flush()
if show:
s("pyplot.ion()")
if not iname in matplotFigure:
matplotCount += 1
matplotFigure[iname] = matplotCount
s("pyplot.figure(%s)" % matplotFigure[iname])
s("pyplot.close()")
del matplotFigure[iname]
s("pyplot.suptitle('%s')" % iname)
s("data = %s" % data)
s("pyplot.plot([i for i in range(len(data))], data, 'b.')")
time.sleep(0.2)
s("pyplot.draw()")
matplotProc.stdin.flush()
else:
if iname in matplotFigure:
s("pyplot.figure(%s)" % matplotFigure[iname])
s("pyplot.close()")
del matplotFigure[iname]
matplotProc.stdin.flush()
matplotProc.stdin.flush()
def matplotQuit():
matplotProc.stdin.write(b"exit")
matplotProc.kill()
devNull.close()
def matplotQuit():
matplotProc.stdin.write(b"exit")
matplotProc.kill()
devNull.close()
def arrayForms():
global hasPlot
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment