Ok, I have determined the problem. -g also produces DWARF2 symbols with my 
compiler.

The problem is that the symbols are packed, and therefore some of the items are 
misaligned and on ARM, that typically causes a fault, but on this processor it 
is reading incorrect values from misaligned addresses.  For example, a 32-bit 
read at an odd address results in a totally bogus value.

I think replacing all of the *(UShort *) and *(UInt *) and *(ULong *) 
expressions in coregrind/m_debuginfo/readdwarf.c with read_UShort() and friends 
would solve the problem.  I was able to verify that it works better if I use 
this function for the version number reading - now I get DWARF version 2, 
instead of 512 or 1024.

Mark Wickham
Digi International
---

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to