JeremyWhite (talk | contribs) (De-emphasize the authors, add myself :-/.) |
JeremyWhite (talk | contribs) (Add a step to describe how to build Wine.) |
||
Line 3: | Line 3: | ||
=== I. Developing Wine === | === I. Developing Wine === | ||
<ul> | <ul> | ||
====[[Wine Developer's Guide/Debugging Wine| | ====[[Building Wine|1. Building Wine]]==== | ||
====[[Wine Developer's Guide/Debugging Wine|2. Debugging Wine]]==== | |||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Debugging_Wine#Introduction|Introduction]] | <li>[[Wine_Developer's_Guide/Debugging_Wine#Introduction|Introduction]] | ||
Line 14: | Line 15: | ||
<li>[[Wine_Developer's_Guide/Debugging_Wine#Other debuggers|Other debuggers]] | <li>[[Wine_Developer's_Guide/Debugging_Wine#Other debuggers|Other debuggers]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Debug Logging| | ====[[Wine Developer's Guide/Debug Logging|3. Debug Logging]]==== | ||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Debug_Logging#Debugging_classes|Debugging classes]] | <li>[[Wine_Developer's_Guide/Debug_Logging#Debugging_classes|Debugging classes]] | ||
Line 23: | Line 24: | ||
<li>[[Wine_Developer's_Guide/Debug_Logging#A_Few_Notes_on_Style|A Few Notes on Style]] | <li>[[Wine_Developer's_Guide/Debug_Logging#A_Few_Notes_on_Style|A Few Notes on Style]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Other Debugging Techniques| | ====[[Wine Developer's Guide/Other Debugging Techniques|4. Other Debugging Techniques]]==== | ||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#Understanding_undocumented_APIs|Understanding undocumented APIs]] | <li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#Understanding_undocumented_APIs|Understanding undocumented APIs]] | ||
Line 29: | Line 30: | ||
<li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#Which_code_has_been_tested?|Which code has been tested?]] | <li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#Which_code_has_been_tested?|Which code has been tested?]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Coding Practice| | ====[[Wine Developer's Guide/Coding Practice|5. Coding Practice]]==== | ||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Coding_Practice#Patch_Format|Patch Format]] | <li>[[Wine_Developer's_Guide/Coding_Practice#Patch_Format|Patch Format]] | ||
Line 37: | Line 38: | ||
<li>[[Wine_Developer's_Guide/Coding_Practice#Adding New Languages|Adding New Languages]] | <li>[[Wine_Developer's_Guide/Coding_Practice#Adding New Languages|Adding New Languages]] | ||
</ol> | </ol> | ||
====[[Wine_Developer's_Guide/Writing_Conformance_Tests| | ====[[Wine_Developer's_Guide/Writing_Conformance_Tests|6. Writing Conformance Tests]]==== | ||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Introduction|Introduction]] | <li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Introduction|Introduction]] | ||
Line 48: | Line 49: | ||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Handling platform issues|Handling platform issues]] | <li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Handling platform issues|Handling platform issues]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Documenting Wine| | ====[[Wine Developer's Guide/Documenting Wine|7. Documenting Wine]]==== | ||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Documenting_Wine#An_Overview_Of_Wine_Documentation|An Overview Of Wine Documentation]] | <li>[[Wine_Developer's_Guide/Documenting_Wine#An_Overview_Of_Wine_Documentation|An Overview Of Wine Documentation]] | ||
Line 57: | Line 58: | ||
=== II. Wine Architecture === | === II. Wine Architecture === | ||
<ul> | <ul> | ||
====[[Wine Developer's Guide/Architecture Overview| | ====[[Wine Developer's Guide/Architecture Overview|8. Overview]]==== | ||
<ol> | <ol> | ||
<li>[[Wine Developer's Guide/Architecture Overview#Wine Overview|Wine Overview]] | <li>[[Wine Developer's Guide/Architecture Overview#Wine Overview|Wine Overview]] | ||
Line 63: | Line 64: | ||
<li>[[Wine Developer's Guide/Architecture Overview#Wine architecture|Wine architecture]] | <li>[[Wine Developer's Guide/Architecture Overview#Wine architecture|Wine architecture]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Kernel modules| | ====[[Wine Developer's Guide/Kernel modules|9. Kernel modules]]==== | ||
<ol> | <ol> | ||
<li>[[Wine_Developer's_Guide/Kernel_modules#The_Wine_initialization_process|The Wine initialization process]] | <li>[[Wine_Developer's_Guide/Kernel_modules#The_Wine_initialization_process|The Wine initialization process]] | ||
Line 74: | Line 75: | ||
<li>[[Wine_Developer's_Guide/Kernel_modules#KERNEL32 Module|<tt>KERNEL32</tt> Module]] | <li>[[Wine_Developer's_Guide/Kernel_modules#KERNEL32 Module|<tt>KERNEL32</tt> Module]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Windowing system| | ====[[Wine Developer's Guide/Windowing system|10. Windowing system]]==== | ||
<ol> | <ol> | ||
<li>[[Wine Developer's Guide/Windowing system#USER32 Module|<tt>USER32</tt> Module]] | <li>[[Wine Developer's Guide/Windowing system#USER32 Module|<tt>USER32</tt> Module]] | ||
<li>[[Wine Developer's Guide/Windowing system#X Windows System interface|X Windows System interface]] | <li>[[Wine Developer's Guide/Windowing system#X Windows System interface|X Windows System interface]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/COM in Wine| | ====[[Wine Developer's Guide/COM in Wine|11. COM in Wine]]==== | ||
<ol> | <ol> | ||
<li>[[Wine Developer's Guide/COM in Wine#Writing COM Components for Wine|Writing COM Components for Wine]] | <li>[[Wine Developer's Guide/COM in Wine#Writing COM Components for Wine|Writing COM Components for Wine]] | ||
<li>[[Wine Developer's Guide/COM in Wine#A brief introduction to DCOM in Wine|A brief introduction to DCOM in Wine]] | <li>[[Wine Developer's Guide/COM in Wine#A brief introduction to DCOM in Wine|A brief introduction to DCOM in Wine]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Wine and OpenGL| | ====[[Wine Developer's Guide/Wine and OpenGL|12. Wine and OpenGL]]==== | ||
<ol> | <ol> | ||
<li>[[Wine Developer's Guide/Wine and OpenGL#What is needed to have OpenGL support in Wine|What is needed to have OpenGL support in Wine]] | <li>[[Wine Developer's Guide/Wine and OpenGL#What is needed to have OpenGL support in Wine|What is needed to have OpenGL support in Wine]] | ||
Line 90: | Line 91: | ||
<li>[[Wine Developer's Guide/Wine and OpenGL#Known problems|Known problems]] | <li>[[Wine Developer's Guide/Wine and OpenGL#Known problems|Known problems]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Outline of DirectDraw Architecture| | ====[[Wine Developer's Guide/Outline of DirectDraw Architecture|13. Outline of DirectDraw Architecture]]==== | ||
<ol> | <ol> | ||
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#DirectDraw inheritance tree|DirectDraw inheritance tree]] | <li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#DirectDraw inheritance tree|DirectDraw inheritance tree]] | ||
Line 98: | Line 99: | ||
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Creating Objects|Creating Objects]] | <li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Creating Objects|Creating Objects]] | ||
</ol> | </ol> | ||
====[[Wine Developer's Guide/Wine and Multimedia| | ====[[Wine Developer's Guide/Wine and Multimedia|14. Wine and Multimedia]]==== | ||
<ol> | <ol> | ||
<li>[[Wine Developer's Guide/Wine and Multimedia#Overview|Overview]] | <li>[[Wine Developer's Guide/Wine and Multimedia#Overview|Overview]] |
Revision as of 21:40, 14 January 2019
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. Building Wine
2. Debugging Wine
3. Debug Logging
4. Other Debugging Techniques
5. Coding Practice
6. Writing Conformance Tests
7. 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
8. Overview
9. Kernel modules
10. Windowing system
11. COM in Wine
12. Wine and OpenGL
13. Outline of DirectDraw Architecture
14. 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