dis Module là disassembler của Python. Nó chuyển đổi byte code thành một định dạng chính xác hơn cho người dùng. Bạn có thể chạy disassembler này từ command line. Nó thông dịch script đã cho và in byte code đã được tách tới STDOUT. Bạn cũng có thể sử dụng nó như là một Module. Hàm dis nhận một lớp, phương thức, hàm hoặc đối tượng code như là tham số đơn của nó. Ví dụ:
import dis def sum(): vara = 10 varb = 20 sum = vara + varb print "vara + varb = %d" % sum # Goi ham dis. dis.dis(sum)
Kết quả là:
6 0 LOAD_CONST 1 (10) 3 STORE_FAST 0 (vara) 7 6 LOAD_CONST 2 (20) 9 STORE_FAST 1 (varb) 9 12 LOAD_FAST 0 (vara) 15 LOAD_FAST 1 (varb) 18 BINARY_ADD 19 STORE_FAST 2 (sum) 10 22 LOAD_CONST 3 ('vara + varb = %d') 25 LOAD_FAST 2 (sum) 28 BINARY_MODULO 29 PRINT_ITEM 30 PRINT_NEWLINE 31 LOAD_CONST 0 (None) 34 RETURN_VALUE
pdb Module là Debugger chuẩn của Python. Nó được dựa trên bdb Debugger Framework.
Bạn có thể chạy Debugger này từ command line (gõ n hoặc next để tới dòng tiếp theo và help để lấy danh sách các lệnh có sẵn).
Trước khi bạn chạy pdb.py, thiết lập path của mình một cách thích hợp tới thư mục Python lib. Sau đó bạn có thể thử ví dụ sum.py trên.
$pdb.py sum.py > /test/sum.py(3)<module>() -> import dis (Pdb) n > /test/sum.py(5)<module>() -> def sum(): (Pdb) n >/test/sum.py(14)<module>() -> dis.dis(sum) (Pdb) n 6 0 LOAD_CONST 1 (10) 3 STORE_FAST 0 (vara) 7 6 LOAD_CONST 2 (20) 9 STORE_FAST 1 (varb) 9 12 LOAD_FAST 0 (vara) 15 LOAD_FAST 1 (varb) 18 BINARY_ADD 19 STORE_FAST 2 (sum) 10 22 LOAD_CONST 3 ('vara + varb = %d') 25 LOAD_FAST 2 (sum) 28 BINARY_MODULO 29 PRINT_ITEM 30 PRINT_NEWLINE 31 LOAD_CONST 0 (None) 34 RETURN_VALUE --Return-- > /test/sum.py(14)<module>()->None -v dis.dis(sum) (Pdb) n --Return-- >(1)<module>()->None (Pdb)
» Tin mới nhất:
» Các tin khác: