Restructure the documentation to try and make it hang together better.
Majorly improved. Still a lot to do, but the structure is better.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1324 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/helgrind/docs/hg_main.html b/helgrind/docs/hg_main.html
index b9d72f9..cb88cae 100644
--- a/helgrind/docs/hg_main.html
+++ b/helgrind/docs/hg_main.html
@@ -1,47 +1,16 @@
+
<html>
<head>
- <style type="text/css">
- body { background-color: #ffffff;
- color: #000000;
- font-family: Times, Helvetica, Arial;
- font-size: 14pt}
- h4 { margin-bottom: 0.3em}
- code { color: #000000;
- font-family: Courier;
- font-size: 13pt }
- pre { color: #000000;
- font-family: Courier;
- font-size: 13pt }
- a:link { color: #0000C0;
- text-decoration: none; }
- a:visited { color: #0000C0;
- text-decoration: none; }
- a:active { color: #0000C0;
- text-decoration: none; }
- </style>
- <title>Cachegrind</title>
+ <title>Helgrind: a data-race detector</title>
</head>
-<body bgcolor="#ffffff">
+<a name="hg-top"></a>
+<h2>6 Helgrind: a data-race detector</h2>
-<a name="title"></a>
-<h1 align=center>Helgrind</h1>
-<center>This manual was last updated on 2002-10-03</center>
+To use this skin, you must specify <code>--skin=helgrind</code> on the
+Valgrind command line.
<p>
-<center>
-<a href="mailto:njn25@cam.ac.uk">njn25@cam.ac.uk</a><br>
-Copyright © 2000-2002 Nicholas Nethercote
-<p>
-Helgrind is licensed under the GNU General Public License,
-version 2<br>
-Helgrind is a Valgrind skin for detecting data races in threaded programs.
-</center>
-
-<p>
-
-<h2>1 Helgrind</h2>
-
Helgrind is a Valgrind skin for detecting data races in C and C++ programs
that use the Pthreads library.
<p>
@@ -54,13 +23,7 @@
November 1997.
</blockquote>
-It is unfortunately in a rather mangy state and probably doesn't work at all.
-We include it partly because it may serve as a useful example skin, and partly
-in case anybody is inspired to improve it and get it working.
-<p>
-If you are inspired, we'd love to hear from you. And if you are successful,
-you might like to include some improvements to the basic Eraser algorithm
-described in Section 4.2 of
+We also incorporate significant improvements from this paper:
<blockquote>
Runtime Checking of Multithreaded Applications with Visual Threads
@@ -73,8 +36,21 @@
K. Havelund, J. Penix, and W. Visser, editors.<br>
</blockquote>
+<p>
+Basically what Helgrind does is to look for memory locations which are
+accessed by more than one thread. For each such location, Helgrind
+records which of the program's (pthread_mutex_)locks were held by the
+accessing thread at the time of the access. The hope is to discover
+that there is indeed at least one lock which is used by all threads to
+protect that location. If no such lock can be found, then there is
+(apparently) no consistent locking strategy being applied for that
+location, and so a possible data race might result.
-<hr width="100%">
+<p>
+There's a lot of other sophistication in the Helgrind skin, aimed at
+reducing the number of false reports, and at producing useful error
+reports. We hope to have more documentation soon.
+
</body>
</html>