ABAP Debugger çeşitli işlem modları ve program akış izleme araçları sunar. Bunlar arasında geçiş yapabilir ve bunları mevcut durumunuzun ...
ABAP Debugger çeşitli işlem modları ve program akış izleme araçları sunar. Bunlar arasında geçiş yapabilir ve bunları mevcut durumunuzun gerektirdiği şekilde birleştirebilirsiniz. ABAP'a aşina olma açısından; en önemli modlar Desktop 1 sekmesindeki (program akışını ve değişkenlerin içeriğini izleyebildiğiniz) değişkenler sekmesi ile (çalışma alanı ve içsel tabloların içeriğini gözlemlediğiniz) Structures and Tables sekmeleridir. Break./Watchpoints sekmesinde, breakpoints'leri ve watchpoints'leri izleyebilir ve yönetebilirsiniz. Bu gözlemler ve elde edilen analizler sorun gidermek ve kaynak kodunda değişiklik yapmak zorunda kaldığınızda doğru noktaları bulmak için vazgeçilmezdir.
ABAP ile ilgili yayınlar birbirlerini takip eden konular içerir. Tüm ABAP yayınlarının listesine ulaşmak için tıklayınız.
Desktop 1 Sekmesi
Eğer ABAP Editöründen ABAP Debugger'a geçerseniz, varsayılan olarak Desktop 1 sekmesinde kesme noktasının konumuna gelirsiniz. Eğer alanların içeriğini, tablespace'lerin içeriğini vb. kontrol etmek için her bir ifadeyi teker teker yürütmek istiyorsanız Single Step (F5) düğmesini tıkayın.
Sistem sadece yanında sarı ok olan komutu çalıştırır ve ardından, daha önce belirtildiği gibi, sonraki talimatlar için bekler. Bizim örneğimizde, sistem WRITE ifadesinde durur. Bu şekilde, tüm kaynak kod ile baştan sona adım adım çalışabilirsiniz.
Kaynak kod çok uzun ise, bu zaman alıcı bir iş olabilir. Bu yüzden, bu işlemi sadece iyi bilmediğiniz bir programı analiz etmek zorunda kaldığınızda veya başlangıçta kesme noktalarını nereye ekleyeceğinizden emin olmadığınızda yapmanız mantıklıdır.
- [message]
- Birşeyi Yapmadan Önce Düşünün
- “İyi düşün sonra giriş” atasözü burada da geçerlidir. Sistem bir alt yordamı, fonksiyonu veya başka bir nesneyi yürütmek üzere ise ve siz (F5) tuşuna basarsanız, ABAP Debugger hemen sonraki en düşük yürütme seviyesine geçer; diğer bir deyişle, söz konusu nesneye geçer ve normal olarak devam eder. Buradaki risk şudur; ABAP Debugger sizin tamamlanmış bileşen olarak kullandığınız ve debug etmek istemediğiniz sistem alanlarını veya diğer modülleri de analiz edebilir. Bu nedenle, (F5) düğmesinin sizi sistemde gitmek istediğinizden daha derine götürebileceğini unutmayın. 7.0 EHP2 sürümünden beri Layer-aware debugging bu duruma karşı koruma sunmuştur. Bu teknoloji, ilerleyen yayınlarda daha detaylı olarak tarif edilmektedir.
Az önce okuduğunuzdan hareketle, büyük olasılıkla (F5) ve (F6) arasındaki farkı görebilirsiniz. Eğer bir sonraki yürütülebilir komut bir fonksiyon modülü çağrısı, bir alt program çağrısı ya da başka bir nesne için bir çağrı ise bu çağrı ile ilgili herşey (F6) ile arka planda yürütülür. ABAP Debugger yürütme düzeyinde kalır ve geçerli çağrı tamamlandıktan sonra bir sonraki yürütülebilir ifadeden önce durur.
Bizim örneğimizde, ABAP Debugger SELECT ifadesinden önce durur. Bu ifadede (F5) veya (F6) düğmesini kullanmanızın önemi yoktur, çünkü sistem her iki durumda da sonrasında WRITE ifadesinde durur.
(F7) düğmesini (F5) düğmesi ile "kaybolursanız" kullanabileceğiniz bir can simidi olarak düşünün. Eğer program seviyesinden ayrıldıysanız ve sistemde ne kadar derine gittiğinizden emin değilseniz, yüzeye ve orijinal seviyenize dönmek için (F7) kullanabilirsiniz. Diğer bir deyişle, bu durumda (F5) ve (F7) birleşimini kullanmak, direkt olarak (F6) kullanmak ile aynı etkiye sahiptir.
- [message]
- Run (to Cursor)
- Daha önce belirtildiği gibi, büyük bir kaynak kodu üzerinde satır satır çalışmak çok zaman alıcı bir hale gelebilir. Bu nedenle, kritik gördüğünüz bütün noktalarda kesme işareti koyarak sistem durumunu kontrol etmenizi tavsiye ederiz. Bu kesme noktaları arasında bir sürü ifade olabilir. Eğer (F8) tuşuna basarsanız, ABAP Debugger sonraki kesme noktasnına kadar tüm ifadeleri çalıştırır ve sonraki kesme noktasında tekrar durur. Program mantığı bir başka kesme noktası içermiyorsa, program çalıştırılır ve kapatılır. Bizim örneğimizde, bir sonraki adım liste çıktısıdır.
Yeni ABAP Debugger, (WA_ZMEMBER01-MNAME alanının mevcut içeriği gibi) alanların içeriğini görüntülemek için iki seçenek sunar. Ya ekranın sol kısmında WA_ZMEMBER01-MNAME alanını çift tıklatın veya ekranın sağ tarafındaki tabloya alanın adını girin ve Enter tuşuna basın (Şekil 1).
![]() |
Şekil 1. ABAP Debuggerda Alanın İçeriğini Görmek |
Alan daha sonra, alan adı solda ve mevcut alan içeriği sağda olacak şekilde ekranın sağ tarafına aktarılır. Şimdi, ABAP Debugger'a bir sonraki ifadeyi yürütme talimatı verirseniz -Single Step veya F5 düğmesini kullanarak- yürütülen ifadenin alanın içeriğini değiştirip değiştirmediğini, eğer değiştirdiyse nasıl değiştirdiğini görürsünüz.
ABAP Debugger ile sadece mevcut alan içeriğini görüntülemekten daha fazlasını yapmak isteyebilirsiniz. Mesela; bir alanın içeriğini değiştirmek isteyebilirsiniz ve böylece program mantığını test edebilirsiniz. Örneğin, test verilerinin yapılandırılması nedeniyle oluşan olağanüstü bir durumda, sıfıra bölünmek listenin üretilememesine neden olabilir. Çünkü, sistem bu noktada bir çalıştırma hatası oluşturur. Böyle bir durumda alan içeriğini düzeltebilir, böylece sıfıra bölmeyi önleyebilirsiniz ve sonuçta program gerekli listeyi oluşturur. Tabii ki, listedeki sonuçlar sadece test verileridir. Fakat, en azından liste ekranının doğru olup olmadığını kontrol edebilir ve mevcut alanların istenen liste çıktısını ürettiğinden emin olabilirsiniz.
DETAIL DISPLAY sekmesine geçmek için değişken adına çift tıklayın. Bu değişkenin içeriğini değiştirmek için CHANGE FIELD CONTENT düğmesini kullanın ve (Enter) tuşunu kullanarak kaydedin (Şekil 2).
![]() |
Şekil 2. Detail Display Sekmesi |
YORUM