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).