Progress
Debugger Guide


Volatile Events

Volatile events occur whenever the Debugger and window system are in competition for the mouse pointer. If the Debugger is allowed to interrupt one of these events, it tries to grab the mouse pointer at the same time the window system is trying to process the event for the same mouse pointer. Thus, the window system cannot finish processing the event until the Debugger returns control to the application, and the Debugger cannot return control to the application until it gets control of the mouse pointer. The result is a system deadlock that you can break only by shutting down the window manager and restarting or, if necessary, rebooting.

Debugger Detection

To prevent this system deadlock, the Debugger detects when an event is volatile and does not allow any trigger code to be interrupted for the event. Instead, when it encounters a breakpoint during one of these events, it displays a message like this indicating the location of the breakpoint and that it is processing a volatile event:

Ignore breakpoint at USER-INTERFACE-TRIGGER ... (4346) 

If the Debugger is about to complete a NEXT or STEP command in a volatile event trigger, it completes trigger execution and stops at the first available line after the trigger completes.

Volatile Events in Windows

To debug a volatile event in Windows, you can use the DISPLAY–MESSAGE( ) method of the DEBUGGER handle to display a message string to the data panel when the event trigger executes. Invoke the method from inside the trigger block or procedure that services the event. Using this technique allows you to display information about the event as it is triggered, including data and widget attribute values.

Volatile Events in Motif

Since your application runs in character mode, all UI events are effectively nonvolatile. This is because the application does not use the Motif window manager at all. Therefore, the Debugger never competes with the application for window manager events.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095