- debugger penjelajah waktu yang mudah digunakan dan mendukung berbagai bahasa pemrograman
- Merekam eksekusi program untuk membuat file trace mandiri yang bisa dibagikan, lalu memungkinkan penelusuran maju-mundur dalam eksekusi di lingkungan GUI serta melihat riwayat semua lokasi memori
- Keunggulan time travel debugging
- Bug yang sulit direproduksi dapat diselesaikan dengan mudah: jika ada rekaman eksekusi saat bug terjadi, penyebabnya dapat diidentifikasi dalam waktu kurang dari 30 menit
- Mengetahui asal suatu nilai membuat perbaikan bug menjadi lebih mudah
- Saat output tak terduga muncul di program, Anda bisa mengklik event tersebut untuk langsung melihat titik terjadinya masalah
- CodeTracer melacak dari mana nilai tersebut berasal sehingga akar penyebab bug dapat ditemukan hanya dengan beberapa langkah perpindahan
- Anda dapat dengan bebas menelusuri maju dan mundur di titik mana pun dalam eksekusi program
- Tracing menggunakan format terbuka, dan dukungan bahasa seperti Ruby dan Python sedang dalam pengembangan
- Berencana mendukung debugging bahasa pemrograman sistem seperti C/C++, Rust, Nim, D, Zig, Go, Fortran, FreePascal, dan lainnya melalui integrasi dengan backend RR
Fitur utama CodeTracer
Debugging omniscient (Omniscience)
- Dapat langsung melihat nilai variabel masa lalu dan masa depan pada baris kode tertentu saat eksekusi
- Mudah menelusuri perubahan nilai variabel di dalam loop
- Kode yang dieksekusi dan yang tidak dieksekusi dibedakan dengan jelas
Tracepoints
- Dapat langsung melihat perubahan nilai variabel dalam program tanpa menjalankan kode tambahan
- Memudahkan debugging dengan menambahkan kondisi, pemanggilan fungsi, output data, dan lainnya
Call Trace
- Bukan sekadar stack trace sederhana, melainkan menyediakan pohon pemanggilan fungsi untuk seluruh eksekusi program
- Mudah dijelajahi melalui pemfilteran dan pengurutan
Penjelajah status dan riwayat (State and History Explorer)
- Dapat melacak riwayat perubahan nilai semua variabel
- Dapat langsung berpindah ke titik kode tempat nilai variabel berubah
- Secara otomatis melacak nilai asal dari variabel yang disalin untuk mempermudah analisis bug
Log event (Event Log)
- Menyajikan event penting dalam program secara kronologis
- Mengklik event tertentu akan langsung memindahkan Anda ke kode pada saat itu
Output terminal (Terminal Output)
- Merekonstruksi output
stdout, stderr seperti terminal sehingga Anda dapat memeriksa output program yang direkam
- Dapat diklik untuk berpindah ke lokasi kode yang tepat tempat output tersebut dihasilkan
Mouse Stepping
- Dapat langsung berpindah ke bagian tertentu dari kode menggunakan mouse
- Pindah baris: klik tengah mouse (juga mendukung
Ctrl+klik)
- Masuk ke fungsi: klik ganda pemanggilan fungsi untuk masuk ke dalamnya (juga mendukung
Ctrl+Alt+klik)
- Opsi tambahan: fitur lain dapat dijelajahi melalui menu klik kanan
Scratchpad
- Dapat menyematkan nilai variabel pada titik waktu tertentu untuk dibandingkan dan dianalisis
- Membantu menganalisis masalah dengan membandingkan alur eksekusi kode secara visual
Perintah CLI CodeTracer
ct run <application> - menjalankan program dan merekamnya secara otomatis
ct record <application> - membuat file trace
ct replay - memutar ulang file trace yang telah dibuat
ct replay <program-name> - memuat rekaman eksekusi terakhir
ct replay --id=<trace-id> - menjalankan trace dengan ID tertentu
ct replay --trace-folder=<trace-folder> - menjalankan file trace dalam folder tertentu
ct help / ct --help - melihat perintah yang tersedia
ct version - memeriksa versi saat ini
Pintasan keyboard
- Pintasan bawaan dibuat agar familier bagi pengguna Visual Studio™
- Fungsi kebalikan dari fitur debugging yang ada disediakan bersama tombol
Shift (F10 = "langkah berikutnya", Shift+F10 = "langkah sebelumnya")
- Pintasan dapat disesuaikan dengan mengedit file
~/.config/codetracer/.config.yml
1 komentar
Komentar Hacker News
Keren. Dulu saya pernah punya kesempatan meminta fitur kepada para perancang prosesor Intel
Dukungan Noir masuk akal karena jejak eksekusi sangat bernilai dalam pembuktian ZK
Jika Anda memakai Clojure atau ClojureScript, saya sarankan melihat FlowStorm
Noir adalah bahasa spesifik domain untuk sistem pembuktian SNARK
Saya penasaran kenapa CodeTracer ditulis dalam dua bahasa
Saya sangat menyukainya. Saya selalu menginginkan hal seperti ini
Terlihat keren, tetapi di sistem produksi file jejak akan membesar sangat cepat
Terima kasih telah membangun ekosistem Nim
Sangat menjanjikan. Saya sudah berdonasi di Open Collective
Selamat atas peluncurannya. Sejauh ini kerjanya luar biasa