GNU/Linux >> Belajar Linux >  >> Linux

Cara Melacak Skrip Python menggunakan trace.py

Semakin banyak skrip untuk tugas administratif di OS Linux yang ditulis oleh Python. Posting ini bertujuan untuk memperkenalkan alat untuk melacak eksekusi pernyataan Python. Python adalah bahasa pemrograman berorientasi objek dinamis yang dapat digunakan untuk mengembangkan berbagai jenis perangkat lunak. Ini menawarkan dukungan kuat untuk integrasi dengan bahasa dan alat lain dan dilengkapi dengan perpustakaan standar yang luas. Dalam distribusi Linux, Python banyak digunakan untuk menulis alat administratif, seperti paket konfigurasi printer, dll.

Menelusuri eksekusi pernyataan Python dan merekam semua kode yang berjalan baris demi baris sangat berguna untuk menemukan penyebab masalah secara efisien.

Untungnya, paket python dilengkapi dengan alat trace.py , yang dapat digunakan untuk memenuhi kebutuhan tersebut. Trace.py berada di direktori /user/lib/python2.x, di mana python2.x adalah versi python (misalnya python2.3 dan python2.4 dll.)

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

Misalnya, untuk melacak /usr/sbin/printconf-backend, perintahnya adalah sebagai berikut:

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

Ini akan menampilkan semua informasi debug dan kode sumber skrip python di konsol. Kita dapat merekam semua output sebagai berikut.

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

Kemudian periksa /tmp/printerconf.log berkas.

Catatan :Secara default trace.py tidak memiliki izin eksekusi. Jadi perlu memberikan izin eksekusi sebelum melakukan instruksi di atas.

Opsi Lainnya Trace.py

Menggunakan opsi –help menunjukkan informasi penggunaan secara detail untuk trace.py. Misalnya:

$ /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. Bagaimana cara menghentikan proses dari Python menggunakan pid?

  2. Bagaimana cara Keluar dari terminal Linux menggunakan skrip Python?

  3. Bagaimana cara default Python3.8 di Mac saya menggunakan Homebrew?

  1. Cara menginstal Python di Linux

  2. Cara menjalankan skrip Python dari shell

  3. Cara:Pemrograman Socket dengan Python

  1. Cara Meningkatkan Python ke 3.9

  2. Cara Menginstal Python 3 Pada CentOS 7 Menggunakan SCL

  3. Cara membuat user di linux menggunakan python