Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4575
| 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
[Python-de] Tracing von Funktionsaufrufen Christian Junker <christianjunker@gmail.com> - 2016-11-03 12:14 +0100
csiph-web