Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4574
| 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 der Funktionsaufrufe in Python |
| Date | Thu, 3 Nov 2016 11:57:18 +0100 |
| Lines | 34 |
| Message-ID | <mailman.13.1478171117.7975.python-de@python.org> (permalink) |
| References | <CADAgN38bg78-K5h3UaWi2iTLYboXHK_50r1dmeGwH5JTXbGBiA@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 7M3bO+jCiAj5dy500cWUdgw3TRwvYX1FfLM8JMEB9jUQ== |
| 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=Za/24hUH4Nz0L5Jq5+QGFzKplBPge748QlQ9+abWVig=; b=mKchjtTCfyZe5KOCfOCztbDzFzESDsa3mUqyBrP5uGhA7PWIG3fnGWdTW6tol9kDMb jNHfK7UxJ1UkaajU0C//cjWyut8XfE3/SCOfIEARqKZyfOEut1FQBCFVDoSJzKKOc+4h cb8DTdpljichvxR5EPlwHKKq7Kb3rWWO80+ZsSlXGwIgJpfPXuFKnzh9gwWHRKLhDWIl SxAVSfxzFela9pjhZZJrATNx2K1Qbcgr1xcpH9pugqPIceuQ84hNKSxXPEhjZvqakSn5 JiGzYRzJsEzYIb9P6c3rHrej8r1V7MBBOp/AFl8foslXjBfLzDzKVA3w5eHORd31rGCP bftg== |
| 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=Za/24hUH4Nz0L5Jq5+QGFzKplBPge748QlQ9+abWVig=; b=dfZ2BUa7QCj/pgkdCDgMH5sYq57jwAXjwKSqnzWR7lWEJiusVwwBbeFPtqLVDnMOSe yxJ2wt9ZdAj3CyKMDXmsHc7fWzqAU6jOoe9/B+3UlIZN+eisy9ixRZXABvU1t8TvH2/N CVADwNBIUckefvLjJaCagQdx+1wMZ/2aaF2ZM9VA+XZa8WmY5c2QjpNvYjpZFyPrVjWV 1G0niAsoMzPM3IszvNIH+LgwCVCiDWAJ6xvKyaQIrQqpSJwraMDjMvCwrrH/2cmfDT8V 0KLydql+OZ0dImojm1jW7l2xEZEgGH3566nDPLMeY02xdsfxv19YhAy2npoId8ZAyWML SMgA== |
| X-Gm-Message-State | ABUngvdqIB3XK/cKk0N+Hgjcett8kjBu/AlIgNjdVy6PUGDpxv1mvAKC6oTw11gbMuTq7nwYBBxbaqrbaPIc6w== |
| X-Received | by 10.107.190.195 with SMTP id o186mr7990851iof.95.1478170638827; Thu, 03 Nov 2016 03:57:18 -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 | <CADAgN38bg78-K5h3UaWi2iTLYboXHK_50r1dmeGwH5JTXbGBiA@mail.gmail.com> |
| Xref | csiph.com de.comp.lang.python:4574 |
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 pdb, vmprof, dem Bauen CPythons mit dem debug flag 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. Kennt jemand mögliche Techniken / Module, die mir dies ermöglichen, oder ist es wirklich nur durch Studium des Interpreter-Quellcodes möglich? -- Mit freundlichen Grüßen/best regards Christian Junker
Back to de.comp.lang.python | Previous | Next | Find similar
[Python-de] Tracing der Funktionsaufrufe in Python Christian Junker <christianjunker@gmail.com> - 2016-11-03 11:57 +0100
csiph-web