Authors
Uwe Bonnes; Jonathan Buzzard; Zoran Dzelajlija; Klaas van Gend; Francois Gouget; Jon Griffiths; Albert den Haan; Mike Hearn; André Hentschel; Ove Kaaven; Tony Lambregts; Marcus Meissner; Gerard Patel; Dimitrie Paun; Michele Petrovski; Eric Pouech; Douglas Ridgway; John Sheets; Lionel Ulmer; Ulrich Weigand; Morten Welinder
Table of Contents
I. Developing Wine
- Introduction
- WineDbg modes of invocation
- Using the Wine Debugger
- Useful memory addresses
- Configuration
- WineDbg Expressions and Variables
- WineDbg Command Reference
- Other debuggers
- Debugging classes
- Debugging channels
- Are we debugging?
- Helper functions
- Controlling the debugging output
- A Few Notes on Style
- Patch Format
- Some notes about style
- Quality Assurance
- Porting Wine to new Platforms
- Adding New Languages
- Introduction
- What to test for?
- Running the tests in Wine
- Cross-compiling the tests with MinGW-w64
- Buiding and running the tests on Windows
- Inside a Test
- Writing good error messages
- Handling platform issues
1. Debugging Wine
2. Debug Logging
3. Other Debugging Techniques
4. Coding Practice
5. Writing Conformance Tests
6. Documenting Wine
II. Wine Architecture
- The Wine initialization process
- Detailed memory management
- Multi-processing in Wine
- Multi-threading in Wine
- Structured Exception Handling
- File management
- NTDLL module
- KERNEL32 Module
- DirectDraw inheritance tree
- DirectDrawSurface inheritance tree
- Interface Thunks
- Logical Object Layout
- Creating Objects