MemTest86 Technical Information

Debug Logs

To improve the quality of MemTest86, accurate reporting of problems and bugs essential. Please carefully follow the instructions below to report problems.

Note: The information here is targeted at troubleshooting problems with execution of the test code and not for diagnosing reported memory errors.

MemTest86 v5 or later (UEFI)

One of the new features of MemTest86 v5 is the ability to log to a file on a USB flash drive. A log file (MemTest86.log) is automatically created and updated while MemTest86 v5 is running. Note: From MemTest86 v10 onwards, log files are timestamped (e.g. Memtest86-20230424-170020.log). This file is saved in the 'EFI/BOOT' directory in the USB drive's first partition. For obvious reasons, a log file is not generated when booting MemTest86 from a CD; please use a USB flash drive instead. If you believe you may have encountered a bug with MemTest86, please report problems to PassMark Software

MemTest86 v4 (BIOS)

In Version 4.1.0 a Boot Trace feature was added that provides a simple mechanism for troubleshooting of test failures by both technical and non-technical users. With the very large variety of computer hardware available it is impossible to test MemTest86 an all platforms and some incompatibilities exist causing failures. With trace information many of these faults may now be resolved.

Enabling Boot Trace - The boot trace feature is enabled with either a boot time option or an on-line command. However, most problems occur during startup so the boot option is the preferred method. All of the released images have a boot option to start the test with boot tracing enabled. When booting from a Linux system with LILO or GRUB add "btrace" to the boot options line. When Boot Trace is enabled two columns of trace information will be displayed one the bottom two thirds of the screen. The CPU, line number from the source file, a short message and two parameters are displayed in each trace point. A ">" character denotes the current trace point. A total of 26 trace points are displayed and older trace points are lost as execution progresses. Pressing any key will advance to the next trace point. As initialization proceeds other portions of the screen will be filled in with information and the header lines will be erased.

Gathering Trace Information – There are two types of failures where trace information is needed to help diagnose the problem, hangs and crashes. Gathering traces for a situation when the test hangs is very simple. Just continue to press return until the test stops. At minimum email the last 5 trace points. More useful would be a digital picture of the screen. For cases where the test crashes we need to find the trace points just before the crash. This requires slowly stepping through the traces and identifying the point where the test crashes or reboots. Then run the test again and stop at the trace point just before the crash and report the information. Again, email at least the last 5 trace points or better a picture of the screen. Please email failure information using the form below.

Using Trace Information - Technical users will be able to diagnose problems using trace data that previously would have required detailed understanding of MemTest86's internal workings. By following the trace points in the source you will be able to follow the path of execution and identify problems. As needed new trace points may be added to the code to provide more detail when diagnosing a problem.

Additional Information - It is also very valuable to know how failures affect different releases. Please try each of the test versions provided and report. A number of failures affect only operation when multiple CPUs are being used. Please run using the option to run with only one CPU and report.