Perisian Counters Mode rr: Penyahpepijatan Rakam dan Ulang Kini Berfungsi dalam VM Awan dan Kontainer

BigGo Editorial Team
Perisian Counters Mode rr: Penyahpepijatan Rakam dan Ulang Kini Berfungsi dalam VM Awan dan Kontainer

Penyahpepijatan rakam dan ulang adalah teknik berkuasa yang membolehkan pembangun merakam pelaksanaan program dan mengulangnya dengan tepat, menjadikan ia lebih mudah untuk mengesan pepijat yang sukar ditemui. Walau bagaimanapun, salah satu alat sumber terbuka yang paling popular untuk tujuan ini, rr, mempunyai satu batasan penting: ia memerlukan akses kepada pembilang Prestasi Perkakasan CPU, yang biasanya dimatikan dalam VM awan dan persekitaran kontainer. Satu penemuan baharu bertujuan untuk mengubah keadaan ini.

Software Counters Mode Membawa rr ke Lebih Banyak Persekitaran

Penyahpepijat rr telah diubahsuai untuk berjalan tanpa memerlukan akses kepada pembilang Prestasi Perkakasan CPU, menjadikannya boleh digunakan dalam mesin maya awan dan kontainer di mana akses sedemikian biasanya terhad. Varian baharu ini, dipanggil Software Counters mode rr, menggunakan instrumentasi dinamik dan statik yang ringan untuk menjejaki pelaksanaan program berbanding bergantung pada pembilang perkakasan. Perkembangan ini membuka penyahpepijatan rakam dan ulang kepada lebih banyak persekitaran, berpotensi menyelesaikan salah satu halangan terbesar yang dihadapi pengguna dengan rr.

Saya telah cuba SANGAT keras untuk membuat rr berfungsi untuk saya, termasuk membeli PC berasingan hanya untuk menggunakannya... tetapi ia secara konsisten gagal, jadi saya pada dasarnya telah meninggalkannya. Sesuatu seperti ini pasti akan menjadi penyelamat.

Pengubahsuaian ini menangani cabaran asas dalam sistem rakam/ulang: menjejaki kemajuan pelaksanaan program untuk memastikan ulangan yang tepat. rr tradisional menggunakan pembilang prestasi perkakasan (seperti mengira arahan cabang CPU) untuk mengukur kemajuan ini, tetapi Software Counters mode rr mencapai matlamat yang sama melalui instrumentasi kod.

Pertukaran dan Batasan Semasa

Walaupun penemuan ini mengembangkan kebolehgunaan rr, ia datang dengan beberapa pertukaran. Menurut pembangun, Software Counters mode adalah lebih perlahan daripada menggunakan pembilang perkakasan disebabkan oleh overhed instrumentasi dinamik dan statik. Pendekatan ini juga mungkin memperkenalkan beberapa kerapuhan kepada proses rakam/ulang.

Buat masa ini, hanya sokongan x86-64 telah dikeluarkan secara umum, walaupun pembangun menyebut mempunyai sokongan aarch64 yang berfungsi secara dalaman. Satu lagi batasan adalah bahawa Software Counters mode rr pada masa ini hanya berjalan pada pengedaran Linux terkini dengan sokongan debuginfod yang kukuh, termasuk Fedora 40/41, Debian Unstable, dan Ubuntu 24.10.

Walaupun dengan batasan ini, respons komuniti telah bersemangat, dengan ramai pengguna bersemangat untuk mencuba versi rr yang berfungsi dalam persekitaran di mana alat asal gagal. Keupayaan untuk menggunakan penyahpepijatan rakam/ulang dalam VM awan boleh menjadi sangat berharga kerana lebih banyak kerja pembangunan beralih kepada persekitaran berasaskan awan.

Batasan Utama Mod Pengira Perisian rr

  • Prestasi: Lebih perlahan berbanding penggunaan rr dengan pengira Perkakasan disebabkan oleh overhed instrumentasi
  • Kerapuhan: Instrumentasi dinamik dan statik boleh menjadikan rakaman/main semula lebih rapuh
  • Sokongan platform: Buat masa ini hanya senibina x86-64 yang disokong secara umum
  • Keperluan pengedaran: Hanya boleh dijalankan pada pengedaran Linux terkini dengan sokongan debuginfod yang mantap:
    • Fedora 40/41
    • Debian Unstable
    • Ubuntu 24.10
  • Batasan yang dikongsi dengan rr asal: Tiada sokongan io_uring

Prospek Masa Depan dan Integrasi

Pada masa ini tiada rancangan muktamad untuk menggabungkan Software Counters mode kembali ke dalam projek utama rr. Pembangun menyatakan bahawa pengubahsuaian ini memperkenalkan pendekatan yang ketara berbeza untuk pengiraan tik melalui instrumentasi dinamik/statik, yang mewakili perubahan besar daripada metodologi tradisional rr.

Pembangun menggalakkan pengguna untuk mencuba perisian ini dan melaporkan pengalaman mereka, mencadangkan bahawa dengan maklum balas positif yang mencukupi, kes yang lebih kuat boleh dibuat untuk integrasi hulu. Sesetengah pengguna juga telah bertanya tentang keserasian dengan alat lain dalam ekosistem, seperti Pernosco (platform penyahpepijatan yang dibina di atas rr), yang mungkin memerlukan pengubahsuaian teknikal untuk menyokong rakaman dengan tik lembut.

Perlu diingat bahawa batasan tertentu rr asal masih tidak berubah dalam Software Counters mode. Sebagai contoh, sokongan io_uring masih tiada disebabkan cabaran asas dalam cara rr berinteraksi dengan sempadan kernel/ruang pengguna.

Bagi pembangun yang berminat untuk mencuba Software Counters mode rr, kod tersedia di https://github.com/sidkshatriya/rr.soft, bersama dengan dokumentasi terperinci tentang cara ia berfungsi dan cara untuk membina dan menjalankannya.

Rujukan: Bringing Record and Replay everywhere