Difference between revisions of "Debugging"
Line 34: | Line 34: | ||
= Knowing what debug output to generate = | = Knowing what debug output to generate = | ||
− | + | <add detail> | |
== Turning on debugging in key modules == | == Turning on debugging in key modules == | ||
− | + | <add detail> | |
=== Turning on at compile time === | === Turning on at compile time === | ||
− | + | <add detail> | |
=== Turning on at runtime === | === Turning on at runtime === | ||
− | + | <add detail> | |
== Forcing a bugcheck == | == Forcing a bugcheck == | ||
− | + | <add detail> | |
== Generating a backtrace == | == Generating a backtrace == | ||
− | + | <add detail> | |
Revision as of 13:15, 17 January 2008
This page describes different methods of debugging ReactOS and the steps necessary to debug ReactOS.
Introduction
To be able to help ReactOS development, whether this be participating in the development of the source code or taking part in crucial testing, you are going to need knowledge of how to generate useful debug logs.
Useful debug logs are essential pieces of information which the developer needs to quickly pinpoint and identify exactly what the operating system is doing. Many people know how to get default debug output from the operating system, but this is generally not particularly useful for locating problems, esspecially bugs.
This article aims to give users knowledge not only on how to generate a debug log, but on how to generate a useful debug log which can be used directly to asses what the operating system is doing.
Available debugging methods
There are various methods to debug ReactOS, some require more knowledge than others. These are listed below.
COM1
<add detail>
Physical serial cable
<add detail>
Debug Output to file
<add detail>
Debug Output to screen
<add detail>
Virtual machines
<add detail>
Named pipe
<add detail>
Riderect to file
<add detail>
kdbg
<add detail>
gdb
<add detail>
Knowing what debug output to generate
<add detail>
Turning on debugging in key modules
<add detail>
Turning on at compile time
<add detail>
Turning on at runtime
<add detail>
Forcing a bugcheck
<add detail>
Generating a backtrace
<add detail>
Debugging preparation
One of the first things you need to decide is how to get the debugging output:
- Debug Output to serial port
- Debug Output to file
- Debug Output to screen
- Bochs
- QEMU
Options for debugging reactos:
- gdb -- The GNU Debugger
- Wine Debugging Using Wine Debug Channels
- kdbg -- The built-in kernel debugger