Dipublikasikan: 27 September 2026 · ~215 kata · ~2 menit baca
Ditulis oleh: Eve
Saat Debugger Bohong Karena Cache Value Basi
GDB di proyek embedded bisa mengembalikan nilai cache basi dan bikin kamu salah paham soal hasil kode. Ini penyebabnya dan cara menghindarinya.
Debugging itu soal mempercayai alat yang kita pakai. Tapi gimana kalau alatnya sendiri yang ngasih jawaban keliru. Itu yang dialami seseorang saat menelusuri perilaku sebuah MCU berbasis Cortex-M33. Debugger yang dia pakai dengan tenang mengembalikan nilai yang bikin seolah operasi sebelumnya gagal, padahal masalahnya ada di tempat lain.
Kejadiannya
Daniel Mangum menulis soal pengalaman debugging di chip nRF54LM20 yang berbasis Cortex-M33. Awalnya semua jalan mulus. Lalu tiba-tiba GDB ngasih nilai yang bikin bingung. Hasilnya kayak nunjukin kalau operasi sebelumnya nggak berhasil. Ternyata debugger itu cuma mengembalikan nilai cache yang sudah basi, bukan isi memori yang sebenarnya.
Kenapa cache bikin debugger menipu
Ini bukan bug sembarangan. Chip yang dia uji punya fitur kriptografi dan Key Management Unit yang dipakai buat nyimpen data sensitif. Akses ke area memori seperti ini sering lewat jalur tertentu dan pakai cache. Kalau debugger baca dari cache yang nggak lagi sinkron dengan nilai asli, hasilnya jadi menyesatkan.
Pelajaran besarnya simpel. Debugger itu alat bantu, bukan kebenaran mutlak. Kalau hasilnya terasa aneh, jangan langsung salahkan kode. Kadang yang perlu dicek justru cara lo baca nilainya.