Son zamanlarda this project ile karşılaştım. Kod büyük ölçüde C dilinde yazılmıştır ve API sadece birkaç C fonksiyonundan oluşmaktadır. Ne yazık ki, proje bazı hatalar içeriyor gibi görünüyor, özellikle "çift bedava veya yolsuzluk" hataları almaya devam ediyorum. Yanlış olanı bulmak için valgrind ve gdb kullanmaya çalışıyorum. Sorun bellek ayırıcıda gibi görünüyor. Ne yazık ki, ilk valgind hatası, bir başlıkta tanımlanan bazı ~ 400 satır uzunluğunda ön işlemci makrosunda gerçekleşir. Ne yazık ki, gdb oluşturulan kodun üzerinde duramaz. Yığın izi de çok kullanışlı değil. Bu tür hatalarla baş etmek için kullanılabilecek herhangi bir teknik var mı?Bir önişlemci makrosuyla hata ayıklama
6
A
cevap
1
Çevrimiçi derleyici Wandbox.org, C önişlemcisini denemek için çok kullanışlı olan bir "CPP" moduna sahiptir. gcc -P
veya cl.exe /E
İlgili konular
- 1. Firefox'taki hata ayıklama hata ayıklama
- 2. ASP.Net Core, bir hata ayıklayıcıda hata ayıklama değil hata ayıklama
- 3. Özel bir parçacık hata ayıklama
- 4. IEnumerable bir yöntemde hata ayıklama
- 5. Uygun C önişlemci makro no-op ayıklama kaydı için
- 6. Eclipse Java Hata ayıklama dosyaları ile hata ayıklama
- 7. Eclipse kısayolu "hata ayıklama son hata ayıklama yapılandırması" (F11 değil)
- 8. Hata ayıklama üzerinde uygulama, hata ayıklama sırasında değil
- 9. Hata ayıklama 403'ler?
- 10. Hata ayıklama döngüleri
- 11. Hata ayıklama outofmemoryexception
- 12. IE8 XmlHttpRequest Hata ayıklama
- 13. Makale hata ayıklama aracı
- 14. Başlatma ekranındaki hata ayıklama
- 15. PyCharm JavaScript Hata ayıklama
- 16. Hata ayıklama, sürüm
- 17. Nasıl hata ayıklama tabindex
- 18. Xcode C++ hata ayıklama
- 19. IntelliJ'teki hata ayıklama görevi
- 20. Hata ayıklama CSS
- 21. Mobil tarayıcılarda hata ayıklama?
- 22. Hata ayıklama TargetInvocationException
- 23. Hata ayıklama Java yöntemi
- 24. ASP.NET'te hata ayıklama ASP.NET
- 25. Hata ayıklama gist-vim
- 26. Hata ayıklama metaprogramları
- 27. Hata ayıklama foreach
- 28. Win32 Hata Ayıklama Makroları
- 29. Not: Hata ayıklama şablonu
- 30. Hata ayıklama getResource *
ile https://wandbox.org/permlink/tFUsKMIXaQj8hhte
Aynı şey çevrimdışı yapabilir, Yerinde olsaydım:
burada bir örneğe bakın? Makroyu bir satır içi işleve dönüştürün. Proje gerçekten çok fazla kullanıyorsa (ve bu beni kodun kullanılmasından korkutmuyor), bir dosyaya ön işlem yapmayı ve sonra da bu dosyayı derleyip hata ayıklamayı deneyebilirim. –400 + satırları makro Oo! Önişlemci geçişinden (gcc -E seçeneği) sonra c kaynağını oluşturmaya çalışın ve bu dosyadaki kesme noktalarını ayarlayın. – Picodev
Genel bir öncelik sırasını "C yolu" olarak tanımlarlar :( – hfhc2