2012-09-01 21 views
5

Yürütücümde birçok yerde dağılmış üçüncü bölüm kitaplığı işlev çağrısı var. Yürütülebilirim hata ayıklama simgelerini kullanarak oluşturulmuştur, ancak üçüncü taraf kitaplığı hata ayıklama sembollerine sahip değildir, bu nedenle işleve bir kesme noktası yerleştiremiyorum. Çağrı yığınını incelemek için kütüphane fonksiyonu çağrıldığında bir kesme noktası koymak istiyorum. Yürütümdeki bir kütüphane işlev çağrısının tüm çağrılarında bir kesme noktası nasıl ayarlayabilirim.Bir işlevin tüm çağrılmaları için gdb'de kesme noktası nasıl ayarlanır?

+0

Linker, hata ayıklama sembolleri olmadan bile işlevin isim -> adres eşlemesini bilmek zorunda kalacak gibi görünüyor, bu yüzden neden üzerine bir kesme noktası koyamayacağınızı anlayamıyorum. Kesme noktasını yerleştirdikten sonra yüklenen paylaşılan kitaplıkta olmadığından emin misiniz? –

cevap

4

tek yolun olduğunu düşünüyorum:

  • kodunuzda bu işlevin herhangi bir çağrı bulmak;
  • Bu satırda bir kesme noktası oluşturun;
  • Hata ayıklayıcıyı çalıştırın ve orada durun; İlk fonksiyon komutuna ulaşmak için gdb nexti yazarak;
  • bu işlevin başında işaret edecek olan geçerli epi'yi alın;
  • eip tarafından gösterilen adreste yeni bir kesme noktası oluşturun;
İlgili konular