Ben hata ayıklama MS VC++ 6.0'da bazı kod var. Bazı nedenlerden ötürü, dinamik olarak ayrılmış bir belleği silmeye çalıştığım bu noktada, kırılıyor ve "Kullanıcı Aracısı blah blah'ta koddan aradı" diyen bir mesaj kutusu açıyor. Sonra Demontaj penceresi açılır veKullanıcı Breakpoint hiçbir yerde
*memory address* int 3
garip şey, böyle bir montaj talimatı arıyorum kodunda NOWHERE orada görmek (Ben asm düşünüyorum 3 int x86 bir donanım molası komutu mi?) ..
neyi buna neden olabilir?
DÜZENLEME: CEVAP: Kodumun bir dizinin "sonunda bitmesi" idi, ancak yalnızca Visual Studio hata ayıklaması, NoMan'sLand çiti adı verilen 0xFDFDFDFD ile işaretlendi. Off-by-one hatası .. Bu dizi, hata oluştuğunda belleği serbest bıraktığım nokta ile ilgisizdi. Hangisi daha zor noktaya yapılan .. :(
Sadece merak ediyorum - hata ayıklama yığınının neye benzediğini öğrenmek veya başka bir araç/teknik yardımı yapmak için montaj talimatlarını tek adım yaparak bunu buldunuz mu? –
http://www.highprogrammer.com/alan/windev/visualstudio.html adlı bu siteye baktım: 0xFDFDFDFD, MSVC++ hata ayıklayıcısını, bir dizideki bir sınırı belirtmek için kullanılan bir bellek değeridir. bir hata .. İşaretçilerimi kontrol ettim ve tek tek iterasyonların içinden adım attı .. – krebstar
kaynak kodu ve benim dizilerden birini doğru şekilde sınırlamamış olduğunu fark ettim .. Sanırım bu sadece benim işaretlerimi doğru bir şekilde kontrol etmem gerekiyordu :) – krebstar