Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Contact info
 
Other projects
   Altirra

Archives

Blog Archive

Debugging a full-screen application

If you've ever tried to debug an application that goes full-screen, you've probably discovered the main problem with doing so: the application window is marked as "topmost," meaning that it always appears on top of other windows, even if it becomes inactive. This means that when the application crashes, you can't get to the debugger, or for that matter, almost any other window.

Sure, you could get a second monitor, or do a remote debug, but that's inconvenient -- especially if you didn't get to choose the machine on which the program crashed.

There's a simpler way to solve the problem. The application you're trying to debug is stopped, so you can't make its window non-topmost, but what you can do is make the debugger window topmost too. Two windows that are marked as such will sort normally relative to each other, so once the debugger is marked in this manner, it will pop up in front of the debuggee without problem. How you mark the debugger window as topmost is up to you, but programmatically, once you find the right HWND, a call to SetWindowPos() will do the trick.

Having a Command Prompt open at all times is a useful trick too, because its fullscreen mode (Alt+Enter) trumps any other window, topmost or not.

Comments

This blog was originally open for comments when this entry was first posted, but was later closed and then removed due to spam and after a migration away from the original blog software. Unfortunately, it would have been a lot of work to reformat the comments to republish them. The author thanks everyone who posted comments and added to the discussion.