İçeriğe atla

GNU Debugger

GNU Debugger
Geliştirici(ler)GNU Projesi
İlk yayınlanma1986 (38 yıl önce) (1986)
Güncel sürüm15.1[1] Bunu Vikiveri'de düzenleyin / 7 Temmuz 2024
Programlama diliC, C++, Python
İşletim sistemiUnix-like, Windows
TürHata ayıklayıcı
LisansGPLv3
Resmî sitesignu.org/software/gdb
Kod deposu Bunu Vikiveri'de düzenleyin

GNU Debugger(GDB olarak kısaltılır) GNU yazılım sistemi için kullanılan bir hata ayıklayıcıdır (debugger). Unix tabanlı pek çok sisteminde, C, C++ ve Fortran gibi birçok programlama dilinde çalışan taşınabilir bir hata ayıklayıcıdır.

Tarihçe

Richard Stallman tarafından 1988 yılında yazılan GDB, GNU General Public License kapsamında dağıtılan ücretsiz bir yazılımdır. 1990 - 1993 yılları arasında Cygnus Solutions' da çalıştığı sırada geliştirilmesine John Gilmore tarafından devam edilmiştir.

Teknik Detaylar

Özellikler

GDB bilgisayar programlarının çalıştırılmasını değiştiren ve takip eden pek çok gelişmiş özelliğe sahiptir. Kullanıcı programın iç değişkenlerini ve normal akışı içerisinde çağrılan fonksiyonları izleyebilir ve degiştirebilir.

2003 yılı itbari ile GDB' nin desteklediği işlemciler şunlardır; Alpha, ARM, H8/300, System/370, System 390, X86 ve X86-64, IA-64 "Itanium", Motorola 68000, MIPS,PA-RISC, PowerPC, SuperH, SPARC, VAX.

Standart sürüme eklenmiş daha az bilinen işlemciler; A29K, ARC, AVR, CRIS, D10V, D30V, FR-30, FR-V, Intel i960, M32R, 68HC11, Motorola 88000, MCORE, MN10200, MN10300, NS32K, Stormy16, V850, VAX ve Z8000. (yeni sürümler muhtemelen bu işlemcileri desteklemeyecektir.)

GDB hedef platformlar için simulatörler üzerinde derlenmiştir.

Uzaktan Hata Ayıklama

Gömülü sistemlerde hata ayıklama işlemi sırasında sıklıkla GDB'nin "uzaktan" modu kullanılır. GDB bir makina üzerinde çalışıyor ve ayıklanan program başka bir makina üzerinde çalışıyorsa uzaktan işlem etkinliği kullanılır. Seri port ya da TCP/IP üzerinden, GDB protokolünü anlayan uzaktaki makinayla bağlantı kurulabilir. Aynı mod kaynak seviyesinde çalışan bir linux kernel gdb kullanarak KGDB tarafından ayıklanması sırasındada kullanılır. Kernel geliştiricileri kgdb' yi kullanarak uygulama programları gibi kernel üzerindede hata ayıklama işlemleri yapabilirler. Kernel code içerisinde istenilen yerlere kesme noktaları konularak kod boyunca belli adımlarla ilerlenip değişkenler gözlemlenebilir. Bazı mimarilerde donanım hata ayıklama yazmaçları (register) mevcut olup, çeşitli izleme noktaları belirlenerek belirli bir bellek adresine ulaşıldığı ya da çalıştırıldığı zaman kesme noktaları tetiklenebilmektedir. kgdb hata ayıklanması yapılacak makinaya seri kablo ya da ethernet kartı üzerinden bağlı ikinci bir makina gerektirir. FreeBSD üzerinde Firewire DMA kullanarak hata ayıklama işlemini gerçekleştirmek mümkündür.

Sınırlamalar

GDB kendi içerisinde bir grafiksel kullanıcı arayüzüne sahip değildir, standart olarak komut satırı arayüzüne sahiptir. DDD, GDBtk/Insight ve Emacs' in GUD mode uygulaması GDB için grafik arayüzleri sağlamaktadır. Bu araçlar tümleşik geliştirme ortamlarındaki hata ayıklayıcılara benzer özelliklere sahiptir.

memory leak dedektörü gibi çeşitli araçlarda GDB ile beraber çalışabilmektedir.

Örnek Komutlar

gdb prog.out prog.out ayıklar

gdb > run çalıştırır

Dış bağlantılar

  1. ^ "GDB 15.1 released!" (İngilizce). 7 Temmuz 2024. Erişim tarihi: 9 Temmuz 2024. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

<span class="mw-page-title-main">Mikrodenetleyici</span>

Mikrodenetleyici bir VLSI entegre devre çipinde küçük bir bilgisayar'dır. Mikrodenetleyici, bellek ve programlanabilir giriş/çıkış çevre birimleri ile birlikte bir veya daha fazla CPU kapsar.

<span class="mw-page-title-main">AmigaOS</span> Amiga kişisel bilgisayarının işletim sistemi

AmigaOS, Amiga kişisel bilgisayarının işletim sistemidir. Grafik arabirimi olan Workbench, CLI komut satırı arabirimi ile birlikte AmigaDOS ve çoğu Amiga modelinde ROM'da yer alan Kickstart'tan oluşur.

<span class="mw-page-title-main">Mikroişlemci</span> ana işlem biriminin fonksiyonlarını tek bir yarı iletken tümdevrede birleştiren programlanabilir sayısal elektronik bileşen

Mikroişlemci, işlemci olarak da bilinen, merkezî işlem biriminin (CPU) fonksiyonlarını tek bir yarı iletken tüm devrede (IC) birleştiren programlanabilir bir sayısal elektronik bileşendir.

<span class="mw-page-title-main">Assembly</span> uygulanan işlemlerle programlama dilinin birbirine çok yakın olduğu düşük seviye programlama dilleri

Assembly dili, bir işlemcinin komut kümesi üzerine tanımlanmış alt seviye bir dildir. Assembly dili kolay hatırlanabilir semboller tanımlar ve böylece işlemcinin makina koduna karşılık gelen sayı dizilerinin bilinmesine gerek kalmaz. Assembly dili, platformdan bağımsız yüksek seviyeli programlama dillerinin aksine, işlemci mimarisine bağımlıdır. Tipik uygulamaları; cihaz sürücüleri, alt seviyeli dahili (embedded) ve gerçek zamanlı sistemlerdir. Bır assembly programı assembler kullanılarak makine koduna çevrilir.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

<span class="mw-page-title-main">QNX</span>

QNX, gömülü sistemler pazarına yönelik Unix benzeri, gerçek zamanlı işletim sistemidir.

PTLsim, x86 işlemcilerinin iç yapısını taklit eden bir benzetimliktir. Intel x86 programlarının gerçek bir işlemcide nasıl çalışacağını denemek ve mikroişlemcinin iç yapısında yapılan değişikliklerin ne tür etkiler yaratacağını gözlemek amacıyla kullanılır.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

Bilgisayar grafikleri, bilgisayarların ve özel bir grafik donanımı ve yazılımının yardımıyla bir bilgisayar tarafından görüntü verisinin temsilini kullanarak oluşturulmuş grafiklerdir. Bilgisayarların etkileşimi ve anlaşılması ve verinin yorumlanması bilgisayar grafikleri sayesinde oldukça kolaylaşmıştır. Bilgisayar grafik gelişimi birçok çoklu ortam (media) tiplerinde önemli bir etkiye sahiptir ve animasyon, sinema ve video oyun endüstrisinin gelişmesini sağlamıştır.

<span class="mw-page-title-main">GNU C Library</span>

GNU C Library, bilinen adıyla glibc, GNU Tasarısı'nın C standart kütüphanesi uyarlamasıdır. Adına rağmen artık doğrudan C++ desteği bulunur. 1990'ların başında Özgür Yazılım Vakfı tarafından GNU işletim sistemi için geliştirilmeye başlanmıştır.

<span class="mw-page-title-main">Android Honeycomb</span>

Android Honeycomb veya Android 3.0–3.2.6 "Honeycomb" Android sürümünün Google tarafından geliştirilen 8. versiyonudur. Sürümün ismi "petek" anlamındadır. İlk 3.0 versiyonu 22 Şubat 2011 yılında yayımlandı. Sürümle beraber, Motorola Xoom adlı tablet tanıtıldı. Bundan önce sunulmuş sürümler yalnızca akıllı telefonlar için uyumlu idi. Bununla, ilk kez Android işletim sistemi tabletlere yol açtı. Sürüm Linux kernel 2.6.36 bazında hazırlanmıştır. Android Honeycomb yalnızca tabletler için tasarlanmış ve sadece tabletlerde bulunan tek Android sürümüdür. Android 3.0 Honeycomb, tabletlere özel geniş ekranı ve holografik kullanıcı arayüzü ile büyük ilgi topladı.

<span class="mw-page-title-main">Mac OS X Tiger</span> Mac OS Xin beşinci büyük sürümü

Mac OS X Tiger, Mac OS X'in, Mac bilgisayarlar için Apple'ın masaüstü ve sunucu işletim sisteminin beşinci büyük sürümüdür. Takma isim olarak yeni sürüme Kaplan ismi verilmiştir. Sürüm Apple Software Update yöntemi ile güncellenmekte. Tiger Mac OS X Pantherin halefi olarak 129.95 dolara 29 Nisan 2005 tarihinde kamuoyuna sunuldu. Yeni özelliklerden bazılarına 64-bit PowerMac G5 için geliştirilmiş destek, Spotlight adlı bir hızlı arama sistemi, Safari web tarayıcısının yeni bir sürümü dahildir.

<span class="mw-page-title-main">Xcode</span>

Xcode macOS, iOS, watchOS, tvOS ve visionOS için yazılım geliştirmek için Apple tarafından geliştirilen macOS için entegre bir tümleşik geliştirme ortamıdır. Yazılım geliştirme araçlarını içerir. İlk kez 2003 yılında piyasaya çıkan hizmetin en istikrarlı sürümü, sürüm 8.3.3'tür ve Mac App Store'den macOS Sierra kullanıcıları için ücretsiz olarak sunulmaktadır. Kayıtlı geliştiriciler, Apple Developer web sitesinden paketi önizleme sürümlerini ve önceki sürümlerini indirebilirler. Bununla birlikte, Apple son zamanlarda yazılımın sürüm 9 beta 2'nin beta versiyonunu Apple Developer hesaplarıyla halka açık hale getirdi.

GNU araç zinciri, GNU Tasarısı tarafından üretilen geniş bir programlama araçları yığınıdır. Bu araçlar, yazılım uygulamaları ve işletim sistemi geliştirmede kullanılan bir araç zinciri oluşturur.

<span class="mw-page-title-main">XNU</span>

XNU, MacOS işletim sisteminde kullanılmak üzere Aralık 1996'dan beri Apple'da geliştirilen ve Darwin işletim sisteminin bir parçası olarak ücretsiz ve açık kaynaklı yazılım olarak piyasaya sürülen bilgisayar işletim sistemi çekirdeğidir. Ayrıca, iOS, tvOS ve watchOS işletim sistemlerinin çekirdeği olarak da kullanılır. XNU, "X Not Unix"'in bir kısaltmasıdır.

<span class="mw-page-title-main">Kernel panic</span>

Bir kernel panic, bir işletim sisteminin çekirdeği tarafından, güvenli bir şekilde kurtarılamadığı veya sistemi çalıştırmaya devam etmenin büyük veri kaybı yaşanabilmesinin yüksek bir riske sahip olacağı dahili bir kritik hata tespit edildiğinde alınan bir güvenlik önlemidir. Terim büyük ölçüde Unix ve Unix benzeri sistemlere özgüdür. Microsoft Windows işletim sistemlerindeki eşdeğeri, genellikle "mavi ekran" olarak adlandırılan bir durdurma hatasıdır.

RIOT, düşük güçlü kablosuz nesnelerin interneti (IoT) cihazlarına odaklanan, ağa bağlı, belleği kısıtlı sistemler için tasarlanmış küçük bir işletim sistemidir. GNU Kısıtlı Genel Kamu Lisansı (LGPL) altında yayınlanan açık kaynaklı bir yazılımdır.