Difference between revisions of "User:Oldman"

From ReactOS Wiki
Jump to: navigation, search
(Corrected some erroneous instructions and added some notes to Unix log2lines.)
m
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
Having found the official tutorials sometimes hard to understand and ambiguous, my aim was to make these tutorials simple to understand; I hope that I have achieved that and you find them helpful.
+
<span style="font-size:130%;">'''NOTE''': The layman's guides have been migrated and separated into [https://reactos.org/wiki/User:Oldman/A_layman's_guide  Individual Layman's guides]</span>
  
What I have written here is from personal experience; if I cannot do it myself, then I cannot write about it.
+
This one page of all the guides has now been removed
  
 +
<hr>
  
<h2>A layman's guide - <span style="font-size:150%;color:#600080;">Getting an ISO to test</span></h2>
 
 
This should not be needed, but this is a layman's guide, so I will describe where to get your ReactOS iso from.
 
 
===Release ISO===
 
On the front page at '''<nowiki>https://www.reactos.org/</nowiki>''' on the right hand side of the navigation bar, you will find two download buttons <sup>[<span style="color:#600080">'''No1'''</span>]</sup>, click on either button and it will take you to the '''Download''' page for the release ISOs, where you have a choice of down loading a bootcd or a livecd, but there is also a link to the daily build ISOs page, further down this page <sup>[<span style="color:#600080">'''No2'''</span>]</sup>.
 
<gallery widths="416px" heights="325px" paddings="0px">
 
File:Download-No1a-FrontPage.png|[<span style="color:#600080">'''No1'''</span>] Front page links.
 
File:Download-fromNo1a-frontpage.png |[<span style="color:#600080">'''No2'''</span>] The Release ISO download page, with a link to the daily builds page.
 
</gallery>
 
 
<div style="border:1px solid #dd0000;padding:5px">'''Note:'''
 
If the latest release ISOs, are more then a week old, it is better not use them for testing, because they very quickly become out of date, due to the continual development of ReactOS.</div>
 
 
===Latest build ISO===
 
On the front page, if you scroll down a little, you will see over on the right side of the page, underneath <span style="font:normal 200% monospace">&nbsp;and more...</span>, the box shown in image <span style="color:#600080">'''No3a'''</span>.
 
<gallery widths="372px" heights="323px" paddings="0px">
 
File:Download-Nob1-FrontPage.png |[<span style="color:#600080">'''No3a'''</span>]  ‎
 
File:Download-Nob2-FrontPage.png |[<span style="color:#600080">'''No3b'''</span>] Download link.
 
</gallery>
 
If you click on the <span style="color:#0050c0">'''Daily builds'''</span> button, it will close the <span style="color:#0050c0">'''Gallery'''</span> section and open the <span style="color:#0050c0">'''Daily builds'''</span> section <sup>[<span style="color:#600080">'''No3b'''</span>]</sup>, to reveal the '''Download here!''' button.
 
If you then click on the '''Download here!''' button, it will take you to the Trunk Builds page <sup>[<span style="color:#600080">'''No4'''</span>]</sup>.
 
<gallery widths="800px" heights="487px" paddings="0px">
 
File:Download_Trunk_Builds.png |[<span style="color:#600080">'''No4'''</span>]‎ Page for the ‎daily (trunk) builds.
 
</gallery>
 
 
 
'''Trunk Builds page explained <small>[<span style="color:#600080">'''No4'''</span>]</small>''':
 
 
'''Revision''' - The input box shows the number of the last created ISO. The left and right arrows decrease or increase the number. You can also type a number into the box and press Enter on your keyboard or press the '''Search''' button. This is useful when you want to find a ISO from the past. '''Browse all created Builds''' button with take you away from this page to https://iso.reactos.org/, where there are folders for bootcd and livecd ISOs. Bootcd ISOs go back to Mid Jan 2008, newest at the bottom and the oldest at the top. Livecd ISOs currently only go back to April 2017 (this may alter each year).
 
 
'''Image Types''' - The check boxes here are only useful when you are searching for a particular build from the past. You can uncheck the types you do not want. The '''Search''' button updates the list of files.
 
 
'''<span style="color:#0050c0">Debug Boot CDs</span>'''
 
*reactos-bootcd-0.4.7-dev-575-g48b2714-x86-gcc-lin-dbg.7z
 
*reactos-bootcd-0.4.7-dev-575-g48b2714-x86-msvc-win-dbg.7z
 
'''<span style="color:#0050c0">Debug Live CDs</span>'''
 
*reactos-livecd-0.4.7-dev-575-g48b2714-x86-gcc-lin-dbg.7z
 
*reactos-livecd-0.4.7-dev-575-g48b2714-x86-msvc-win-dbg.7z
 
'''<span style="color:#0050c0">Release Boot CDs</span>'''
 
*reactos-bootcd-0.4.7-dev-575-g48b2714-x86-gcc-lin-rel.7z
 
'''<span style="color:#0050c0">Release Live CDs</span>'''
 
*reactos-livecd-0.4.7-dev-575-g48b2714-x86-gcc-lin-rel.7z
 
 
'''Size''' and '''Last changed''', are self explanatory.
 
 
 
<div style="border:1px solid #dd0000;padding:5px">'''Note:''' On the website there are several possibly confusing words, such as '''Trunk Builds''', '''Daily Builds''', '''Nightly Builds''', '''CDs''' and on a link button '''Latest Build!''', these all refer to the 7zipped ISO files that can be down-loaded at the page shown in image <span style="color:#600080">'''No4'''</span>.
 
</div>
 
 
 
<p style="font-size:150%;border-top:3px solid #600080;"></p>
 
 
 
<h2>A layman's guide - <span style="font-size:150%;color:#0000ff;">How to compile ReactOS.</span></h2>
 
 
In this tutorial there is also a Unix based subsection (this requires updating to git).
 
 
Git has now replaced SVN, so this tutorial now describes how to download the source with Git.
 
 
You will need to install '''git''' for Windows from '''https://git-for-windows.github.io/''' and '''TortoiseGit''' from '''https://tortoisegit.org/'''.
 
 
Next you will need to create a master folder to keep all the next folders in one place. This folder can be created in C: or D: (or any other drive partition), for example '''D:\ReactOSDevelopment''' or '''C:\ROS'''.
 
 
Create the following folders in your master folder:
 
 
1.  '''\source'''  (the name does not matter - you will download the source tree into this folder).
 
 
2.  '''\compiled''' (the name does not matter - this is the output folder where the binaries are complied to and the ISO is created).
 
 
3.  '''\RosBE'''    (this is where you will install RosBE).
 
 
You should now have something like the following examples.
 
 
Example No1
 
 
'''C:\ROS\source'''
 
 
'''C:\ROS\compiled'''
 
 
'''C:\ROS\RosBE'''
 
 
or
 
 
Example No2
 
 
'''D:\ReactOSDevelopment\source'''
 
 
'''D:\ReactOSDevelopment\compiled'''
 
 
'''D:\ReactOSDevelopment\RosBE'''
 
 
Using example No2, within '''D:\ReactOSDevelopment\''' create a '''compiled''' folder, a '''RosBE''' folder and a '''source''' folder.
 
Next, navigate into '''D:\ReactOSDevelopment\source''' and right click within the folder, then select '''Git Clone''', then in the next window, enter this url '''<nowiki>https://github.com/reactos/reactos.git</nowiki>'''; this will create a '''reactos''' folder and download the current source tree into it.
 
 
I have noticed this behaviour with Git; if you first copy the url, then click in the source folder, you will find that Git has put the copied url in the '''Url''' input and put the path to your source folder with the addition of reactos, in the '''Directory''' input.
 
See <sup>[<span style="color:#0000ff">'''1'''</span>]</sup> <sup>[<span style="color:#0000ff">'''2'''</span>]</sup> <sup>[<span style="color:#0000ff">'''3a'''</span>]</sup> <sup>[<span style="color:#0000ff">'''3b'''</span>]</sup>  <sup>[<span style="color:#0000ff">'''4'''</span>]</sup> in the '''Getting the source with Git''' section below.
 
 
For how to update your local source, see the subsection '''Updating a local source tree with Git'''.
 
 
Having downloaded the source you will now need to download and install the ReactOS Build Environment <sup>[<span style="color:#0000ff">'''5'''</span>]</sup> <sup>[<span style="color:#0000ff">'''6'''</span>]</sup> <sup>[<span style="color:#0000ff">'''7'''</span>]</sup>
 
(a link to the latest version <small>(''Windows and Unix'')</small> can be found here: '''https://www.reactos.org/wiki/ReactOS_Build_Environment''') into '''D:\ReactOSDevelopment\RosBE''' (I select to have a desktop shortcut. See also <span style="color:#dd0000">'''Note'''</span>), then start it, and from it's command prompt: <sup>[<span style="color:#0000ff">'''8'''</span>]</sup>
 
 
'''1'''.  Navigate to '''D:\ReactOSDevelopment\compiled''' and type '''D:\ReactOSDevelopment\source\reactos\configure ninja'''
 
 
'''2'''. Still within '''D:\ReactOSDevelopment\compiled''' type '''ninja bootcd'''
 
 
or
 
 
'''3'''.  Still within '''D:\ReactOSDevelopment\compiled''' type '''ninja livecd'''
 
 
or
 
 
'''4'''.  Still within '''D:\ReactOSDevelopment\compiled''' type '''ninja hybridcd'''
 
 
or if want all three ISO images
 
 
'''5'''.  Still within '''D:\ReactOSDevelopment\compiled''' type '''ninja bootcd livecd hybridcd'''
 
 
 
Now you should find the '''bootcd''' and/or the '''livecd''' and/or '''hybridcd''' in '''D:\ReactOSDevelopment\compiled\reactos'''.
 
 
If you have problems compiling after you have updated your local source tree, try typing '''ninja clean''' and then start again at step '''1''' above.
 
 
 
<div style="border:1px solid #dd0000;padding:5px"><span style="color:#dd0000">'''Note'''</span>: If you did not install '''RosBE''' with a desktop shortcut selected, then open a command prompt window and navigate to '''D:\ReactOSDevelopment\RosBE''' and type '''RosBE''' to start it.</div>
 
 
===Compiling - Screenshots===
 
 
====Getting the source with Git====
 
<gallery widths="429px" heights="545px" paddings="0px">
 
File:git-clone-1.png|[<span style="color:#0000ff">'''1'''</span>] Right click on the source folder and select '''Git Clone..''' in the drop down menu.
 
</gallery>
 
 
The following window will then open.
 
 
<gallery widths="547px" heights="381px" paddings="0px">
 
File:Git-clone-2.png|[<span style="color:#0000ff">'''2'''</span>] If the URL is correct (https://github.com/reactos/reactos.git) and the Directory (for the source) is correct, then the rest can be left as they are. Click on the '''OK''' button to start the download process.
 
</gallery>
 
 
<gallery widths="505px" heights="334px" paddings="0px">
 
File:source-progress-1.png|[<span style="color:#0000ff">'''3a'''</span>]  This shows the beginning of the download process.
 
File:source-progress-2.png|[<span style="color:#0000ff">'''3b'''</span>]  This shows Git downloading the files.
 
</gallery>
 
 
<gallery widths="505px" heights="334px" paddings="0px">
 
File:source-completed.png|[<span style="color:#0000ff">'''4'''</span>] This is shows a source download completed.
 
</gallery>
 
 
 
====Updating a local source tree with Git====
 
<gallery widths="499px" heights="450px" paddings="0px">
 
File:Git-pull-1.png| Right click on your source folder, then select '''TortoiseGit''', then '''Pull...'''
 
File:Git-Pull-2.png| If this window has the same settings as in the above, then leave it as it is and click '''OK'''
 
</gallery>
 
<gallery widths="505px" heights="334px" paddings="0px">
 
File:Git-pull-3.png| This shows a completed update of the source folder from reactos.git
 
</gallery>
 
 
 
==== Configuring and installing RosBE ====
 
<gallery widths="503px" heights="321px" paddings="0px">
 
File:rosbe-1.png|[<span style="color:#0000ff">'''5'''</span>] Choosing the installation folder for RosBE.
 
</gallery>
 
 
<gallery widths="502px" heights="327px" paddings="0px">
 
File:rosbe-2.png|[<span style="color:#0000ff">'''6'''</span>] Choosing the folder where the source code is to be found.
 
</gallery>
 
 
<gallery widths="503px" heights="386px" paddings="0px">
 
File:rosbe-3.png|[<span style="color:#0000ff">'''7'''</span>] Choosing a Desktop icon.
 
</gallery>
 
 
 
==== Configuring and installing RosBE ====
 
<gallery widths="503px" heights="321px" paddings="0px">
 
File:rosbe-1.png|[<span style="color:#0000ff">'''5'''</span>] Choosing the installation folder for RosBE.
 
</gallery>
 
 
<gallery widths="502px" heights="327px" paddings="0px">
 
File:rosbe-2.png|[<span style="color:#0000ff">'''6'''</span>] Choosing the folder where the source code is to be found.
 
</gallery>
 
 
<gallery widths="503px" heights="386px" paddings="0px">
 
File:rosbe-3.png|[<span style="color:#0000ff">'''7'''</span>] Choosing a Desktop icon.
 
</gallery>
 
 
====Compiling====
 
 
<gallery widths="715px" heights="546px" paddings="0px">
 
File:RosBEcompiling.png|[<span style="color:#0000ff">'''8'''</span>] RosBE in action.
 
</gallery>
 
In the screenshot of RosBE, you can see that the working directory as been changed from '''source''' to '''compiled''', then '''configure ninja''' as been executed and completed. The command line now shows '''ninja bootcd''' waiting to be executed.
 
 
 
===<span style="color:#0000ff">How to compile ReactOS - '''Unix subsection'''</span>===
 
You will need '''Git''', which should be in your system. To test for Git, type '''git --help''' at the command prompt in a terminal window, if it doesn't displayed the help text, then you will have to install it through your package manager.
 
 
You will also need to download the ReactOS Build Environment (RosBE), from  '''https://www.reactos.org/wiki/ReactOS_Build_Environment'''
 
 
'''Example:'''
 
 
Unpack the RosBE installation files to '''/home/RosBE-Unix-2.1.2''' directory.
 
 
Create the following folders '''/home/RosBuild''' then '''/home/RosBuild/RosBE''' (install RosBE in this folder).
 
 
'''Note:''' The default directory for RosBE, is '''/usr/local/RosBE''', if you prefer, you can use that.
 
 
To continue with my example; Open the folder '''/home/RosBE-Unix-2.1.2''' and right click within <sup>[<span style="color:#0000ff">'''9'''</span>]</sup>, for the menu, '''Window''' - '''Terminal Here''' <sup>[<span style="color:#0000ff">'''10'''</span>]</sup>.
 
 
In the terminal window, run the builder script by typing '''./RosBE-Builder.sh'''
 
 
If it reports any missing tools <sup>[<span style="color:#0000ff">'''11'''</span>]</sup>, you will need to install them (the package '''devx.sfs''' worked for me).
 
 
Then run the script as before, and if it reports all tools '''OK''' <sup>[<span style="color:#0000ff">'''12'''</span>]</sup>, then you can continue.
 
 
To follow my example, type '''/home/RosBuild/RosBE''' for the install directory and then follow the instructions from the running script.
 
 
If all went well, then it will ask you about creating a shortcut, just follow the instructions.
 
 
I created the shortcut in '''/home''' then copied it onto the desktop and checked to see if it ran RosBE.
 
 
To populate your source folder, you will need to open a terminal window within the empty source folder; right click - '''Window''' - '''Terminal Here''', then at the command prompt, type: '''git clone https://github.com/reactos/reactos.git'''. This will create a folder called '''reactos''' and download the main source code.
 
 
To get the revision number, right click on the reactos folder and select '''Window''' - '''Terminal Here''', then at the command prompt, type: '''git describe''', which will display something like this '''0.4.7-dev-532-g3cd76b91b5'''.
 
 
The alternative to the 'Right click-Window-Terminal Here' method, is to type the full address, eg. '''/home/RosBuild/source'''.
 
 
To update the source code, right click within the reactos folder and select '''Window''' - '''Terminal Here''', then at the command prompt type: '''git pull https://github.com/reactos/reactos.git'''
 
 
'''NOTE''': You must be '''actually in''' the '''source''' folder to clone and '''actually in''' the '''reactos''' folder to update the source or get the revision number.
 
 
====Compiling====
 
 
Start RosBE and at the terminal command prompt type '''cd /home/RosBuild/compiled''' (or the directory that you want ReactOS to be built into).
 
Then type '''/home/RosBuild/source/reactos/configure.sh'''. When the script finishes, type '''cd /home/RosBuild/compiled/reactos/''' and then '''ninja livecd''' or '''ninja bootcd'''
 
 
====Screenshots====
 
 
<gallery widths="435px" heights="234px" paddings="0px">
 
File:Terminalinwin-1.png|[<span style="color:#0000ff">'''9'''</span>] Move your mouse pointer into the window and right button click.
 
</gallery>
 
<gallery widths="482px" heights="468px" paddings="0px">
 
File:Terminalwin-2.png|[<span style="color:#0000ff">'''10'''</span>] Select as shown for a terminal window.
 
</gallery>
 
 
<gallery widths="744px" heights="430px" paddings="0px">
 
File:RosBE-Builder-1.png|[<span style="color:#0000ff">'''11'''</span>] RosBE installation script (RosBE-Builder.sh) running in a terminal window, showing missing dependencies.
 
</gallery>
 
<gallery widths="744px" heights="430px" paddings="0px">
 
File:RosBE-Builder-2.png|[<span style="color:#0000ff">'''12'''</span>] RosBE installation script (RosBE-Builder.sh) running in a terminal window, showing dependencies all found.
 
</gallery>
 
 
 
<p style="font-size:150%;border-top:3px solid #0000ff;"></p>
 
 
 
<h2>A layman's guide - <span style="font-size:150%;color:#b60000;">How to get a debug log.</span></h2>
 
 
This guide shows you how to, using the built in ReactOS debugger, get a debug log. You will need to install or run one of the debug ISOs in the list below and choose '''Debug''' mode at the boot options menu <sup>[<span style="color:#b60000">'''1'''</span>]</sup>; for other modes see '''Variations''' below, but please read this section first.
 
 
Debug ISOs
 
<pre style="border:none;background:white;">
 
reactos-bootcd-0.4.7-dev-581-g9c790df-x86-gcc-lin-dbg.7z
 
reactos-bootcd-0.4.7-dev-575-g48b2714-x86-msvc-win-dbg.7z
 
 
reactos-livecd-0.4.7-dev-575-g48b2714-x86-gcc-lin-dbg.7z
 
reactos-livecd-0.4.7-dev-575-g48b2714-x86-msvc-win-dbg.7z
 
</pre>
 
 
===Hardware requirements:===
 
* A test computer with a serial port.
 
* A second computer with a serial port and Putty installed (or similar app).
 
* A nullmodem cable to connect both computers.
 
===Software===
 
Win32 Putty - http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html You will also find the source code for Windows and Unix at this link, but Linux users may be able to get Putty through their Package Manager.
 
 
=== Setting up Putty. ===
 
There are some vital settings in Putty, which need to be set, so that Putty can capture a debug log.
 
In putty go to '''Category''' and select '''Session''', then set the following inputs to these values:
 
<br />
 
'''Serial line''' = '''COM1'''
 
<br />
 
'''Speed''' = '''115200'''
 
<br />
 
'''Connection type''' = '''Serial'''
 
 
Back to '''Category''' and select '''Logging''', in '''Session logging:''' check '''All session output'''. Note where Putty saves the log file and change if required; use the '''Browse''' button for the destination folder.
 
 
See in '''Screenshots''' <sup>[<span style="color:#b60000">'''2'''</span>] [<span style="color:#b60000">'''3'''</span>]</sup> below for visual information.
 
 
Save the above changes in putty, with a name of your choice, in '''Saved Sessions''', then use the '''Save''' button. It can then be loaded the next time you use Putty, by using the '''Load''' button. Note: logging is started by using the '''Open''' button.
 
 
=== The ReactOS debugger ===
 
The ReactOS debugger has some commands that can be used from the command line; all of the commands are typed into the ReactOS test computer, but will be viewed in the terminal window (i.e putty) on the second computer. To enter a command, press the hotkey combination of '''Tab'''<small>+</small>'''k''', which halts the system and gives you the command prompt which looks like this: '''kdb:>''' where you can then enter the command.
 
 
==== Commands: ====
 
'''Tab'''<small>+</small>'''k''' - this command halts the system so you can enter commands into the debugger.
 
<br />
 
'''bt''' - this command gives a backtrace; use it when ROS enters the debugger (see below).
 
<br />
 
'''cont''' - this is short for continue.
 
<br />
 
'''set condition <big><big>*</big></big> first always''' - this command tells ROS to enter the debugger on the first exception.
 
 
The following is an example of when ROS enters the debugger (see also in the <sup>[<span style="color:#b60000">'''4'''</span>]</sup> screenshot below):
 
<br />
 
<span style="color:#ffffff;background:#000000">Entered debugger on last-chance exception (Exception Code: 0xc0000001) (Unknown/User defined exception)<br />kdb></span>
 
 
=== Getting a backtrace: ===
 
By looking in the Putty window, you will see when ROS enters the debugger, when that happens, you need to enter '''bt''' at the command prompt, like so:
 
'''kdb:> bt''' <sup>[<span style="color:#b60000">'''4'''</span>]</sup> and press '''enter''' on the keyboard.
 
You may see this
 
<br />
 
'''--- Press q to abort, any other key to continue ---''' <sup>[<span style="color:#b60000">'''5'''</span>]</sup>
 
<br />
 
If you do see it, then just press any key other than q, it may show again, just repeat until you are back at the command prompt of '''kdb:>'''
 
 
=== Getting a more detailed backtrace: ===
 
When you see debug info streaming into putty <sup>[<span style="color:red">Note</span>]</sup>, then press the hotkey combination of '''Tab'''<small>+</small>'''k''' on your keyboard, then type '''set condition <big><big>*</big></big> first always''' at the command prompt and press '''enter''' on the keyboard, then type '''cont''' <sup>[<span style="color:#b60000">'''6'''</span>]</sup> and press '''enter''' on the keyboard. Setting the condition to first always, will make ReactOS enter the debugger on every exception, which it will do many times, and each time you will have to type '''bt''' then '''cont'''.
 
 
<div style="border:1px solid #dd0000;padding:5px"><span style="color:#ff0000">'''Note'''</span>: If you are testing an app, then it is better to wait until you are ready to run the app, before setting the condition to first always, else you could be overwhelmed with ReactOS entering the debugger.</div>
 
 
=== No working keyboard! ===
 
Currently <small>(Jan 2015)</small> usb support is problematic, so your keyboard may not work! If you have found that your usb keyboard does not work with ReactOS, and ReactOS bsods at or before the first input window in the installation process, but after it is running in memory, you should still be able to get a debug log by using a '''livecd debug''' version (example: '''reactos-livecd-0.4.7-dev-575-g48b2714-x86-gcc-lin-rel.7z'''). The livecd versions currently default to '''Debug''' mode, so when it boots, it will output debug info to the serial port, but you will not be able to get a '''backtrace'''!
 
 
=== Advice: ===
 
'''Do not''' use '''Tab'''<small>+</small>'''k''' and '''bt''' to get a '''backtrace''', when ReactOS does not automatically enter the debugger! If you think by doing so, you will get some more useful information for the dev's to work with (which I have done in the past), you will not, it is a waste of time, the backtrace is of no value!
 
 
Putty names the file putty.log, it would be a good idea to re-name it, because the next time that putty is run, it will over-write the file called "putty.log". I use something descriptive, in this format "'''''app name - ReactOS revision number'''''", for example "'''gimp-1.0.4 [0.4.7-dev-575-g48b2714]'''".
 
 
'''TIP:'''
 
If you find that when you use the test computer's keyboard to enter commands, nothing appears at the Command Prompt on the second (receiving) computer, then type the command on the second computer's keyboard, you then should see what you type appear at the Command Prompt.
 
 
=== Variations ===
 
'''RosDbg''' - This is only useful when ReactOS is compiled with a Microsoft compiler, which adds extra debugging code into ReactOS, which can output extra debug info. In use, the difference is in the keyboard input, where you can only use '''Tab''' <small>+</small> '''k''' on the ReactOS test computer, all other keyboard input is via the logging computer's keyboard.
 
 
'''Screen''' - In this mode, debug information is written to the screen and you will have to take photos to be able to submit the information in a JIRA Issue. Any keyboard input is done on the ReactOS test computer keyboard. The instructions for '''Debug''' mode also apply to '''Screen''' mode.
 
 
'''Log file''' - This writes all debug output to a '''debug.log''' at '''C:\reactos\''', on the ReactOS test computer's hard drive. Any keyboard input is done on the ReactOS test computer keyboard. You may, also need to use a Linux livecd to be able to recover the log file from the test computer.
 
 
=== Getting a debug log - Screenshots ===
 
 
<gallery widths="443px" heights="213px" paddings="0px">
 
File:StartMenu.png|[<span style="color:#b60000">1</span>] ReactOS boot options menu.
 
</gallery>
 
<gallery widths="456px" heights="435px" paddings="0px">
 
File:PuttyConf-1.png|[<span style="color:#b60000">2</span>] PuTTY Configuration - Session
 
File:PuttyConf-2.png|[<span style="color:#b60000">3</span>] PuTTY Configuration - Logging
 
</gallery>
 
<gallery widths="678px" heights="46px" paddings="0px">
 
File:Debugger-1.png|[<span style="color:#b60000">4</span>] Ros in the debugger showing '''bt''' entered at the command prompt.
 
</gallery>
 
<gallery widths="579px" heights="17px" paddings="0px">
 
File:Debugger-2.png|[<span style="color:#b60000">5</span>] You may see this after entering '''bt''' and after the debug info has stopped.
 
</gallery>
 
<gallery widths="445px" heights="48px" paddings="0px">
 
File:Debugger-3.png|[<span style="color:#b60000">6</span>] The debugger has been entered manually and shows  '''set condition '''*''' first always''' typed at the command prompt and '''cont'''.
 
</gallery>
 
<gallery widths="765px" heights="37px" paddings="0px">
 
File:Break.png|[<span style="color:#b60000">7</span>] If you see this, type '''o''' as shown and press enter on your keyboard.
 
</gallery>
 
 
=== Getting a debug log from VirtualBox ===
 
This section covers a simple VirtualBox setup using com0com or tty0tty as a virtual null modem cable to connect to Putty; all running on the same computer, no need for a real null modem cable and a second computer.
 
 
VirtualBox for Windows, Unix,  can be down loaded from https://www.virtualbox.org/ (plus installation help, should you need it), it is also available for Unix through your package manager.
 
 
'''Note''' that for Unix, you will need to have the development package and the kernel source or header files installed.
 
 
Install VirtualBox for your operating system, then start it. You will first need to create a virtual machine to install ReactOS into; this is done by clicking on the blue '''New''' button. In the first setup window you will need to give it a name in '''Name:''', then set it to '''Microsoft Windows''' in '''Type:''' and then set it to, either '''WindowsXP(32bit)''' or '''Windows 2003(32 bit)''' in '''Version:''', then for a simple setup, you can accept all the defaults in all the other setup windows (I alter just one item, I select '''VHD (Virtual Hard Disk)''' in the last setup window). There is no need to install ReactOS into the virtual machine just yet, if you want to log the debug output from the start of an installation.
 
 
'''Note:''' You may find it helpful if you name the virtual machine with a descriptive name, such as '''0.4.7-dev-582-g74cc915''' or  '''ReactOS-g74cc915''' or '''ROS-0.4.6''' (g74cc915 is a revision number and 0.4.6 is a release number), especially if you intend doing some serious debugging and having several virtual machines with different versions of ReactOS installed.
 
 
There is another user's wiki here https://www.reactos.org/wiki/User:Matthiasbasler which covers a more detailed setup for VirtualBox.
 
 
====Windows - com0com====
 
 
Get the latest '''com0com''' from https://sourceforge.net/projects/com0com/files/com0com/ and install it. Then run setup <sup>[<span style="color:#b60000">'''8a'''</span>]</sup>, click on the '''Add Pair''' button, which creates a pair of virtual ports, then click on the '''Apply''' button. There is no need to tick any of the tick boxes.
 
 
In the setup window you will see '''CNCA0''' and '''CNCB0''' which are the newly created virtual ports <sup>[<span style="color:#b60000">'''8'''</span>]</sup> (If you should ever have the need to add more virtual ports, then the next pair will be '''CNCA1''' and '''CNCB1'''). The '''CNCA0'''  is used in the '''<u>P</u>ath/Address:''' in VirtualBox virtual machine serial configuration <sup>[<span style="color:#b60000">'''10'''</span>]</sup> in this format '''\\.\CNCA0''' and the '''CNCB0''' is used in the '''Serial line''' in the Putty serial configuration <sup>[<span style="color:#b60000">'''11a'''</span>]</sup> just as it is.
 
 
The com0com virtual ports process remains until you use the '''Remove''' button in the setup app, to remove them.
 
 
====Unix - tty0tty====
 
 
You can get '''tty0tty''' from https://sourceforge.net/projects/tty0tty/files/ (the latest is currently tty0tty-1.2).
 
 
Unpack the package '''tty0tty-1.2tgz''' to a folder; my OS was able to unpack it to '''/tty0tty-1.2/''', just by clicking on the package.
 
 
It requires compiling, so navigate to the directory '''/tty0tty-1.2/pts''' (cd /tty0tty-1.2/pts) and open a terminal window (right click - '''Window''' - '''Terminal here'''). At the command prompt type '''make''' and shortly you should have an executable file in the '''pts''' folder.
 
Then still within the '''pts''' folder/directory, type '''./tty0tty''' at the command prompt to run <sup>[<span style="color:#b60000">'''8b'''</span>]</sup>. The output could be
 
 
'''(/dev/pts/1) <=> (/dev/pts/2)'''
 
 
or
 
 
'''(/dev/pts/2) <=> (/dev/pts/3)'''
 
 
it may vary. But whatever the left side is, such as '''/dev/pts/2''' will be entered into the '''<u>P</u>ath/Address:''' in the VirtualBox virtual machine's serial configuration <sup>[<span style="color:#b60000">'''10'''</span>]</sup> and whatever the right side is, such as '''/dev/pts/3''' will be entered into the '''Serial line''' in the Putty Serial configuration, instead of the default com or tty <sup>[<span style="color:#b60000">'''11b'''</span>]</sup>.
 
 
I end the tty0tty virtual ports process, by using the '''Ctrl''' - '''c''' combination, but I would expect it to terminate when the terminal window is closed.
 
 
There is another folder in the directory /tty0tty-1.2/module which also requires compiling. This will, when run, create several pairs of virtual ports, which remain until the OS is re-installed or upgraded. I have not used it or included it within this tutorial.
 
 
====Testing com0com and tty0tty====
 
 
To test if it works, configure one instance of putty with '''CNCA0''' in Windows or '''/dev/pts/2''' in Unix and another instance of putty with '''CNCB0''' in Windows or '''/dev/pts/3''' in Unix, then run both Windows Puttys or both Unix Puttys and type into each terminal window. If the input from each terminal window is shown in the other terminal window (what is typed into Putty No1 should display in Putty No2, also what is typed into Putty No2 should be displayed in Putty No1), then you have a working virtual null modem cable.
 
 
Now you can run your VirtualBox virtual machine and install ReactOS.
 
 
'''Note:''' When you run your virtual machine with an installed OS, then make sure that there is no bootable media in any of your external drives (floppy, USB or CD/DVD), else the VirtualBox virtual machine will boot it instead of the installed OS.
 
 
Now you can refer back to [[#The_ReactOS_debugger]]
 
 
====Screenshots====
 
 
<gallery widths="451px" heights="391px" paddings="0px">
 
File:Setup_for_com0com.png|[<span style="color:#b60000">8a</span>] Setup window for com0com.
 
File:tty0tty.png|[<span style="color:#b60000">8b</span>] ‎Starting tty0tty.
 
</gallery>
 
 
 
<gallery widths="759px" heights="588px" paddings="0px"> .
 
File:VirtualBox_Manager.png|[<span style="color:#b60000">9</span>] This is the main window in VirtualBox. It looks the same in both Unix and Windows. Use the '''New''' button to create a new virtual machine, the '''Settings''' button to add or alter settings (select the virtual machine first) and the '''Start''' button starts the selected virtual machine.
 
</gallery>
 
 
<gallery widths="654px" heights="429px" paddings="0px">
 
File:VirtualBox-Settings.png|[<span style="color:#b60000">10</span>] This is the Serial port settings window in VirtualBox. In the '''<u>P</u>ath/Address:''' it is '''\\.\CNCA0''' for '''com0com''' in Windows and '''/dev/pts/2''' for '''tty0tty''' in Unix.
 
</gallery>
 
 
<gallery widths="476px" heights="435px" paddings="0px">
 
File:PuTTY_Configuration.png|[<span style="color:#b60000">11a</span>] Windows '''com0com''' Putty Serial configuration.
 
File:Putty-tty0tty.png|[<span style="color:#b60000">11b</span>] Unix '''tty0tty''' Putty Serial configuration.
 
</gallery>
 
 
 
<p style="font-size:150%;border-top:3px solid #b60000;"></p>
 
 
 
<h2>A layman's guide - <span style="font-size:150%;color:#006000;">How to create a JIRA Issue for your bug.</span></h2>
 
 
 
From the ReactOS.org front page, go to the JIRA page (https://jira.reactos.org/secure/Dashboard.jspa) by clicking on the '''JIRA''' link at the top of the page. If you successfully followed the link you should now be at the Dashboard page of ReactOS JIRA, on the right side of the page <sup><span style="color:#006000">['''1''']</span></sup>, you should see a login form (there is also a login link in the top right of the page, which will open another page with a log in form), just use your forum username and password.
 
 
<gallery widths="655px" heights="400px" paddings="0px">
 
JIRA-Dashboard_login.png|<span style="color:#006000">['''1''']</span> Where to log into JIRA.
 
</gallery>
 
 
<div style="border:1px solid #dd0000;padding:5px">'''Note:''' If you have only just created an account for the forum, you may find that you cannot log into JIRA, if that as happened to you, you will have to wait a few hours and try again (it takes time for your login details (user name, password) to get to all the places it is needed). If at any time you find that you cannot log in, there is something else that you could try; go to the ReactOS.org front page and log out, then log in, go back to the Dashboard page of ReactOS JIRA; now try logging in again.</div>
 
 
When you have logged in, the next thing to do, is a search to see if your bug issue has been reported already. Use the '''Search''' box at the far right of the navigation bar at the top of the page <sup><span style="color:#006000">['''1''']</span></sup> or on the '''Issues''' link on the navigation bar <span style="color:#006000"><sup>['''2''']</sup></span>.
 
<gallery widths="286px" heights="192px" paddings="0px">
 
File:JIRA-search.png|<span style="color:#006000">['''2''']</span> Search for issues.
 
</gallery>
 
Click the '''Search for issues''', which will take you to the '''Search''' <span style="color:#006000"><sup>['''3''']</sup></span> window.
 
<gallery widths="1075" heights="500" paddings="0px">
 
File:SearchPage.png|<span style="color:#006000">['''3''']</span> Search window.
 
</gallery>
 
You need to put your search word(s) in the box '''Contains text''' and press Enter on your keyboard. The list in the side window will update and the first result will be highlighted and the report will be shown in the main window. You can scroll down the list in the side window, by using the down arrow key on your keyboard; the main window will then update with the report which is highlighted in the side window. If you think a reported issue matches the bug issue you wish to report, then, if you think that you can add further information which could be helpful, then use the '''Comment''' button <span style="color:#006000"><sup>['''10''']</sup></span> at the bottom of all the '''Comments''', which opens the '''Comment''' editor <span style="color:#006000"><sup>['''11''']</sup></span>. When you have made your comment, click on the '''Add''' at the bottom right of the editor window.
 
 
If you did not find anything that could be the same bug as yours, then you will have to create your own bug Issue report.
 
<gallery widths="643px" heights="113px" paddings="0px">
 
Jira-Create-Issue-button.png|<span style="color:#006000">['''4''']</span> Select '''Create Issue''' which will open the '''Create Issue''' form.
 
</gallery>
 
 
Don't be intimidated by JIRA, it is very simple to create an issue! You will need to be logged into JIRA and you will see a nice blue '''Create Issue''' button to click, at the top of the page on the navigation bar <sup><span style="color:#006000">['''4''']</span></sup>, which will open a '''Create Issue''' form <sup><span style="color:#006000">['''5''']</span></sup>, when the form appears, there are just 2 input boxes to fill in (leave the others alone).
 
 
<gallery widths="813px" heights="705px" paddings="0px">
 
File:Jira-Create-Issue-Form.png|<span style="color:#006000">['''5''']</span> The '''Create Issue''' form. Fill in the input boxes which I have coloured yellow.
 
</gallery>
 
 
Give a short description of the problem in '''Summary''' (this will be the title of the report).
 
 
In '''Description''', state if you were testing in real hardware (list your computer specification), or in a virtual machine (state what VM you use), then the revision number of ReactOS that you are using (if the problem involves additional software, then include the down-load link to that software), then describe what happens and how to replicate the problem. Here https://jira.reactos.org/browse/CORE-12843 is a good report to give you some ideas on how to make a helpful report, which will help the developers find and fix the problem.
 
 
If you get a debug log or take a photo or video, use the '''Browse''' link in '''Attachment''' or drag and drop files into the '''Attachment''' to upload it.
 
 
That is all you need to fill in, leave the rest to the developers. To submit your report, click on the '''Create''' button in the bottom right of the form.
 
 
 
=== Adding more debug logs, photos and videos. ===
 
Having created a JIRA Issue for your bug, you have a need to add another debug log, photo or video.
 
<gallery widths="660px" heights="65px" paddings="0px">
 
File:JIRA-Issue-button.png |<span style="color:#006000">['''6''']</span> Issues button.
 
</gallery>
 
 
Go to ReatOS JIRA and log in. Then go to the '''Issues''' <sup><span style="color:#006000">['''6''']</span></sup> button and select '''Reported by Me''' <sup><span style="color:#006000">['''7''']</span></sup> and your Issues will be shown.
 
 
<gallery widths="379px" heights="431px" paddings="0px">
 
File:JIRA-add-alter-Issue-No2.png|<span style="color:#006000">['''7''']</span> Then click on the '''Reported by Me''' link, which will take you to a page dedicated to your Issues <span style="color:#006000"><sup>['''8''']</sup></span>.
 
</gallery>
 
<gallery widths="973px" heights="393px" paddings="0px">
 
File:JIRA reported-by-me page.png |<span style="color:#006000">['''8''']</span> '''Reported by me''' Issues window.
 
</gallery>
 
Find your report and then scroll down the side window and select the Issue you want to add more files to. Then use either the '''More''' tab, then in the drop down list, click the '''Attach files''' link <sup><span style="color:#006000">['''9''']</span></sup>.
 
<gallery widths="494px" heights="410px" paddings="0px">
 
File:ADDfiles reported by me.png |<span style="color:#006000">['''9''']</span> Add files.
 
</gallery>
 
 
Or further down at '''Attachments''', you can use the '''Browse''' link or drag and drop files into '''Attachments''' to upload it <sup><span style="color:#006000">['''9''']</span></sup>. In the '''Comment''' box you can describe the attached file(s) and any further information about the Issue you wish to add, then use the '''Attach''' button at the bottom of the form, to attach it all to the report.
 
 
<gallery widths="350px" heights="154px" paddings="0px">
 
File:JIRA-add-comment.png ‎|<span style="color:#006000">['''10''']</span> Below the last comment, you will find the '''Comment''' button.
 
</gallery>
 
 
If you only want to add more information, or to reply to a question from a developer, use the '''Comment''' button <sup><span style="color:#006000">['''10''']</span></sup> at the bottom left of the page, which will open a '''Comment''' form. When you have finished writing in the '''Comment''' form, use the '''Add''' buttom <sup><span style="color:#006000">['''11''']</span></sup> to attach it to the report.
 
 
<gallery widths="677px" heights="295px" paddings="0px">
 
File:JIRA-add-comment-form.png ‎|<span style="color:#006000">['''11''']</span> This is the comment form.
 
</gallery>
 
 
<gallery widths="689px" heights="71px" paddings="0px">
 
File:JIRA-alter-Issue-Description.png ‎|<span style="color:#006000">['''12''']</span> Where to edit your Issue heading.
 
</gallery>
 
When you first created your bug issue report, you may have chosen the wrong words for the '''Summary''' (the summary becomes the title of the report) and you now want to change them for some that better describe your bug. In the '''Reported by me''' Issues window <span style="color:#006000"><sup>['''8''']</sup></span>, move your mouse pointer over the title and a pencil will appear at the end <span style="color:#006000"><sup>['''12''']</sup></span>, click on it and a cursor will appear in the title, so that you can edit the it. , When you have finished editing the title, press Enter on your keyboard.
 
 
<div style="border:2px solid #dd0000;padding:5px"><span style="font-size:150%;color:#dd0000">*</span>
 
You are strongly advised to follow the instructions here in the main text and not to go altering things like '''Priority''', '''Component/s''' or '''Fixed Version/s''', which are accessible from the '''Edit''' button <span style="color:#006000">['''9''']</span>. Please do not upset the developers by altering things that you do not fully understand! You may think that a bug is a '''Blocker''' or '''Critical''', but the developers may think that it is only '''Minor''' or '''Trivial'''.</div>
 
 
 
<gallery widths="640px" heights="306px" paddings="0px">
 
File:Direct-comment-at-JIRA-Dashboard.png |<span style="color:#006000">['''13''']</span> Make a comment direct from the JIRA Dashboard.
 
</gallery>
 
If you read JIRA Dashboard commits, and see something that you can usefully comment on, then you can make a comment by clicking on '''Comment''' at the bottom of the commit, which will open a drop down form <sup><span style="color:#006000">['''13''']</span></sup>, where you can make your comments. When you have finished, just click on the '''Add''' button.
 
 
<div style="border:1px solid #dd0000;padding:5px">'''Note:''' When adding comments to your own or other peoples reports, ask yourself ''''does this add value to the report'''', ''''is it going to be helpful''''. Please do not make trivial or silly comments, it is better to click '''Cancel''' than to fill JIRA with rubbish comments. So make sure that what you have typed will help others, before you activate the '''Add''' button.</div>
 
 
 
 
<gallery widths="230px" heights="283px" paddings="0px">
 
File:|<sup><span style="color:#006000">['''10''']</span></sup>
 
</gallery>
 
 
 
<p style="font-size:150%;border-top:3px solid #006000;"></p>
 
 
 
<h2>A layman's guide - <span style="font-size:150%;color:#804000;">Regression testing: finding the guilty revision.</span></h2>
 
 
 
The ISO files now come in the file format shown below.
 
<pre style="background:white;border:none;">
 
reactos-bootcd-0.4.7-dev-571-gc22817d-x86-gcc-lin-dbg.7z
 
reactos-bootcd-0.4.7-dev-571-gc22817d-x86-msvc-win-dbg.7z
 
                              c22817d
 
</pre>
 
To do a search at the '''getbuilds''' page (https://www.reactos.org/getbuilds/) you only need the portion shown in the last line (above).
 
 
Because of the way that Git tracks commits to the source tree, you can no longer use numbers in the same way that you could with SVN. So if you have tried a revision some days ago that was good and did not have the problem, then you can get the reference code (as shown above) from this '''good''' revision, then the reference code from the '''bad''' revision that exhibits the problem. Using these two numbers, you can then do a search at the '''getbuilds''' page (https://www.reactos.org/getbuilds/).
 
 
To do a search, just uncheck all the boxes that are not required, put the two codes in the input box, with a dash between them, like so: '''48fe086-74cc915''', then click the search button.  The search will then list all the revisions between and including the ones typed into the search input box.
 
 
 
You are advised to copy paste the search results into a Text Editor, for further reference, unless you keep the page open with search result in.
 
 
If you know that you have tested a good revision in the past, but cannot remember it's revision number, then you can list all the bootcd files at https://iso.reactos.org/bootcd/.
 
 
We will assume that revision '''74cc915''' has a regression, so it is the ' '''bad''' ' revision, you will need to find a ' '''good''' ' revision.
 
 
Using revision '''74cc915''' as the '''bad reference point''', using the list of ISO files, go back in increments of 100 or one week, installing and testing them, until you find the ' '''good''' ' revision. When you have found a ' '''good''' ' revision, that will be the '''good reference point''' and the last ' '''bad''' ' revision will become the new '''bad reference point'''. Now you have two reference points, a known ' '''bad''' ' revision and a known ' '''good''' ' revision.
 
 
The guilty revision must be somewhere in between the two reference (revision) points!
 
 
Next choose a revision that is half way between the two revisions, then test that revision to see if it is good, it will then become the new '''good reference point''', but if it is bad, it will then become the new '''bad reference point'''. Keep choosing a revision that is half way between the two, until you have found where the revision changes from good to bad; the bad is the guilty revision that regressed!
 
 
Remember that the guilty revision is always between the last ' '''good''' ' revision and the last ' '''bad''' ' revision, until you have reached the point where they are next to each other.
 
 
The old SVN ISO files are in this format '''r75098''' and are still available from https://iso.reactos.org/bootcd/, but are not now available at the '''getbuilds''' page (https://www.reactos.org/getbuilds/), because they are no longer being created.
 
 
'''Note''' that the old revision numbers cannot be used in the search input box at the '''getbuilds''' page.
 
 
It as been brought to my attention, that Git has some built in functions that do the same as in this guide. So if you have a local source tree, then you may like to read this '''https://git-scm.com/docs/git-bisect'''. '''Warning''': only use these git functions on your local source tree, because of what they do to the tree!
 
 
<p style="font-size:150%;border-top:3px solid #804000;"></p>
 
 
 
<h2>A layman's guide - <span style="font-size:150%;color:#006080;">log2lines.</span></h2>
 
 
In this tutorial there is also a Unix based subsection.
 
 
You have created a Jira Issue for a bug, you are then asked to translate the addresses in the backtrace that are in the debug log.
 
 
To do this you will need '''log2lines''', which comes with  '''RosBE''', if you haven't already got '''RosBE''', then it can be down-loaded from Sourceforge http://sourceforge.net/projects/reactos/files/
 
 
Before you down-load RosBE, create some folders on whatever drive you like and call them whatever you like. In my example, I have created a master folder on drive '''D:''', which I have called '''DebugWork''', this will contain all the files and folders.
 
 
You will also need to have 7zip installed http://www.7-zip.org/download.html; Peazip will not work.
 
 
Example:
 
 
'''D:\DebugWork'''            (this is the master folder, all the other folders and files are stored in this).
 
 
'''D:\DebugWork\RosBE'''      (install RosBE into this folder, but if you already have RosBE elsewhere, you will not need this).
 
 
Put the debug log and the iso into the folder '''D:\DebugWork''' (in my example they are '''explorer-0.4.7-dev-557-g57cda5a.log''' and '''reactos-bootcd-0.4.7-dev-557-g57cda5a-x86-gcc-lin-dbg.iso''').
 
 
Using the example from above, you would type this at the RosBE command prompt:
 
 
<span style="color:#006080;">'''D:\DebugWork\RosBE></span>log2lines -m -d D:\DebugWork\reactos-bootcd-0.4.7-dev-557-g57cda5a-x86-gcc-lin-dbg.iso <D:\DebugWork\explorer-0.4.7-dev-557-g57cda5a.log> D:\DebugWork\explorer-0.4.7-dev-557-g57cda5a-new.log'''
 
 
Explanation:
 
 
<span style="color:#006080;">'''D:\DebugWork\RosBE>'''</span> ................................ The RosBE command prompt (which shows the directory of RosBE).
 
 
'''log2lines -m -d''' ................................................ The command to start log2lines with two optional run-time commands.
 
 
The command '''-m''' puts a '''<big>*</big>''' at the front of the translated line, and the command '''-d''' indicates that it is a directory or iso image.
 
 
'''D:\DebugWork\reactos-bootcd-0.4.7-dev-557-g57cda5a-x86-gcc-lin-dbg.iso''' ....... The iso's directory path and name.
 
 
'''<D:\DebugWork\explorer-0.4.7-dev-557-g57cda5a.log>''' ........ The debug log's directory path and name (you must include '''<''' at the front and '''>''' at the back).
 
 
'''D:\DebugWork\explorer-0.4.7-dev-557-g57cda5a-new.log''' ... The directory where the new translated log will be written, with it's name.
 
 
 
If you have RosBE already installed elsewhere, then, using the same folder and files as in the example above, you would just start RosBE and at the command prompt, type: '''log2lines -m -d D:\DebugWork\reactos-bootcd-0.4.7-dev-557-g57cda5a-x86-gcc-lin-dbg.iso <D:\DebugWork\explorer-0.4.7-dev-557-g57cda5a.log> D:\DebugWork\explorer-0.4.7-dev-557-g57cda5a-new.log'''
 
 
 
 
=== log2lines - Screenshots ===
 
<gallery widths="668px" heights="295px" paddings="0px">
 
File:RosBElog2lines.png|RosBE '''log2lines''' - run as in the above example.
 
</gallery>
 
<gallery widths="660px" heights="439px" paddings="0px">
 
File:RosBE-log2lines.png|RosBE '''log2lines''' - run from my compiling directory with the iso and debug log in the directory '''DebugWork'''.
 
</gallery>
 
<gallery widths="242px" heights="395px" paddings="0px">
 
File:DebugWork-folder.png|This shows the directory from the above example, after log2lines had been executed.
 
</gallery>
 
<gallery widths="716px" heights="422px" paddings="0px">
 
File:Bt-before.png|This shows the backtrace before log2lines as been run. (ignore the red in the image, it is from the spell checker). Compare this with the one just below. Look for the lines that start with an asterix (<big>*</big>) in the image below, these are the lines that log2lines has added extra information to.
 
</gallery>
 
<gallery widths="730px" heights="421px" paddings="0px">
 
File:Bt-after.png|This shows the backtrace after log2lines as been run. (ignore the red in the image, it is from the spell checker)
 
</gallery>
 
 
 
===<span style="color:#006080">log2lines - '''Unix subsection'''</span>===
 
 
When you install RosBE-Unix, there is no log2lines in the '''/RosBE/bin''' folder, like there is in a Windows install of RosBE, but, if or when you compile the ReactOS source, you will then find log2lines in '''/reactos/host-tools/''' folder. To use my example, it will be in '''/home/RosBuild/compiled/reactos/host-tools/'''.
 
 
<small>See the '''Layman's guide - How to compile ReactOS - Unix subsection''' higher up this page, for instructions on how to install RosBE-Unix.</small>
 
 
The log2lines command is in this format: '''log2lines options ISO <old log> new log'''
 
 
Explanation:
 
 
'''log2lines''' ........ Executes log2lines.
 
 
'''options''' .......... Optional run-time commands for log2lines. '''-m''' Marks the translated line with an <span style="font-size:110%>'''*'''</span> and '''-d''' is for directory.
 
 
'''ISO''' .................. This is the name and location of the ISO image that you used.
 
 
'''<old log>''' ........ This is the location and name of the original log that you got for the bug.
 
 
'''new log''' .......... This is the location and name for the modified log. It will be written with that name and at that location.
 
 
<small>See also the explanation in the main section above.</small>
 
 
Start RosBE and at the command prompt, type:
 
 
'''/home/RosBuild/compiled/reactos/host-tools/log2lines -m -d /mnt/sda1/ReactOSDevelopment/debug-logs/bootcd-75458-dbg.iso </mnt/sda1/ReactOSDevelopment/debug-logs/SteamError2.log> /mnt/sda1/ReactOSDevelopment/debug-logs/SteamError2-new.log'''
 
 
'''NOTE'''
 
For log2lines to work, you must either give the full path to the host-tools directory.
 
If you get any error message, for example '''log2lines: command not found''', then check that your paths are all correct.
 
 
<p style="font-size:150%;border-top:3px solid #006080;"></p>
 
 
 
Revised and updated March 2017.
 
 
Minor text additions and the addition of some Unix subsections - August 2017.
 
 
Added debugging with VirtualBox through a virtual serial line (Windows and Unix) September 2017.
 
 
Updated for Git, where necessary. October 2017.
 
 
 
==Links==
 
==Links==
 
More tutorials can be found at:  
 
More tutorials can be found at:  

Revision as of 13:12, 25 March 2020