Stopping X Programs

If your program is a modal X application, DDD may interrupt it while it has grabbed the mouse pointer, making further interaction impossible--your X display will be unresponsive to any user actions.

By default, DDD will check after each interaction whether the pointer is grabbed. If the pointer is grabbed, DDD will continue the debugged program such that you can continue to use your X display.

This is how this feature works: When the program stops, DDD checks for input events such as keyboard or mouse interaction. If DDD does not receive any event within the next 5 seconds, DDD checks whether the mouse pointer is grabbed by attempting to grab and ungrab it. If this attempt fails, then DDD considers the pointer grabbed.

Unfortunately, DDD cannot determine the program that grabbed the pointer--it may be the debugged program, or another program. Consequently, you have another 10 seconds to cancel continuation before DDD continues the program automatically.

There is one situation where this fails: if you lock your X display while DDD is running, then DDD will consider a resulting pointer grab as a result of running the program--and automatically continue execution of the debugged program. Consequently, you can turn off this feature via Edit => Preferences => General => Continue Automatically when Mouse Pointer is Frozen.

  • Customizing Grab Checking:

Node:Customizing Grab Checking, Up:Stopping X Programs

Customizing Grab Checking

The grab checks are controlled by the following resources:

checkGrabs(class CheckGrabs) Resource
If this is on (default), DDD will check after each interaction whether the pointer is grabbed. If this is so, DDD will automatically continue execution of debugged program.
checkGrabDelay(class CheckGrabDelay) Resource
The time to wait (in ms) after a debugger command before checking for a grabbed pointer. If DDD sees some pointer event within this delay, the pointer cannot be grabbed and an explicit check for a grabbed pointer is unnecessary. Default is 5000, or 5 seconds.
grabAction(class grabAction) Resource
The action to take after having detected a grabbed mouse pointer. This is a list of newline-separated commands. Default is cont, meaning to continue the debuggee. Other possible choices include kill (killing the debuggee) or quit (exiting DDD).
grabActionDelay(class grabActionDelay) Resource
The time to wait (in ms) before taking an action due to having detected a grabbed pointer. During this delay, a working dialog pops up telling the user about imminent execution of the grab action (see the grabAction resource, above). If the pointer grab is released within this delay, the working dialog pops down and no action is taken. This is done to exclude pointer grabs from sources other than the debugged program (including DDD). Default is 10000, or 10 seconds.

Node:Running, Next:Examining Data, Previous:Stopping, Up:Top

results matching ""

    No results matching ""