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
- Overview
- Multimedia architecture
- Low level layers
- Mid level drivers (MCI)
- High level layers
- MS ACM DLLs
- MS Video DLLs
- Multimedia configuration
- 1-1. WineDbg misc commands
- 1-2. WineDbg flow control commands
- 1-3. WineDbg break & watch points
- 1-4. WineDbg stack manipulation
- 1-5. WineDbg directory & source file manipulation
- 1-6. WineDbg list command examples
- 1-7. WineDbg displays
- 1-8. WineDbg disassembly
- 1-9. WineDbg memory management
- 1-10. WineDbg Win32 objects management
- 1-11. WineDbg debug channels management
- 1-12. WineDbg debug channels management
- 1-13. Debuggers comparison
- 7-1. Wine executables
- 7-2. Memory layout (Windows and Wine)
- 8-1. DOS, Win32 and NT paths equivalences
- 8-2. File systems' properties
- 8-3. Mapping of Windows device names into Unix device names
- 8-4. Function consoles implementation comparison
- 8-5. Console registry settings
- 13-1. Wine MCI drivers
- 13-2. Wine ACM drivers
- 13-3. Wine VIDC drivers
- 13-4. Wine multimedia configuration scheme
7. Overview
8. Kernel modules
9. Windowing system
10. COM in Wine
11. Wine and OpenGL
12. Outline of DirectDraw Architecture
13. Wine and Multimedia
List of Tables
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; Jeremy White