2012-06-20 16 views
5

Hata ayıklamak istediğim OpenSSL'den (özellikle SSL_read) gelen bir segfault var. Buraya gelmek için en iyi adımın, debug sembolleri ile kütüphaneyi kendim inşa etmekti. Bana kütüphanenin nasıl yapılacağı açık değildir ve b) hata ayıklama sembollerini vermek için makefile kesmek. Herkes bu özel kütüphaneyle bunu deneyimliyor mu, yoksa bu tür bir kurgu ve modifikasyon yaklaşımıyla ilgili genel ilkeler var mı?Linux'ta OpenSSL'yi hata ayıklamak için -g ile oluşturun

./config -d 
Operating system: x86_64-whatever-linux2 
This system (debug-linux-x86_64) is not supported. See file INSTALL for details. 

burada ne yapacağını emin değil:

bu hatayı aldım. OS bilgisi:

$ cat /proc/version 
Linux version 3.2.0-24-virtual ([email protected]) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.31ubuntu5)) #37-Ubuntu SMP Wed Apr 25 10:17:19 UTC 2012 
$ uname -srvio 
Linux 3.2.0-24-virtual #37-Ubuntu SMP Wed Apr 25 10:17:19 UTC 2012 x86_64 GNU/Linux 

cevap

4

Basit talimatları OpenSSL'yi oluşturmak için here söz takip edebilirsiniz. Hata ayıklama oluşturmak için, ./config, yani ./config -d [other options]'u çalıştırdığınızda -d bayrağını ekleyin. OpenSSL binasının ayrıntılı olarak here numaralı belgeden bahsedilmiştir.

+0

işe yaramadı - Benim asıl soruya – djechlin

+0

son sürümü ile tekrar denenecek çıktı yayınlanmıştır ... Ben dumbly sen 0.9.8c geçerli iken yazıldığı yayınlanan ilk kılavuzu takip sanırım. – djechlin

+0

Tamam. Oradan geçip geçtim, anladım. – djechlin

1

düzenli Yapılandırma adımından çalıştırdıktan sonra, kabuğundan aşağıdakileri yapın:

$ find . -name Makefile | xargs sed -i -e 's#-O3#-g#g' 

Bu oluşturulan makefiles değiştirir; -O3 en iyileştirme seçeneği yerine -g seçeneğini koyar (hata ayıklama sembolleri oluşturur).

2

OpenSSL'nin yeni sürümlerinde, iletilen bayraklar gibi görünür./Konfigürasyon, derleme sırasında doğrudan gcc hattına enjekte edilir. Sadece ./Configure -g linux-x86_64 yaptım ve derlememde hata ayıklama sembollerini başarıyla aldım.

İlgili konular