Exception Dialog |
Version 8, Updated v9 (152b), updated v10 |
The ATEasy Exception Dialog (v8.0) is displayed when a fatal non- recoverable error occurs forcing you to exit ATEasy development environment or your ATEasy stand alone application (EXE or DLL). These errors are normally trapped by Windows however ATEasy traps these errors to provide further information used to debug and correct the problem. The information is provided using the ATEasy Exception dialog and is always logged to the Windows Application Log that can be viewed from your Windows Computer Management or Windows Event Viewer. The information can be send to Marvin Test Solutions to further analysis.
Note you can disable showing the exception dialog by calling EnableShowException Internal Procedure. In that case the error is recorded to registry, however no dialog is displayed and the application terminated immediately (v9, 152b).
In v10, the dialog was modified and not contains a new check box allowing you to save the exception dump file. The dump file can then upload to a support incident (https://www.marviintest.com/magic) for analysis by Marvin Test Solutions support and Software engineers.
Normally, ATEasy catches several common exceptions and attempts to notify the user without allowing the application to crash. This protection does not generally extend to external libraries such as DLLs, COM/ActiveX or .NET assemblies that are called by your ATEasy application. Common cause of these exceptions are:
● Buffer overrun: Error occurs when more data is given to an array than it was allocated. For example calling a DLL function passing in a string that was not sized properly prior to the call, than the DLL function write to the buffer and corrupts the memory which later on cause a crash when accessing the corrupted memory. Generally this shows as memory access violation (0x5) but could also shows as unexpected behavior since memory is corrupted.
● Buffer not allocated: Similar to buffer overrun, however the crash will show exactly the location of the problem. Usually memory access as well (0x5). Most likely passing a NULL string to a DLL that does not check for that. The crash occurs when the DLL attempt to write to address 0.
● DLL parameter mismatch: Parameter expected by DLL are not configured properly: wrong number of parameters or wrong data type.
● Exception Thrown from an External Library: Exceptions generated from DLL/ActiveX or .NET will be passed up to ATEasy for reporting.
● Issues with ATEasy run-time, IDE or other ATEasy bugs.
The following image shows the ATEasy Exception Dialog:
The following controls are displayed:
● Exception - The exact location of the exception including the module causing it, exception number and description.
● Versions (v9) - ATEasy version including build number, ATEasy Serial Number and Windows version.
● Threads'
Call Stacks - shows a tree control describing the threads (ATEasy
run-time or the IDE internal threads) executing, each thread with its
call stack. Each thread displays the ATEasy calls stack (if an ATEasy
application thread) and the ATEasy internal call stack. Expanding the
Module variables will show the variables of the ATEasy procedure (if inside
a procexdure) and the variables of the module that the crash occurred
in. Expanding the Internal PCode
(psudu-code that the ATEasy run after compiling your application) will
show the offending line (PCode) that cause the crash.
The following images are example of module variables and PCode. As you
can see, the crash occurred in a test called Untitled
Test, in a Program called MiscExamples
in Line 3. Looking at the PCode you can see that the crash occurred in
a PCODE CO_CALL_DLL - when ATEasy
was calling or returning from a DLL. Variables displayed with a ???? appears to be corrupted usually
indicate a buffer overrun.
● Save... (v9) - Saves the current ATEasy exception information to a file.
● Save All... (v9) - Saves all ATEasy exceptions that occurred in the system to a file.
● Dump(.dmp) (v10) - Saves the dump file (~300MB) used by Marvin Test Solutions engineers for analysis. Upload this file and the event log file created with teh Save/Save All button to the support incident you create.
1
The information is also saved to the Windows Application Event Log. If you still require assistance with analyzing the crash, you can send Marvin Test Solutions the Windows Application Event Log filtered for ATEasy events from the Windows Events Viewer:
● Right-click My Computer and click Manage
● Navigate the tree view to System Tools | Event Viewer | Application
● Use menu item View | Filter... and set event source to 'ATEasy' and click OK
● Each entry in the Event Log corresponds to documented crash.
● Saving the log. After clicking on an entry in the Event View, the Actions panel on the right will be updated with additional options, including "Save Log File As..." The Event Viewer allows you to save to XML, CSV, TXT and EVT/EVTX. The EVT log for Windows XP (EVTX for Vista/7) can be reopened in the Event Viewer at a later time. This is the preferred file format when submitting information to Marvin Test Solutions.
The following image shows ATEasy events displayed in the Windows Event Viewer (see also Audit Records):