Seite 1 von 1

Idle Absturz beim Threaddebuggen

Verfasst: Mittwoch 13. Juli 2005, 09:36
von alpha
Hallo Leute,

ich weiss nicht, ob das hier der richtige Platz ist für die Frage sonst halt bitte verschieben :oops:

Beim Debuggen von folgendem Script stürzt bei mir das Idle ab, d.h. reagiert nicht mehr.
(Python 2.3 Idle 1.0.2)

Code: Alles auswählen

import thread
import time

class Main:
	def __init__(self):
		myrechner = Rechner()
		myrechner.doit(self)
		for i in range(5):
			time.sleep(1)
			print "Wait:" + str(i)
	
	def solution(self, x):
		print "Ergebnis ist: " + str(x)
	
		
		
class Rechner:
	def __init__(self):
		pass
	
	def doit(self, obj):
		thread.start_new_thread(self.__calc,(obj,))
		
	def __calc(self, obj):
		x = 5+5
		time.sleep(3)
		obj.solution(x)
		
if __name__ == '__main__':
	main = Main()

Hat jemand von euch schon die selben Erfahrungen gemacht?
Danke für eure Antworten.

alpha

Verfasst: Mittwoch 13. Juli 2005, 10:50
von Gast
nee,

ich habe gerade unter XP mit Python ver. 2.4.1 dein Code probiert, es läuft:

Vielleicht interessierst du das Ergebnis:

IDLE 1.1.1
>>> ================================ RESTART ================================
>>>
Wait:0
Wait:1
Ergebnis ist: 10Wait:2

Wait:3
Wait:4
>>>

viel Spaß bei der Fehlersuche, da ich nichts helfen kann.

Verfasst: Mittwoch 13. Juli 2005, 12:37
von alpha
Danke fürs ausprobieren, aber laufen tuts bei mir schon auch nur im Debugmodus nicht (IDLE-Debugger) Wenn ich da im Singlestep durchgeh bleibt er hängen.

alpha

Nachtrag

Verfasst: Mittwoch 13. Juli 2005, 12:48
von alpha
Ist unter python 2.4 auch so. Der Effekt tritt aber nur auf wenn man im Debugger die Häckchen [v] Source und [v] Globals auch anhakt.

alpha

Verfasst: Mittwoch 13. Juli 2005, 14:21
von Gast
Hi alpha,

ich habe gerade unter Debugger probiert:

1. Step by Step ==> OK
2. set Breakpoints & Go ==> OK
(BTW, beiden wird bei Global angehakt gewesen9
Es scheint bei der Debuger-Control Fenster so aus wie abgesturzt, da es grau dargestellt wurde, aber nicht so. In der Tat vor dem Sarten ist es auch grau dargestellt und nur aktiviert, wenn der Prozess/Programm nicht abgelaufen ist.

mfg