(fix category) |
(→Table of Contents: add list of tables) |
||
(15 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
== Table of Contents == | == Table of Contents == | ||
===I. Developing Wine=== | === I. Developing Wine === | ||
<ul> | <ul> | ||
====[[Wine Developer's Guide/Debugging Wine|1. Debugging Wine]]==== | ====[[Wine Developer's Guide/Debugging Wine|1. Debugging Wine]]==== | ||
Line 31: | Line 31: | ||
<li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#How_to_do_regression_testing_using_Git|How to do regression testing using Git]] | <li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#How_to_do_regression_testing_using_Git|How to do regression testing using Git]] | ||
<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> | |||
====[[Wine Developer's Guide/Coding Practice|4. Coding Practice]]==== | |||
<ol> | |||
<li>[[Wine_Developer's_Guide/Coding_Practice#Patch_Format|Patch Format]] | |||
<li>[[Wine_Developer's_Guide/Coding_Practice#Some notes about style|Some notes about style]] | |||
<li>[[Wine_Developer's_Guide/Coding_Practice#Quality Assurance|Quality Assurance]] | |||
<li>[[Wine_Developer's_Guide/Coding_Practice#Porting Wine to new Platforms|Porting Wine to new Platforms]] | |||
<li>[[Wine_Developer's_Guide/Coding_Practice#Adding New Languages|Adding New Languages]] | |||
</ol> | |||
====[[Wine_Developer's_Guide/Writing_Conformance_Tests|5. Writing Conformance Tests]]==== | |||
<ol> | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Introduction|Introduction]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#What to test for?|What to test for?]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Running the tests in Wine|Running the tests in Wine]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Cross-compiling the tests with MinGW-w64|Cross-compiling the tests with MinGW-w64]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Building and running the tests on Windows|Buiding and running the tests on Windows]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Inside a Test|Inside a Test]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Writing good error messages|Writing good error messages]] | |||
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Handling platform issues|Handling platform issues]] | |||
</ol> | |||
====[[Wine Developer's Guide/Documenting Wine|6. Documenting Wine]]==== | |||
<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#Writing_Wine_API_Documentation|Writing Wine API Documentation]] | |||
</ol> | </ol> | ||
</ul> | </ul> | ||
=== II. Wine Architecture === | |||
<ul> | |||
====[[Wine Developer's Guide/Architecture Overview|7. Overview]]==== | |||
<ol> | |||
<li>[[Wine Developer's Guide/Architecture Overview#Wine Overview|Wine Overview]] | |||
<li>[[Wine Developer's Guide/Architecture Overview#Standard Windows Architectures|Standard Windows Architectures]] | |||
<li>[[Wine Developer's Guide/Architecture Overview#Wine architecture|Wine architecture]] | |||
</ol> | |||
====[[Wine Developer's Guide/Kernel modules|8. Kernel modules]]==== | |||
<ol> | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#The_Wine_initialization_process|The Wine initialization process]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#Detailed memory management|Detailed memory management]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#Multi-processing in Wine|Multi-processing in Wine]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#Multi-threading in Wine|Multi-threading in Wine]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#Structured Exception Handling|Structured Exception Handling]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#File management|File management]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#NTDLL module|<tt>NTDLL</tt> module]] | |||
<li>[[Wine_Developer's_Guide/Kernel_modules#KERNEL32 Module|<tt>KERNEL32</tt> Module]] | |||
</ol> | |||
====[[Wine Developer's Guide/Windowing system|9. Windowing system]]==== | |||
<ol> | |||
<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]] | |||
</ol> | |||
====[[Wine Developer's Guide/COM in Wine|10. COM in Wine]]==== | |||
<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#A brief introduction to DCOM in Wine|A brief introduction to DCOM in Wine]] | |||
</ol> | |||
====[[Wine Developer's Guide/Wine and OpenGL|11. Wine and OpenGL]]==== | |||
<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#How it all works|How it all works]] | |||
<li>[[Wine Developer's Guide/Wine and OpenGL#Known problems|Known problems]] | |||
</ol> | |||
====[[Wine Developer's Guide/Outline of DirectDraw Architecture|12. Outline of DirectDraw Architecture]]==== | |||
<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#DirectDrawSurface inheritance tree|DirectDrawSurface inheritance tree]] | |||
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Interface Thunks|Interface Thunks]] | |||
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Logical Object Layout|Logical Object Layout]] | |||
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Creating Objects|Creating Objects]] | |||
</ol> | |||
====[[Wine Developer's Guide/Wine and Multimedia|13. Wine and Multimedia]]==== | |||
<ol> | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#Overview|Overview]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#Multimedia architecture|Multimedia architecture]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#Low level layers|Low level layers]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#Mid level drivers (MCI)|Mid level drivers (MCI)]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#High level layers|High level layers]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#MS ACM DLLs|MS ACM DLLs]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#MS Video DLLs|MS Video DLLs]] | |||
<li>[[Wine Developer's Guide/Wine and Multimedia#Multimedia configuration|Multimedia configuration]] | |||
</ol> | |||
===List of Tables=== | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-1|1-1. WineDbg misc commands]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-2|1-2. WineDbg flow control commands]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-3|1-3. WineDbg break & watch points]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-4|1-4. WineDbg stack manipulation]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-5|1-5. WineDbg directory & source file manipulation]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-6|1-6. WineDbg list command examples]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-7|1-7. WineDbg displays]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-8|1-8. WineDbg disassembly]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-9|1-9. WineDbg memory management]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-10|1-10. WineDbg Win32 objects management]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-11|1-11. WineDbg debug channels management]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-12|1-12. WineDbg debug channels management]] | |||
:[[Wine_Developer's_Guide/Debugging_Wine#1-13|1-13. Debuggers comparison]] | |||
:[[Wine Developer's Guide/Architecture Overview#7-1|7-1. Wine executables]] | |||
:[[Wine Developer's Guide/Architecture Overview#7-2|7-2. Memory layout (Windows and Wine)]] | |||
:[[Wine_Developer's_Guide/Kernel_modules#8-1|8-1. DOS, Win32 and NT paths equivalences]] | |||
:[[Wine_Developer's_Guide/Kernel_modules#8-2|8-2. File systems' properties]] | |||
:[[Wine_Developer's_Guide/Kernel_modules#8-3|8-3. Mapping of Windows device names into Unix device names]] | |||
:[[Wine_Developer's_Guide/Kernel_modules#8-4|8-4. Function consoles implementation comparison]] | |||
:[[Wine_Developer's_Guide/Kernel_modules#8-5|8-5. Console registry settings]] | |||
:[[Wine Developer's Guide/Wine and Multimedia#13-1|13-1. Wine MCI drivers]] | |||
:[[Wine Developer's Guide/Wine and Multimedia#13-2|13-2. Wine ACM drivers]] | |||
:[[Wine Developer's Guide/Wine and Multimedia#13-3|13-3. Wine VIDC drivers]] | |||
:[[Wine Developer's Guide/Wine and Multimedia#13-4|13-4. Wine multimedia configuration scheme]] | |||
</ul> | |||
[[Category:Documentation]] [[Category:Development]] | [[Category:Documentation]] [[Category:Development]] |
Revision as of 23:05, 7 February 2016
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
- 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