digilib@itb.ac.id +62 812 2508 8800

2009 TA PP CHANDRA GONDOWASITO 1-COVER.pdf

File tidak tersedia

2009 TA PP CHANDRA GONDOWASITO 1-BAB 1.pdf
File tidak tersedia

2009 TA PP CHANDRA GONDOWASITO 1-BAB 2.pdf
File tidak tersedia

2009 TA PP CHANDRA GONDOWASITO 1-BAB 3.pdf
File tidak tersedia

2009 TA PP CHANDRA GONDOWASITO 1-BAB 4.pdf
File tidak tersedia

2009 TA PP CHANDRA GONDOWASITO 1-BAB 5.pdf
File tidak tersedia

2009 TA PP CHANDRA GONDOWASITO 1-PUSTAKA.pdf
File tidak tersedia

Dalam Tugas Akhir ini, telah dikembangkan prototipe perangkat lunak untuk mendeteksi kesalahan penggunaan memori dinamis. Detektor yang diberi nama InspekC ini mampu mendeteksi memory leak, double free, dan dangling access pada program dalam bahasa C.Pendeteksian ini sangat diperlukan karena selain menunjukkan kekurangan dari program, kesalahan penggunaan memori dinamis ini mangancam keberlangsungan program serta dapat memicu unauthorized program execution. Sementara itu, kebanyakan pendeteksi tidak mencakup memory leak, double free, dan dangling access sekaligus, kurang efektif karena banyaknya false positive maupun false negative yang dihasilkan, atau kurang efisien dari sisi memori dan waktu analisis.Untuk mendeteksi ketiga masalah ini, InspekC merunut percabangan yang dilalui oleh semua pointer yang mengacu ke object. Untuk memperoleh value flow dari object, dilakukan analisis reaching definition yang dimodifikasi dengan menganggap dealokasi sebagai sebuah definisi baru dan dengan menganotasi def-use chain dengan path. Kandidat path terjadinya memory leak diperoleh dari def-use graph dengan menentukan kondisi percabangan yang tidak ditemui dealokasi. Kandidat double free diperoleh dengan mencari dealokasi yang dapat dicapai dari delokasi yang lain pada def-use chain dan kandidat path untuk dangling access adalah dereference yang dapat dicapai dari delaokasi. Selanjutnya, dianalisis apakah error trace tersebut mungkin terjadi dengan mengevaluasi hasil dari tiap tes kondisi percabangan pada error trace.InspekC telah diujikan terhadap berbagai kasus dan beberapa program kode terbuka. Detektor ini mampu mendeteksi memory leak, double free, dan dangling aceess dengan lebih cepat dibandingkan dengan beberapa detektor lain dan menghasilkan false positive di bawah 20%. Beberapa false positive yang terjadi dikarenakan ketidakakuratan dalam menangani aritmatika pointer dan karena analisis dimulai dari allocation site sehingga statement sebelumnya tidak diperhitungkan.