Debugging dengan truffle debug
Penjelasan
`truffle debug <transaction-hash>` membuka debugger interaktif berbasis CLI yang memungkinkan kita menelusuri ulang transaksi yang sudah pernah terjadi di blockchain, baris demi baris kode Solidity aslinya (bukan hanya opcode mentah). Ini berguna untuk memahami persis apa yang terjadi pada transaksi tertentu, termasuk transaksi yang revert. Di dalam sesi debug, tersedia perintah navigasi seperti `n` (next line), `i` (step into function call), `o` (step out), `;` (next opcode), serta perintah `v` untuk melihat isi variable pada baris saat ini. Debugger ini butuh source map yang dihasilkan otomatis saat kompilasi, jadi contract harus sudah dikompilasi dengan Truffle sebelum bisa di-debug.
Contoh Konsep
# Debug transaksi tertentu berdasarkan hash-nya
truffle debug 0xTRANSACTION_HASH --network development
# Perintah umum di dalam sesi debug:
# n -> lanjut ke baris berikutnya
# i -> masuk ke dalam pemanggilan fungsi
# o -> keluar dari fungsi saat ini
# v -> tampilkan variable yang terlihat di baris ini
# q -> keluar dari debugger
Praktikum
Lakukan satu transaksi withdraw lewat truffle console, catat transaction hash-nya, lalu debug transaksi itu dengan truffle debug dan telusuri variable balances di dalamnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
truffle debug butuh koneksi ke node yang menyimpan riwayat transaksi lengkap (archive) — kalau pakai Ganache, transaksi yang sudah lama atau setelah restart node tidak akan bisa di-debug lagi.