Proqram Xətası

  Proqram Xətası (ing. Software Bug) — kompüter proqramı və ya sistemdə baş verən xətadır. Bu cür xətalar yanlış və ya gözlənilməyən/nəzərdə tutulmayan nəticələrə gətirib çıxarır.

   İngilis dilində bug sözü həm də böcək mənasını verir. Amerikalı mühəndislər bir əsrdən çoxdur ki, maşındakı kiçik qüsurları “böcəklər” adlandırırlar. Tomas Edison 1870-ci illərdə elektrik dövrələrindəki nöqsanlardan “böcək” olaraq bəhs edirdi.

   Hesablama texnologiyasında bu terminin istifadəsi və məşhurlaşması 9 Sentyabr 1947-ci ildə baş verən bir hadisəylə bağlıdır. Amerikalı riyaziyyatçı və kompüter proqramçısı Grace Hopper və onun komandası Mark II kompüteri ilə çalışarkən maraqlı bir hadisə baş verir. Kompüterin kontakt releləri arasında bir güvə ilişib qalır və sistemin dayanmasına səbəb olur. Komanda üzvləri hadisəni qeydə alır və Grace Hopper (sonradan ABŞ Hərbi Dəniz Qüvvələrinin kontr-admiralı olur) xanıma  xəbər verirlər. O da kompüterin qeydiyat jurnalında tarixə keçəcək bir qeyd yazır:

“Xətanın tapılmasının ilk faktiki hadisəsi” (“First actual case of bug being found.”)

NMAH2000-03035.jpg

   Bu hadisədən sonra bug sözü hesablama texnologiyasında termin halına gəlir. Xətaların tapılması və aradan qaldırılması prosesi sazlama (debugging) adlanır. Müasir kompüter sistemləri bir çox xətaların müəyyən edilməsi və avtomatik aradan qaldırılması imkanlarına malikdir.

Sazlayıcı

  Sazlayıcı (ing. debugger) — kompüter proqramlarının qaynaq kodlarında icra zamanı xətalarının aşkarlanması üçün nəzərdə tutulmuşdur. Bu alət hədəf proqramlarını xüsusi nöqtələrdə dayandırmağa, addım-addım icra etməyə və gedişatı izləməyə imkan verir. Hədəf proqramlarının icrası zamanı kompüter resurslarında baş verən dəyişikliklərin monitorinqini aparmaq, dəyişənlərin qiymətini müəyyən etmək və eləcə də dəyişdirmək mümkündür. Müasir IDE-lərin sazlayıcıları geniş funksional imkanlara sahibdir. Başqa yerdə və mühitdə yerləşən proqramları sazlamaq üçün əlavə olaraq uzaqdan sazlayıcını (ing. remote debuger) quraşdırmaq lazımdır.

Proqramçıların ən çox istifadə etdikləri müstəqil sazlayıcılar aşağıdakılardır:

  • GNU Debugger (GDB);
  • WinDbg;
  • Valgrind;
  • LLDB;
  • Lightrun;
  • Fusion Reactor;
  • Nemiver;
  • Delve;
  • Xdebug;
  • Bash Debugger.