WampServer'da Notepad++ ve Xdebug ile hata ayıklama

WampServer kullanarak Php'de nasıl debug yapılabileceği şurada anlatılmış. Ben bu kaynağı referans alarak debug işlemini ayrıntılı olarak bir yere not etmek istedim.

WampServer'ın şu anki son versiyonu olan 2.2a ya da 2.1e versiyonu Xdebug eklentisini varsayılan olarak içermekte. Bu nedenle eski bir WampServer versiyonu kullanılıyorsa ilk önce bu sürümlerden herhangi birine  terfi edilmeli.

WampServer'ı kurduktan sonra System Tray'deki WampServer simgesini tıklayıp Php/Php Setting altındaki Xdebug ile ilgili seçenekleri aşağıda görüldüğü gibi aktif hale getiriyoruz.

Daha sonra Notepad++ ile Debug yapabilmek için bu adresten veya şuradan gerekli Notepad++ eklentisi(dll dosyası) indirilir. C:\Program Files\Notepad++\plugins klasörüne zipteki dosyalar çıkarılır. Notepad++ açılır ve Eklentiler menüsünden DBGp ve altındaki Config seçeneği seçilir. Ekrana gelen pencerede aşağıdaki ayarlar yapılır.

Daha sonra Notepad++'ın Eklentiler/DBGp menüsünden Debugger seçeneği tıklanır. Bu durumda Notepad++'ta şu bölüm açılacaktır.

Bir sonraki adım olarak tarayıcıda hatası ayıklanacak php dosyası açılır. Açılan sayfanın sonuna ?XDEBUG_SESSION_START=oturum_adi ifadesi eklenir. Bu sayfa tarayıcıda açılır açılmaz, Notepad++ penceresi aktif olacaktır. Bu penceredeki Step into, Step over, Step out, Run to cursor seçenekleri ile sayfa adım adım çalıştırılabilir.

Programın belli bir satırda kırılması isteniyorsa xdebug_break(); satırı kullanılabilir. Böyle bir durumda Notepad++ eklentisinde Break at first line when debugging starts seçeneğindeki işaret kaldırılmalıdır.

Değişken değerlerini izlemek için Wathces penceresi kullanılabilir. Bu pencerede sağ tıklanıp Add Watches seçeneği ile izlenecek değişkenler belirlenebilir.

Debug işlemini denemek isteyenler aşağıdaki kodu kullanabilirler. 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="tr">
<head>
  <title>Başlık</title>
  <meta http-equiv="content-type" content="text/html; charset=windows-1254" />
</head>
<body>
<?php
  for ($i=1; $i<=5; $i++)
  {
    echo "Döngünün $i. adımı.";
	  echo "<br>";
  }
?>
</body>
</html>

24.10.2011 07:45:38

Yorumlar

Bu yazıya henüz yorum yapılmamış.

Yazı hakkında yorum yapmak için, buraya tıklayın.

Kategoriler :

Arşiv :

Etiketler :

Bağlantılar :