6/15/2014
Debugging the PE Explorer file open dialog - The Official Wine Wiki
Debugging the PE Explorer file open dialog WineHQ Wiki AppDB Bugzilla Forums Moinmoin Title Search: Wiki Links FrontPage RecentChanges FindPage HelpContents Debugging t...open dialog Page Tools Immutable Page Show Changes Get Info Show Raw Text Show Print View Attach File Delete Cache User Tools Login Wiki Sand Box Syntax Reference
Debugging the PE Explorer file open dialog PE Explorer from Heaventools is a program for examining the structure of Windows EXE and DLL files. As such it's sometimes useful for Wine debugging. While quite pricey, they have a free demo you can play with. The problem we're going to debug is that in the file open dialog, if you double click on a DLL it hangs. If you double click on an EXE file it works and the file opens, and if you click once on a DLL then hit the open button it also works. Only when you double click on a DLL does it hang - this is our first clue. A hang like this is often caused by deadlock: one thread is waiting for another, which is in turn waiting for something that never happens (maybe it's waiting for the first thread, in which case we have a deadly embrace). So our first port of call is to find out what the threads are doing when the app has stopped. To do this, start up winedbg in another terminal and use the "bt all" command. This gives us the following output (some of it has been deleted to keep width low): http://wiki.winehq.org/Debugging_the_PE_Explorer_file_open_dialog
1/5