debug 技巧 包括各種場景的debug方法(非常實用)
debug是ABAP開發裡面非常重要的一項技能,下面介紹一些小的技巧,可以提高debug的效率:
1、通過對SE16 debug修改某條資料(這個方法比較靠譜):(這個方法和SM30一樣只能修改非key值的欄位)
檢視到對應SO單號資料後,執行事務碼‘/h’進去debug狀態,然後雙擊對應的資料行。
但是這個方法我一直都找不到那段程式碼,經常是每次進去都是不同的程式碼,很難找到對應的程式碼。然後我就根據以往的成功經驗,找到了對應的程式: LSETBF01 在裡面的程式碼設定斷點。
然後去run se16,但是不是雙擊,是點選檢視:
就可以進入程式碼部分:
2、smartforms的debug:
可以通過FM: SSF_FUNCTION_MODULE_NAME設斷點,然後通過列印預覽進入之後可以準確的檢視到使用的是那個smartforms(有時通過nace檢視的不一定就是列印使用的form)
3、background job 的debug:
在SM37裡面選中要debug的cancel job,然後輸入JDBG,就可以進入debug。
4、根據報錯的message進行debug的方式:
第一種是,通過對所有的message設斷點進行debug。
第二種是,對message設watchpoint,但是這個方式如果message是巢狀程式裡面的話,可能到不了。
第三種是,在debug裡面按F9直接對message id和message no進行設斷點。
5、設定watchpoint,就是前面說的,watchpoint只有對當前程式的變數才可以設定,不可以對call的function裡面的變數進行設watchpoint。但是我們可以利用SLAD實現這個功能。
6、條件斷點,例如在一個內表資料非常大的時候,而我需要的資料是1000條裡面的第670條,在loop裡面就可以設定一個條件斷點:
然後直接F8就進入第18條資料。
7、當if條件很多關係關鍵字的時候,斷點對於多條件的時候使用step size:
8、對彈出的視窗進行debug:
儲存到桌面
開啟這個彈出視窗的介面之後,然後在桌面雙擊剛才儲存的,就可以進入相應的command(剛才的是debug)介面。
9、debug過程中,當手快跳過了某條語句,可以直接返回到之前的語句: