Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Stefan Behnel Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Tracing mit hunter macht Laune Date: Fri, 25 Jan 2019 08:14:14 +0100 Lines: 40 Message-ID: References: <1422843c-8e11-a526-966a-eff74a3cb136@thomas-guettler.de> <699d7cca-6a21-4844-7575-8f12ae3e794f@bakera.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de keQMZLL5UgKz08UKR1BPPwLzWBF6KwSEzW/D7VgfqbBA== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1548401198; s=strato-dkim-0002; d=behnel.de; h=In-Reply-To:Date:Message-ID:From:References:To:Subject: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=XS/TzRZRb9JDjG2pd1MDxDy/pYTUUNmrrLNIjpr5bLo=; b=hJiQDDCqdGYDi2zirp6f0atX9Vb++nn2bolD7ahH/BH+JetWFr2S0THsfonpGLtNwi BBvSWSjpqhac2hSY9foNIPhiRnkwks72KQcnNexVjOHXIEcH47zn/egGWGvqzeLoZRm4 J7Sp0ZnaNwSfarh5NxLNCJz6vu3QJ7Ih3B8+lSSLmoAEF0fZlaYQZswGzJ+4qpst0Se4 J+bvpiTe9bQYbU1eawTawOpUAUfwNP1t/A4s1qbjjZurnlBo0tTTzfjyc97Ft+h8l9XX EIjTrQh+azvtcS1Yip7p/KAB81FlXrs2yyYvMbIR2QR67qF0ntor/nQfQZtF4AKLHd0g Obng== X-RZG-AUTH: ":E1MMdFW4b++AXZOTwA41DOYM0Dv9LNWvavC/fJZ6Wfgmp/Lh1ANWCRaaq2R1hCooD/t2Vl9QOFcfNKKMu3H63nKVrhvigl5uLImxUuR5PYb5awT9" X-RZG-CLASS-ID: mo00 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 In-Reply-To: <699d7cca-6a21-4844-7575-8f12ae3e794f@bakera.de> Content-Language: de-DE X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: <1422843c-8e11-a526-966a-eff74a3cb136@thomas-guettler.de> <699d7cca-6a21-4844-7575-8f12ae3e794f@bakera.de> Xref: csiph.com de.comp.lang.python:5414 Marco Bakera schrieb am 24.01.19 um 17:49: > Ich kann mich an einen Post-Mortem-Debugger für Java erinnern, mit dem > ich nach dem Fehler "zurückspulen" und Variablen aus vorherigen > Zeitpunkten anschauen konnte. Ob es das auch für Python gibt? Besonders > für nebenläufige Anwendungen war dieses Tool äußerst nützlich. Das PyPy-Projekt hat mal sowas gebaut: https://morepypy.blogspot.com/2016/07/reverse-debugging-for-python.html Wenn dein Programm also mit PyPy funktioniert, kannst du es dir mit ihrem "revpdb" ansehen. > Auch der Debugger von Smalltalk bzw. Pharo gefällt mir gut. Dort kann > ich zur Laufzeit das Programm verändern und mit den Änderungen direkt > weiterarbeiten, ohne das Programm neu starten zu müssen. Auf diese Weise > lässt sich sogar eine fehlende Klasse/Methode/... ergänzen und > Test-Driven-Development mit Spaß erleben. Auch das wäre eine schöne > Ergänzung für Python. Wenn du den Code verändern möchtest, ist mir da zumindest nichts bekannt. Würde theoretisch gehen, da Python auch nur Bytecode ausführt, der sich verändern ließe. Den quasi dem laufenden Interpreter unter den Füßen wegzuziehen ist aber grundsätzlich nicht ganz ungefährlich, müsste also vermutlich direkt von CPython unterstützt werden. Allgemein hat Python aber den Vorteil, dass das Neustarten eines Programms in der Regel recht schnell geht. Vielleicht braucht das Herstellen des zu untersuchenden Programmzustands dann mehr Zeit, aber auch das hält sich meist in Grenzen, wenn die richtigen Haltepunkte erstmal gefunden sind (was bis zu dem Zeitpunkt, wo du das Programm verändern wollen würdest, ja vermutlich der Fall ist). Die Möglichkeit zur Programmänderung im Debugger ist also bei Python weniger "notwendig" als sie es bei kompilierten Sprachen mit schwerfälliger Laufzeitumgebung (hüstel, Java, hüstel) wäre. So ein Feature macht natürlich was her, aber wirklich gebraucht oder vermisst habe ich es in Python nie. Stefan