Debug Console

The Debug Console is an analysis tool assisting developers and support teams to debug Enterprise Explorer. The Debug Console can be used for analyzing client as well as server traces.

Debug Console can be started by Tools -> Debug Console menu in the Enterprise Explorer or using the shortcut key combination Ctrl + Shift + D.

This guide describes how the Debug Console works.

Contents

Using the Debug Console

The Debug Console consist of three sections.

In the toolbar you can do the following:

Below the toolbar is the filtering panel which consist of one group box for each column that is visible in the trace view. The group boxes are populated with all unique entries that has been displayed in the corresponding column. If a group box is not empty then the user may filter the trace output by one of the unique entries that can be found. Filtering can be applied on multiple columns simultaneously if desired.

Underneath the filtering pane is the main trace window in which all traces are outputted. Each item in the list can be selected. When an item is selected in the trace view more detailed information related to the item is shown below the trace window. The information section consists of a number of customizable panes (user may choose to hide/show panes by configuring the modes) showing more detailed and formatted information related to the trace item.

Debug Console overview

General Options

Running the debug console under different modes

The debug console can be run under different modes. Three predefined modes exists in the mode selection box. The predefined modes are the following;

Framework: Focused on the framework developers. Most of the trace options are enabled to make the debug console outputs as much as possible.
Application: Focused on the application developers. Only outputs traces related to application forms. Both client and server traces are enabled but server traces are only focused on application forms.
 

Default settings for the predefined modes are listed in the table below.

Configuring modes

Each debug mode that is available in the Debug Console can be configured. Navigate to the Tools menu and then select the “Configure modes…” menu item. This will open up the options dialog in which the user can configure the modes’.

How to open debug mode configuration dialog

The upper part of the options dialog is a area dedicated for switching, creating and removing modes. The selection box contains all modes that are currently available in the Debug Console. The area below the selection box reflects the settings that apply for the currently selected mode. Selecting another mode from the selection box will cause the dialog to change the settings located in the the tab windows to the values that applies for the selected mode.

If a user has done changes to one of the preconfigured modes (Application, Framework or Translation) and saved the changes. The name of the mode is extended with "(Mod)", indicating that the mode has been modified from its default configuration. The "Reset Mode" button located in the bottom left section of the dialog is enabled when a predefined mode is modified. Pressing this button will cause the currently selected predefined mode to be reset to the default values that applies for that mode

Note: Default values are "hard coded" and cannot be changed from within the Debug Console.

Overview of debug console mode configuration dialog

Creating and configuring custom modes

Besides configuring the three default modes, users can also create their own custom mode. In the upper section in the "Configure modes" dialog there is a button marked with a plus sign. By pressing this button the user is presented with an input dialog in which the user is asked to enter the name for the new mode. Pressing OK will create a new custom mode. A prefix of a star symbol (*) is added to the name for the custom mode to mark that it is a custom mode. The user can select the new mode from the mode selection box in the options dialog as well as from the selection box in the main debug console window.

How to create/remove modes

Note: A custom mode does not have any default settings which the user can reset the mode to. So the “Reset Mode” button located in the bottom of the options dialog is always disabled when configuring a custom mode.

Tracing custom APF messages

Client trace messages can be added by calling the Ifs.Fnd.FndTrace.WriteLine function, these will end up in the Feature cathegory.

Client Call Stack shows all method calls inside client. This can be very useful to track client-side problems.

Analyzing the server trace

Traces related to server calls often contain trace information received from the server. This information can be found in the "Server Trace tab and PL/SQL traces can be found in "PL/SQL Trace" tab. T

Overview of server trace window

 Analyzing PL/SQL Invokes

When you conduct an operation that results in a server invoke, two significant trace messages are sent to the debug console. The first message, highlighted in green in the picture below (highlighting is done for documentation purpose and will not be present in runtime), is traced from the application level. The second one comes when the requested operation has been invoked. When analyzing PL/SQL invokes, the focus should be put on the later trace message, as both the request and response information is contained within that trace message. The second trace does however not contain the names for the parameters that were used in the application code. In order for the user to know which parameter is which he needs to check for them in the first message.

The PL/SQL Details tab is dedicated for showing the command information of the server invoke. The command is shown in the first field while the parameter information are shown in the table below. Response values for the parameters are shown in the last column in the parameter table.

Note: One server invoke may contain more that one command in which case the previous and next buttons should be used for iterating through them.

       

Analyzing Exceptions

Exceptions do sometimes occur, and when they do occur, they are highlighted in a red color in the trace message list. The exception information can be found in the server trace if the user unchecked both of the filtering options located in the "Server trace"-tab.

Scanning though the server trace is often time-consuming so there's also the possibility to open the Exceptions-tab in which a filtering of the server trace has been done. The filtering filters out the most common client and server exceptions.

Note
: All exceptions are not shown in the Exceptions-tab. In those cases the user should search for them in the server trace.

Using Copy/Copy Special

Copy / Copy special functionality adds support for copying the PL/SQL code from a trace message (categories as "Server Invoke [PL/SQL Command]") and converting it into an executable code snippet. All bind variables in the snippet are set so that the code snippet is ready for execution.

The copy/copy special functionality is located under the PL/SQL Detail tab that can be enabled from the options dialog. Pressing the Copy button will format the current statement into an executable one, making it possible to run in e.g. SQL/Plus or PL/SQL Developer. Copy Special works the same as Copy but only available for PL/SQL statements as it will also include a “Dbms_Output” section (printing out trace information), making it possible to trace the output in whatever external tool used.

Copy/Copy special example
 

View Loaded Assemblies

The menu "Loaded Assemblies" show information about the client assemblies that have been loaded by IFS Enterprise Explorer.

View Plugin Info

The menu "Plugin Info" show information about the plugins that have been loaded by IFS Enterprise Explorer and their time logs.

Creating a memory dump

Creating a memory dump will save the current state of the application into a dump file. To create a memory dump from within the debug console, users can navigate to the debug console menu and under the Tools menu select “Create memory dump…”. The file can then be used for debugging and analysis of the current state of the application. Support personnel can use the memory dump for debugging. The memory dumps can e.g. be used by developer to see the exact version of files that are being used in the application and thereby exclude possible error sources. Developer can also use the file to rebuild the entire environment and try and run the same application locally in order to reproduce the errors.

Download All Packages

The menu "Download All Packages" downloads all client assemblies available in the clickonce deployment location. Downloading all packages at once will eliminate time spent for downloading packages on demand each time you visit a window in IFS Enterprise Explorer.

Remote Debugging

Prerequisites:

Setup in Developer Studio

  1. Make sure to debug compile the package you want to debug.

  2. Set breakpoint where you want to stop. Make sure to do this in Database Source, source is grey (This can be done via the context menu by selecting "Go To Database Source").

  3. Select "Attach debugger..." from the the Debug menu.

  4. Specify the connection information in the Attach-dialog and make sure the Connector-field is set to "SocketAttach".

Setup in IFS Enterprise Explorer

  1. Open the debug console from the Tools menu.

  2. In debug console, select "Remote Debug" under Advanced options.

  3. Specify the host address and port you want to connect to and then save the changes and close the dialog.

  4. Remote debugging is now configured and breakpoints should be hit when server invokes are made.

Profile Server Invokes

Profile Server Invokes option available under Advanced options will enable profiling data gathered by the Oracle DBMS_PROFILER. Click here for more information.

SQL Trace

SQL Trace option available under Advanced options will enable a way to identify performance issues in PL/SQL or SQL. Click here for more information.