Delphi programlarında bu tür sorunlara neden olan kod satırlarını tespit münkündür. Bunun için Project->Options...->Linker ekranındaki Map file ayarı Detailed olarak ayarlanır. Bundan sonra her derleme işleminde uzantısı map olan bir bellek harita dosyası oluşturur.
Bu dosyada program kod satırlarınıa karşılık gelen makina kodlarının ofset adresleri yer alır. Böylece hatanın oluştuğu bellek adresinin hangi kod satırına karşılık geldiği bulunabilir.
Hatalı kod satırını daha düzgün ve ayrıntılı olarak raporlayabilmek için uLkStackTrace class'ını kullanabiliriz. uLkStackTrace Mozilla lisansıyla dağıtılan bir SourceForge.net projesi.
uLkStackTrace sınıfınınkullanıldığı örnek proje dosyasını aşağıdaki bağlantı ile indirebilirsiniz:
UnhandledExceptions_DelphiSourceCode.rar (~241KB)<
Örnek projede de görüleceği üzere, sınıfın kullanılmasından kısaca bahsetmek gerekirse;
- Uses bloğuna uLkStackTrace unit ismini ekleyin.
- İstisnaları ekrana veya bir dosyaya rapor edecek bir prosedür hazırlayın.
- LkExceptionReporter yordamına bu prosedürü atayın.
- Rapor prosedürünü Form.Create'in başına yazmayı unutmayın.