Exception Event Details

Examples for performance event details are given for ASP.NET applications and web services. Note that this information applies to any .NET components monitored by AVIcode products.

Event Properties Tab

The 'Event Properties' tab provides property information about the event such as what computer the event occurred on, the Event Date, etc.  The Properties tab also displays event data that allows you to drill down the call stack, and view such detailed information as parameters and member variables.

General Information Area

The properties area displays all non-data related information about an exception or performance event.

The event type icon (, , ) is also displayed below the General Information area and to the right of the tabs to indicate whether you are looking at a performance event, handled exception or critical exception. The icon will also display a tooltip with event ID and event category.

Description Area

This area  will only appear for exceptions that fall within either the Security or Connectivity aspects.

Generally, exceptions that occur from either Security or Connectivity problems fail with a description that contains the name of the failed function, but with little useful context for troubleshooting the issue.  Intercept Studio is able to intelligently interpret the exception data to display a more useful description of the problem, and to provide additional context targeted to troubleshooting the issue.

This symbol identifies the Target, or subject, of an operation. For example, if the operation attempts to open a registry key, then the target is the registry key being opened. If it is a SQL query, then SQL is the target. For file I/O operations, the filename is  the target.

Actions - Actions - Actions are the actual methods executed as the result of a user requested action such as File.Open or the text of a SQL query that results in a Security or Connectivity failure. (exceptions)

Security Context - The Security context provides the connection string (for database connections) and the user that the ASP.NET process is running under.

Exception Chain Area

This area displays all of the places where the exception was caught and re-thrown between where the error occurred (highlighted in red) and where the call was initially made.

Use the plus () symbol to expand the chain.  The minus () symbol will collapse the chain.

Clicking on any of the exceptions in the chain will reload the Exception Data Area with information specific to that exception.

Exception Data Area

This area provides the data that can be exposed through the exception itself, including various structures and public properties.

Use the plus () symbol to expand structures such as class (), functions (), arrays (), and objects ().  The minus () symbol will collapse the information displayed.

Stack Area

The 'Stack' section of the screen displays all function and resource calls that are relevant to the cause of the event.

Thrown vs. Handled

All exception events display the stack trace displaying where the exception was thrown. Operational exception events also display where the exception was caught and handled:

Getting to the details

Use the plus () symbol to expand structures such as class (), functions (), arrays (), and objects ().  The minus () symbol will collapse the information displayed.

Use the down arrows () to show details related to parameters and member variables, and the up arrows () to reduce the level of detail displayed.  Diagnosing performance issues only requires information about the dialog between your application and external resources.

When you expand a bottom level function call () in the Stack area using the down arrows (), SE-Viewer will display a tabbed box that will allow you to view parameters, member variables and source code for the expanded function.

Note that the stack frame where the exception occurred is highlighted in red as indicated below:

Where's the first call the exception stack trace? Because the stack shows how the exception was raised through the calling functions, the stack is displayed with the first function executed at the bottom, and the last function executed at the top.

Show all of the stack

The 'Show complete call stack' menu item is available when viewing exception events.  It will display every call on the stack back trace, including Microsoft or System frames not directly related to the application. By default, the display only shows stack frames directly related to the cause of the exception. Frames not directly called by the application are displayed in gray.

Show parameters

The 'Show parameters' menu item is available when viewing exception events. It displays the parameter names and types for each function call in the stack.

Show lines

The 'Show lines' menu item is available when viewing exception events. It will display the fully qualified path name of the source code file that the function is defined in, as well as the line number at which that definition appears. It also allows the function offsets (see below) to be displayed.

What are function offsets?

Function Offsets appear at the end of each stack frame, which permit using Ildasm.exe to locate the actual line of code that corresponds to that frame

What are the Chain Links for?

Intercept Studio allows you to see exception events propagated from the server-side to the client-side through chains. If an event is generated for both tiers, you will be able to click on the chain icon to see the corresponding event on the other tier.

This symbol links to details about the event node that will receive this exception as a result of the call.

This symbol links to details about the event node that an exception was received from.

Example:

Event #45300 is from a client running 'QuestionnairePage.aspx', that displays the following exception chain:

By opening the exception data, we can see that the error actually occurred on the server-side when it was unable to process a request:

The stack shows that the exception was caught in the 'GetRootId()' immediately following the call to 'GetRootId()' in the 'Questionnaire.asmx' web service on the server:

To see what happened on the server-side, click on the link, and Intercept Studio will link to the corresponding event.

Event #45299 is the server-side event that corresponds to the 'GetRootId()' call from event #45300.

If we look at the exception chain, we see that the primary exception was a result of calling the OldeDbConnection.Open() method on the server-side:

If we look further down to the bottom of the exception chain, we also see a 'System.NullReferenceException', which is the exception that was propagated back to the client-side as a SoapException.

No exception chains to the remote server? Be sure to check the synchronization of times between your servers for each tier so that Intercept Studio can properly correlate transactions for the chain functionality. Also make sure that the related events exist on both tiers.

Viewing Parameters

Once you drill down to the bottom frame of an exception event through the links, you will see a tabbed area that links you to detailed information about function parameters, member variables   and the source code.

The icon is provided next to each frame that contains details about function parameters and member variables. Click the symbol to open the frame to view the details.

Note that the 'Parameters' label on the tab tells you how many parameters there are for this function, in this case two (2). Notice that by using the plus () symbols that you can drill further into the details about the member variables and their values. The structure column identifies whether or not each item is a class.  Each of these parameters matches those displayed in the function call in number, type and order.

Viewing Member Variables

Once you drill down to the bottom frame of an exception event through the links, you will see a tabbed area that links you to detailed information about function parameters, member variables and the source code.

The icon is provided next to each frame that contains details about function parameters and member variables. Click the symbol to open the frame to view the details.

Note that the 'Member Variables' label on the tab tells you how many member variables there are for this function, in this case seven (7). Notice that by using the plus () symbols that you can drill further into the details about the member variables and their values. The structure column identifies whether or not each item is a class.

Viewing the Source Code

Once you drill down to the bottom frame of an exception event through the links, you will see a tabbed area that links you to detailed information about function parameters, member variables and the source code.

The icon is provided next to each frame that contains details about source code. Click the symbol to open the frame to view the details.

The Assembly area at the top of the tab provides detailed information about the assembly in which the exception occurred. Information includes: The name of the assembly, the last date modified, the assembly path and the symbols path.

If your PDB files are available on the Monitored System, SE-Viewer will also display several lines of source code around the line that cause the event to occur. This information includes the line number of the failed function call, Several lines of code surrounding the highlighted line of code in question and the file name where the function source code resides. This name is also a link, which when clicked, will bring you to the those lines of code in Visual Studio .NET

Source  code information is available for exceptions, but not for performance events.  At most, the information includes the name of the file, the line number of the function call, and several lines of code around the function call.

No source code in your events? In order to allow SE-Viewer to display file names   and line numbers, you must have your PDB files installed on the Monitored System. If there is not a PDB file available, you will see:

Open the Source Code in Visual Studio .NET

The name of the file with the exception on the Source tab is a link that will open your Visual Studio solution file to the exact line of code with the issue. Simply click on the link and browse to the appropriate solution file:

Link to your source code doesn't work? You must have the following in order for this link to function correctly:

PDB Files and Displaying Source Code

In order to allow SE-Viewer to display file names  and line numbers, you must have your PDB files installed on the Monitored System. A program database (PDB) file holds debugging and project state information that allows incremental linking of a Debug configuration of your program. Installing PDB Files on your Monitored System will allow SE-Viewer to display file names and line numbers related to a particular defect. 

To create your application's PDB Files for release versions:

Configuration Properties

Build

To deploy PDB files

For private DLLs, the PDB Files must reside in the same folder as the DLLs on the monitored system.

Installing the Visual Studio Plug-in

Using the Visual Studio Plug-in

You must have both Visual Studio .NET and the Intercept Plug-in installed on your machine in order to drill down to the line of source code that caused an event.

Modules List Area

The Module List area displays which modules were loaded in memory at the time the event occurred.

The module data includes the module name, date modified, assembly path and symbols path.

Use the plus () symbol to expand information about each module.  The minus () symbol will collapse the information displayed.

Collection Notes

Collection notes provide additional data about any restrictions that apply to the event. If restrictions are in effect, the Collection Notes area will be open and visible when the event details are opened.

Similar Events Tab

This tab may be used to find similar events that are occurring in your system. You may filter for identical events, events where the exception occurred in the same place, events that failed with the same exception class or events that have the same function at the bottom of the call stack.

Filtering and General Information Area

The properties area provides selection criteria for filtering how many and what type of similar events you wish to view.

Event List Area

The event list area will display links to all similar events in a 'Table View' or graphically in a 'Diagram View'.

Finding Similar Exception Events

Find identical events

Grouping exception events by 'Problem' means that all events are identical and have the same call stack.

Find similar events by Where the Exception Occurred

Grouping exception events by 'Action' means that all events had the same root node (where the exception occurred in the stack), e.g. a button click, page load, etc.

Find similar events by Exception Class

Grouping exception events by 'Exception Class' means that all events threw the same exception, e.g. System.NET.WebException, System.NullReferenceException, System.Data.SqlClient.SqlException, etc.

Find similar events by the function at the bottom of the call stack

Grouping exception events by 'Failed Function' means that all events had the same function at the bottom of the call stack, e.g. System.Web.HttpApplication.ExecuteStep, ThrowsSoapException(), Microsoft.Samples.Client.Main, etc.

Related Events Tab

This tab may be used to find events from an event log that are related to this exception event. To tie event log events to your application:

Filtering and General Information Area

The properties area provides time criteria for filtering how many related events you wish to view.

Event List Area

The event list area will display links to all related events. Click on any of the links to view the details for that event.

Finding Related Events

Distributed Chains Tab

The Distributed Chains Tab provides a graphical display of all applications, and their related Web Service and .NET Remoting calls, associated with a client-side business transaction.

General Information Area

The properties area displays information about the events which are displayed in the graphical chain.

Performance Counters Tab

Troubleshooting performance counters are collected continuously within a 15 minute window. When a .NET exception or performance event occurs, all performance counter data from the 15 minute window leading up to the event are captured and stored. To enable/disable troubleshooting performance counters, or to change the collection window:

By default, details for the collection period are displayed for:

Memory\Pages/sec

This area also displays the average, minimum and maximum values that occurred during the collection period (5 minutes in this example). To display other counters, select the checkbox next to the counter(s) of interest, and select Apply.

Diagram View

The diagram view displays counter values across a 10 minute interval, with each counter displayed in a unique color. The selection area (above) also serves as the color key for this table.

Table View

The table view display counter values for the last 10 minutes in intervals of 'Frequency' (set to 3 seconds in this example). To change the collection frequency:

This number must be at least 30 seconds.

Last update: Thursday, December 09, 2010 02:08:27 PM