Factorises the address code description and printing
of memcheck and helgrind in a common module:
  pub_tool_addrinfo.h pub_core_addrinfo.h m_addrinfo.c

At the same time, the factorised code is made usable by other
tools also (and is used by the gdbserver command 'v.info location'
which replaces the helgrind 'describe addr' introduced 1 week ago
and which is now callable by all tools).

The new address description code can describe more addresses
(e.g. for memcheck, if the block is not on the free list anymore,
but is in an arena free list, this will also be described).

Similarly, helgrind address description can now describe more addresses
when --read-var-info=no is given (e.g. global symbols are
described, or addresses on the stack are described as
being on the stack, freed blocks in the arena free list are
described, ...).
See e.g. the change in helgrind/tests/annotate_rwlock.stderr.exp
or locked_vs_unlocked2.stderr.exp

The patch touches many files, but is basically a lot of improvements
in helgrind output files.
The code changes are mostly refactorisation of existing code.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13965 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/gdbserver_tests/hginfo.stderrB.exp b/gdbserver_tests/hginfo.stderrB.exp
new file mode 100644
index 0000000..9855e3c
--- /dev/null
+++ b/gdbserver_tests/hginfo.stderrB.exp
@@ -0,0 +1,18 @@
+relaying data between gdb and process ....
+vgdb-error value changed from 0 to 999999
+Lock ga 0x........ {
+ Address 0x........ is 0 bytes inside data symbol "mx"
+   kind   mbRec
+ { W1:thread #x tid 2 }
+}
+ Address 0x........ is 0 bytes inside a block of size 1,008 alloc'd
+   at 0x........: malloc (vg_replace_malloc.c:...)
+   by 0x........: th (hg01_all_ok.c:22)
+   by 0x........: mythread_wrapper (hg_intercepts.c:...)
+   ...
+Lock ga 0x........ {
+ Address 0x........ is 0 bytes inside data symbol "mx"
+   kind   mbRec
+ { W1:thread #x tid 3 }
+}
+ Address 0x........ is 0 bytes inside an unallocated block of size 1,008 in arena "client"