GNU/Linux >> Znalost Linux >  >> Linux

Jak trasovat Python skripty pomocí trace.py

Python píše stále více skriptů pro administrativní úlohy na OS Linux. Tento příspěvek si klade za cíl představit nástroj pro sledování provádění příkazů Pythonu. Python je dynamický objektově orientovaný programovací jazyk, který lze použít k vývoji různých typů softwaru. Nabízí silnou podporu pro integraci s jinými jazyky a nástroji a je dodáván s rozsáhlými standardními knihovnami. V linuxových distribucích se Python široce používá k psaní administrativních nástrojů, jako je konfigurační balíček tiskárny atd.

Sledování provádění příkazu Pythonu a záznam všech spuštěných kódů řádek po řádku je velmi užitečné pro efektivní nalezení příčiny problému.

Naštěstí balíček python přichází s nástrojem trace.py , které lze použít ke splnění těchto požadavků. Soubor trace.py se nachází v adresáři /user/lib/python2.x, kde python2.x je verze pythonu (např. python2.3 a python2.4 atd.)

# rpm -ql python |grep trace.py
/usr/lib/python2.3/trace.py
/usr/lib/python2.3/trace.pyc
/usr/lib/python2.3/trace.pyo

Například pro trasování /usr/sbin/printconf-backend je příkaz následující:

# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend

Zobrazí všechny informace o ladění a zdrojový kód skriptu python na konzole. Veškerý výstup můžeme zaznamenat následovně.

# script /tmp/printerconf.log
# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend
# exit
#

Poté zkontrolujte /tmp/printerconf.log soubor.

Poznámka :Ve výchozím nastavení nemá trace.py žádné oprávnění ke spuštění. Před provedením výše uvedených pokynů je tedy nutné udělit povolení k provedení.

Další možnosti Trace.py

Pomocí volby –help zobrazíte podrobné informace o použití pro trace.py. Například:

$ /usr/lib/python2.3/trace.py --help
Usage: /usr/lib/python2.3/trace.py [OPTIONS]  [ARGS]

Meta-options:
--help                Display this help then exit.
--version             Output version information then exit.

Otherwise, exactly one of the following three options must be given:
-t, --trace           Print each line to sys.stdout before it is executed.
-c, --count           Count the number of times each line is executed
                      and write the counts to .cover for each
                      module executed, in the module's directory.
                      See also `--coverdir', `--file', `--no-report' below.
-l, --listfuncs       Keep track of which functions are executed at least
                      once and write the results to sys.stdout after the
                      program exits.
-r, --report          Generate a report from a counts file; do not execute
                      any code.  `--file' must specify the results file to
                      read, which must have been created in a previous run
                      with `--count --file=FILE'.

Modifiers:
-f, --file=     File to accumulate counts over several runs.
-R, --no-report       Do not generate the coverage report files.
                      Useful if you want to accumulate over several runs.
-C, --coverdir=  Directory where the report files.  The coverage
                      report for . is written to file
                      //.cover.
-m, --missing         Annotate executable lines that were not executed
                      with '>>>>>> '.
-s, --summary         Write a brief summary on stdout for each file.
                      (Can only be used with --count or --report.)

Filters, may be repeated multiple times:
--ignore-module= Ignore the given module and its submodules
                      (if it is a package).
--ignore-dir=    Ignore files in the given directory (multiple
                      directories can be joined by os.pathsep).


Linux
  1. Jak spouštět skripty Pythonu ze shellu

  2. Jak nainstalovat Python 3 na CentOS 7 pomocí SCL

  3. Jak ukončit proces z Pythonu pomocí pid?

  1. Jak nainstalovat Python na Linux

  2. Jak na to:Programování soketů v Pythonu

  3. Jak nastavit výchozí Python3.8 na mém Macu pomocí Homebrew?

  1. Jak upgradovat Python na 3.9

  2. Jak vytvořit uživatele v linuxu pomocí pythonu

  3. Jak ukončit terminál Linux pomocí skriptu Python?