Skip links

Debugger


Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118
Debugger

Debugger is one of the most important tools when programming in AX. This appendix is written as a
quick guide on how to use the debugger.
The debugger is installed as a separate application and can be opened directly
from Windows or you can open it from AX. There are two ways of opening the
debugger in AX. You can open it before you start executing whatever you would
like to debug by pressing the Microsoft Dynamics AX button (Alt + M) and then
navigate to Tools | Development Tools | Debugger.
The debugger is also started automatically when the code execution hits a breakpoint.
If you are trying to debug code that is executed through the .NET Business Connector
there are certain steps you have to follow.

how-to-debug-enterprise-portal-code-in-dynamics-ax-2009.aspx
If the code you would like to debug runs on the server you will need to enable
server-side debugging in the AX 2009 Server Configuration Tool.
To actually debug a piece of code simply press F9 to add a breakpoint in the code.
Try to do this somewhere in the Job Collection_Set that we created in Chapter 2,
X++ language. You can also modify the code and write the statement breakpoint;
to set a breakpoint. This can be especially helpful when debugging form controls.
Make sure that the debugger is installed on your client computer and that
debugging is enabled for your user by navigating to the Options form
(Microsoft Dynamics AX button (Alt+M), followed by Tools | Options).
Navigate to the Development tab and make sure that the Debug Mode
field is set to When Breakpoint.
Make sure that the debugger is installed on your client computer and that
debugging is enabled for your user by navigating to the Options form
(Microsoft Dynamics AX button (Alt+M), followed by Tools | Options).
Navigate to the Development tab and make sure that the Debug Mode
field is set to When Breakpoint.

The following is the description of the screen in the previous screenshot:
1. Code window: This window displays the code that is being executed. The
red bullet to the left of the line numbering indicates a breakpoint. The yellow
arrow on top of the breakpoint indicates the line that is about to be executed.
2. Variable window: The variables that are in the selected context are shown
here. The variable window is divided into the following three tabs:
Local: Shows the variables in the current execution scope
Globals: Shows variables from the objects that are
always created when AX runs (InfoLog, VersionControl,
Classfactory, and Appl)

3. Call Stack window: This window displays the methods that have been
executed in order to get to the current code. Therefore, when method A calls
method B which in turn calls method C, they will be listed in this window
where method C is on the top and method A is at the bottom. You can also
double-click on a path in the call stack to see that method’s code in the
code window.
4. Watch window: In this window you can look for certain variables regardless
of their context. If they are in the current context then a value will be shown
if they have any. You can mark a variable in the Code window and drag it to
the Watch window to add it to the watch list.
5. Breakpoints window: This window shows all the breakpoints you have set
in AX. You can also set new breakpoints and remove breakpoints directly in
the debugger.
6. Output window: This window will display different kinds of output
as follows:
Debug: You can write statements in the code, such as
the following and have them traced in this window:
Debug::printDebug(“Test something”);
Infolog: All messages sent to the infolog
Database, Method, Client/Server, ActiveX: Any traces
generated by these if their flags have been switched on in the
Options form (Microsoft Dynamics AX button (Alt + M) and
navigate to Tools | Options)
7. Info bar: This part of the debugger shows the following information related
to the current session:
User: The user executing the current session
Session: The identifier of the current server session
Company: The three lettered ID of the current company
account
TTS: The transaction level for the current session
Ln, Col: Line number and Column of the cursor in the
code window
The following are the main operations of the debugger (see a full list of shortcuts in
the List of all standard shortcut keys in AX link in Appendix A, Links):
• Step over – F10: Executes the current line without debugging methods called
by the statement if any.
• Step into – F11: Steps into the method called by the current line. If more than
one method is called the innermost will have the top priority, then the first
one to the left-hand side of the line, and then rightmost.
• Step out – Shift + F11: Steps out of the current method and moves back to the
caller method (previous method in the stack).
• Go back: Drag the yellow arrow to a previous line of code in the current
method to go back. Remember that the variables will not automatically be
reset to the state they had when that line executed for the first time.
• Run – F5: Continue the execution and jump to the next breakpoint if any.
• Run to cursor – Ctrl + F10: Continue to execute and break at the line where
the cursor is in the code window.
• Stop debugging – Shift + F5: Stop executing the code. None of the lines after
the current execution position will be executed.

Opinions

  1. Post comment

    Merhaba fatif bey debugger konusunda bir sorunum var
    AOT menüsünden > clases> saleslinetype>initforminventtable> kod editör sayfasında breakpoint oluşturuyorum daha sonra AR> menüsünden sales order detail den yeni bir sales order oluşturuyorum ok deyip çıktıktan sonra item numarasını giriyorum buraya kadar herşey yolunda fakat daha sonra toolbardan tools > devolpment tools > debugger yaptığımda break point oluşturduğum halde debugger yapılmıyor sizce sorun nerede ve bu sorunu nasıl çözebilirim ?
    Saygılarımla.

    Permalink
    1. Post comment

      Debug yapmak için debugerı aktif etmiş olmanız lazım sanırım bunları yapmışsınızdır.
      Clasta breakpointi koyduğunuz yere kodun girip girmediğinden emin olun. Emin olamiyorsanız ilk satıra koyup kodu takip edebilirsiniz.
      Bazı form metodlarında debug çalıştıramazsınız.örneğim medifiad click gibi. Bu yüzden bu metodlara kod yazmak yerine formun motodlarına metod yazıp orayı çağırırsanız debug edebilirsiniz.

      Permalink
      1. Post comment

        Merhaba Fatih bey uyarılarınız doğrultusunda debuggerı aktif ettim fakat yine olumlu bir sonuç alamadım aşağıda verdiğim url den debugger yapılması istenen bilgiler mevcuttur zamanınız imkan verdiği ölçüde debugger yapmayı birde siz deneyebilirseniz sorunun ortaya çıkacağını düşünüyorum
        Saygılarımla İyi Çalışmalar.
        http://www.hizliupload.com/img/ekranabnb.png

        Permalink
        1. Post comment

          Merhaba
          Microsoft Dynamics AX Configuration Utility de Developer sekmesinde Enable User Breekponts to code running in the Business connector ve Enable User Breekponts to code running in the Business connector client’ı işaretlemeniz gerekiyor.
          Bunlardan sonra serveri restart edip tekrar deneyin.
          Selamlar.

          Permalink
          1. Post comment

            Merhaba;
            Yardımlarınız için çok teşekkür ederim
            Saygılarımla..

            Permalink
  2. Post comment

    Merhabalar.Bu siteye yazdıgım için tekrar yazmak istemedim.Bir form içinde DocuView butonu için kısayol yapmak istiyoruz.Örneğin Ctrl + j gibi.. bu konuda yardımcı olabilirmisiniz.Macrolar için ResAppl,task,Keypressed macrolarına baktık lakin çıkaramadık.
    http://dynamicsuser.net/forums/t/75343.aspx

    Permalink
    1. Post comment

      Merhaba task metodunu kullanmalısınız. Basıt bir örnek şöyle:
      public int task(int _taskId)
      {
      int ret;
      ret = super(_taskId);
      if(_taskId == 2827)//2827 => TAB
      element.close();
      return ret;
      }

      Permalink
  3. Post comment

    Merhabalar.Bu siteye yazdıgım için tekrar yazmak istemedim.Ax 2009 için Bir form içinde DocuView butonu için kısayol yapmak istiyoruz.Örneğin Ctrl + j gibi.. bu konuda yardımcı olabilirmisiniz.Macrolar için ResAppl,task,Keypressed macrolarına baktık lakin çıkaramadık.

    Permalink
    1. Post comment

      Merhaba task metodunu kullanmalısınız. Basıt bir örnek şöyle:
      public int task(int _taskId)
      {
      int ret;
      ret = super(_taskId);
      if(_taskId == 2827)//2827 => TAB
      element.close();
      return ret;
      }

      Permalink

Join the Discussion