Adds VG_(describe_addr)() for generating symbolic descriptions of a
memory address, based on which variables are in scope at the time and
their types.
As part of this change, I restructured the symbol table parsing code,
by splitting the stabs and dwarf-specific parts into their own files.
I also added a new set of vg_symtypes.[ch] files which contains the
type system code and the core of the VG_(describe_addr)().
I've only implemented the stabs type parser. I have not yet implemented
the DWARF2 parser. It looks well-defined but complex.
The only skin which uses this is Helgrind at the moment.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1926 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/include/vg_skin.h b/include/vg_skin.h
index d8d168a..faf5d72 100644
--- a/include/vg_skin.h
+++ b/include/vg_skin.h
@@ -1452,6 +1452,10 @@
*/
extern Char* VG_(describe_eip)(Addr eip, Char* buf, Int n_buf);
+/* Returns a string containing an expression for the given
+ address. String is malloced with VG_(malloc)() */
+Char *VG_(describe_addr)(ThreadId, Addr);
+
/* A way to get information about what segments are mapped */
typedef struct _SegInfo SegInfo;