create new tag
view all tags

APPX Process Stack

Running an APPX application consists of a series of processes calling each other. For example, the Main Menu might call a submenu, which might call a JOB process, which might call an INPUT, which might call a child INPUT process, etc.

The list of current processes that have called each other is called a "Process Stack". This is a particular 'drill down' within a Process Family, or Process Tree.

If you have TRAPed into the ILF debugger, you can see the process stack by invoking Direct Menu 1 (GO 1). A typical Process Stack might look like:

ECR ENTRY (HISTORY) (COMMENTS) 0000200.001.0000000 Inp Option Intercept
 |                          Stack Trace                             |
 |                                                                  |
 | Lvl# Ap/Ver Proc Type Process Name                  Invoked As   |
 | 2   CTS 00 INPUT     ECR ENTRY (HISTORY)           SUBPROCESS    |
 | 3   CTS 00 INPUT     ECR ENTRY                     DETACHED      |
 | 4   CTS 00 MENU      MAIN MENU                     DETACHED      |
 | 5   0LA 00 JOB       SELECT DATABASE               SUBPROCESS    |
 | 6   0AD 00 INPUT     APPLICATION DESIGN            DETACHED      |
 | 7   0LA 00 MENU      APPX MENU                     DETACHED      |
 |                                                                  |
 |                                                                  |

The current process (being debugged thru the ILF editor) is at the top the stack (Level #1). The first process in the stack is at the bottom (APPX MENU).

Note that this stack also shows you the "Invocation Type", or scoping (Detached/Related/Subprocess).

See the APPX Designer Reference Manual chapter 1-5 on Interprocess Communications for further discussion of the scoping rules around for process invocations and field types.

You can only view the Process Stack when running 4) Run Test Database from with the Application Design editor, or when you have launched a Process from one of the Process editors using hiddenOption 99.

If you have no TRAP to get you into the ILF editor in your current process, don't despair! In character mode you can press your interrupt key (generallyControl-C), then ENTER. The ILF editor will stop at the next available ILF statement. From there, you can GO 1, to see your current Process Stack!

In Release 5.1 & higher there is an API .UTIL LOAD STACK FILE which will populate the --- STACK file for you. You can then read the --- STACK file for debugging or other purposes.

In Release 5.3 and higher you can break into a running program when using the APPX Desktop or HTML clients by pressing Control+END. 'END' refers to the key labelled END on your keyboard, not the APPX logical END key. This only works if you started the program from Application Design, or if you have APPX_DB_TRAPS set.


Read what other users have said about this page or add your own comments.

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2016-02-18 - JeanNeron
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback