How to Successfully Debug VioPopUp() Code with CodeView

ID Number: Q58647

2.20 2.30 2.35 3.00 3.10 3.11 3.12 3.50

OS/2

Summary:

Using protected mode CodeView (CVP) to debug a program that utilizes

OS/2's VioPopUp() functionality requires care in order to avoid a

system lock-up. Due to the nature of the VioPopUp() call, an attempt

to trace into a VioPopUp() call causes the machine to hang. The way to

work around this situation is to set a breakpoint outside of the

VioPopUp() call [after the VioEndPopUp()], and then do a go (F5) to

instruct CodeView to execute to the next breakpoint.

More Information:

The VioPopUp() call brings forward a temporary pop-up text screen

group that can be used to display text information without altering

the context of the foreground screen. When a VioPopUp() call is

executed, the current foreground screen group loses the keyboard focus

to the pop-up screen. Therefore, when you trace into a VioPopUp()

call, the pop-up text comes forward and CodeView, running in the

foreground, loses the keyboard focus and cannot execute a trace

instruction. At this time, CTRL+ESC or ALT+ESC will not change the

deadlock situation and the only alternative is to reboot.