Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4575

[Python-de] Tracing von Funktionsaufrufen

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Christian Junker <christianjunker@gmail.com>
Newsgroups de.comp.lang.python
Subject [Python-de] Tracing von Funktionsaufrufen
Date Thu, 3 Nov 2016 12:14:44 +0100
Lines 36
Message-ID <mailman.14.1478171688.7975.python-de@python.org> (permalink)
References <CADAgN3-hthxwdGtQ7DPyHLRR_v5gbNUyTH_-n2NfrfwpeY3Eeg@mail.gmail.com>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding quoted-printable
X-Trace news.uni-berlin.de TsXm4Y7N7hM2k7haIGmQMw+YPaoWpxdCoqElnJOv6hpQ==
Return-Path <christianjunker@gmail.com>
X-Original-To python-de@python.org
Delivered-To python-de@mail.python.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=odZY5Mb1tRtgfUxo3W2K3khwIkK7PlTUXinQcG5mpZg=; b=Gm/5GOBV2WLV75h7sawNPfRFX/mrSsvh/fVeZOVNNYxdeuZ6lWY4f76q3Lx+QLwsUz Q8PPU1Pq4I6VwpeC/GoSqQ6/KtcwgGNln2pyIvCjNnaWezVhMPB8pc1xqaqFRUzEi4y1 BVXMAUzoeEOayawkodeVAVEwwCiNRj0Rilp288QHoZ7Nw/P2SpF1jgjqTr58nfr/keKK xCCDkJA8fHb6i8w4kBDCESjjrra8H0Wc0bV0PHo+Osg8E4jMdmMhP0DRdAkQk2hJUTtk og4hzMSOB6r4587gZfZrXZIXtTEKEZn8Qw3FgS4mSRNFQcz3f3VgNfZCGDA5r/+bOZQX nDGg==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=odZY5Mb1tRtgfUxo3W2K3khwIkK7PlTUXinQcG5mpZg=; b=JCbj4lDzjsTmd+h4TFUMqZYwz0Iz67G/oLC6JPzjds/BJfb7BocvUgXlY2fOp0T6wE cjUM0HyWnHeU5KAMel4cEUFhGJ9qhdnJ9ZWZIjzXdr9Dh4T8ckomH+Zr7HXni/2f9pOL F1QCB+G75lBzhc7S/d4m41bqBQqYF88dkrv8LVaGDLgejtp3mDy2xoY6gWgJrVg9mQfO k2RCZWgYO/sqDJpUxxYKZfmtcjEb0rSsg47OI2aQUk4r1qV/5Yr78J4Xqz6o9jNpeN3g yMr1ki8fxM3jDHUJLCir39KZsjYW4NEWlZ2Pawc/+uHM8ed/ztS7andb9DxEpaqCfQKn io4w==
X-Gm-Message-State ABUngvd3rw6mnpqhPAKjYhRTdjq7Ggj3RsegF36w+Dx9nCZiEyL2Ay5eA+12SCdYpJ16SkmnF3Esk4qBoWIzKQ==
X-Received by 10.107.35.11 with SMTP id j11mr8210711ioj.68.1478171684914; Thu, 03 Nov 2016 04:14:44 -0700 (PDT)
X-BeenThere python-de@python.org
X-Mailman-Version 2.1.23
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-de/>
List-Post <mailto:python-de@python.org>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID <CADAgN3-hthxwdGtQ7DPyHLRR_v5gbNUyTH_-n2NfrfwpeY3Eeg@mail.gmail.com>
Xref csiph.com de.comp.lang.python:4575

Show key headers only | View raw


Hallo zusammen,

ich interessiere mich dafür, welche Python Funktion/Methode welche C
Funktionen im Kern des CPython Interpreters aufruft (voller Call
Stack) und zusätzlich auch für das Profiling dieser C Funktionen.
Leider konnte ich bisher für diesen Zweck kein Modul finden.

Nehmen wir das Beispiel der print Funktion in Python3. Letztlich ruft
diese, wenn ich den Source Code CPythons richtig verstehe die Funktion
builtin_print (definiert in Python/bltinmodule.c) auf. Diese Funktion
wiederum nutzt Funktionen aus der Python C API, wie bspw.
PyArg_ParseTupleAndKeywords zum Auslesen der übergebenen Parameter,
oder PyFile_WriteObject zum Schreiben des Inputs in den entsprechenden
Outputstream. PyFile_WriteObject wiederum holt sich das Attribut
"write" des Outputstream Objekts und ruft dann PyEval_CallObject
darauf auf, usw.

Ein Modul, das mir diesen Function Stack transparent machen plus ein
bis auf die C Ebene aufgeschlüsseltes Profiling anbieten würde, wäre
eine feine Sache. Bisher habe ich mich ohne Erfolg an python -d, pdb,
vmprof und ltrace versucht. Sicherlich gäbe es die Möglichkeit mittels
gdb oder valgrind an diese Call Stacks heranzukommen, aber diese Tools
sind nicht gerade leichtgewichtig und auch nicht platformübergreifend
nutzbar.

Kennt jemand mögliche Techniken / Module, die mir dies ermöglichen,
oder ist es wirklich nur durch Studium des Interpreter-Quellcodes und
den schwergewichtigen externen Tools (die natürlich nicht auf dem
Zielsystem zur Verfügung stehen) möglich?

-- 
Mit freundlichen Grüßen/best regards
Christian Junker

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

[Python-de] Tracing von Funktionsaufrufen Christian Junker <christianjunker@gmail.com> - 2016-11-03 12:14 +0100

csiph-web