Gdbserver - Gdbserver

gdbserver uzaktan almayı mümkün kılan bir bilgisayar programıdır hata ayıklama diğer programlar.[1] Hata ayıklanacak programla aynı sistem üzerinde çalışmak, GNU Hata Ayıklayıcı başka bir sistemden bağlanmak için; yani, yalnızca hata ayıklanacak yürütülebilir dosyanın hedef sistemde ("hedef") yerleşik olması gerekirken, kaynak kodu ve hata ayıklanacak ikili dosyanın bir kopyası geliştiricinin yerel bilgisayarında ("ana bilgisayar") bulunur. Bağlantı, TCP veya bir seri hat olabilir.

Nasıl çalışır

  1. gdbserver hedef sistemde şu argümanlarla başlatılır:
    • Ya bir aygıt adı (seri hat kullanmak için) ya da bir TCP ana bilgisayar adı ve bağlantı noktası numarası ve
    • Hata ayıklanacak yürütülebilir dosyanın yolu ve dosya adı
    Daha sonra, ana bilgisayar gdb'nin kendisiyle iletişim kurmasını pasif olarak bekler.
  2. gdb şu bağımsız değişkenlerle ana bilgisayarda çalıştırılır:
    • Ana bilgisayardaki çalıştırılabilir dosyanın (ve herhangi bir kaynağın) yolu ve dosya adı ve
    • Hedef sisteme bağlantı için gereken bir cihaz adı (seri hat için) veya IP adresi ve bağlantı noktası numarası.

Adlı bir programda hata ayıklama örneği Selam Dünya TCP kullanan uzak bir hedefte ("2159" uzak GDB için kayıtlı TCP bağlantı noktası numarası ):

uzak @ ~ $ gdbserver: 2159 hello_worldHello_world oluşturuldu; pid = 25092159 numaralı bağlantı noktasında dinleme
yerel @ ~ $ gdb -q hello_world/Home/user/hello_world...done'dan semboller okunuyor.(gdb) uzak hedef 192.168.0.11:2159192.168.0.11:2159 kullanarak uzaktan hata ayıklama0x002f3850 içinde ?? () /lib/ld-linux.so.2'den(gdb) devam etDevam ediyor.Program alınan sinyal SIGSEGV, Segmentasyon hatası.Hello_world.c adresinde main () 0x08048414: 1010 printf ("x [% d] =% g  n", i, x [i]);(gdb)

Alternatifler

Uzaktan programlarda hata ayıklamak için başka bir teknik, bir uzak saplama.[2][açıklama gerekli ] Bu durumda, hata ayıklanacak program, GDB uzak seri protokolünü uygulayan birkaç özel amaçlı alt programla bağlantılıdır. Bu alt rutinleri içeren dosyaya "hata ayıklama saplaması" adı verilir.

Ayrıca bakınız

Notlar

Referanslar

  • Andreas Zeller: Programlar Neden Başarısız Olur: Sistematik Hata Ayıklama Rehberi, Morgan Kaufmann, 2005. ISBN  1-55860-866-4

Dış bağlantılar