|
From: Paul H. <pa...@ha...> - 2007-11-13 23:25:48
|
On Nov 13, 2007 5:37 PM, John Reiser <jr...@bi...> wrote: > > Q. Is there an ARM port of Valgrind? > > > > A. No. ... part of the license agreement for accessing the > > architecture specifications (which would be a necessity for porting > > Valgrind and VEX to ARM) is that you do not attempt to develop models > > of microprocessor cores based on ARM. ... > > > Valgrind is essentially a CPU model, so this clause would seem to > > rule out any further development. ARM is known to enforce this > > license requirement vigorously. > > On the other hand, it would be a worthy semester project to reverse > engineer that part of the ARM architecture that is compiled by gcc > and supported by glibc. Grab an NSLU2, install Debian Linux and gcc and gdb. > Build many small programs, single step them, observe what happens, > document. That would be enough for a large majority of user programs, > and it would not be encumbered by any agreement with ARM. QEMU supports ARM and is released under the GPL. So all of the pieces are compatible with the GPL, and therefore with Valgrind. http://fabrice.bellard.free.fr/qemu/license.html Not only can a programmer look at the source to QEMU, they can ask the QEMU developers questions. If you google for valgrind arm qemu, you find http://fabrice.bellard.free.fr/qemu/qemu-tech.html Which says: ---cut here--- Like Valgrind [2], QEMU does user space emulation and dynamic translation. Valgrind is mainly a memory debugger while QEMU has no support for it (QEMU could be used to detect out of bound memory accesses as Valgrind, but it has no support to track uninitialised data as Valgrind does). The Valgrind dynamic translator generates better code than QEMU (in particular it does register allocation) but it is closely tied to an x86 host and target and has no support for precise exceptions and system emulation. ---cut here--- Am I missing anything? I mean in terms of legal theory, obviously, there is the significant issue of finding volunteers with the skills and expertise to add ARM support to Valgrind. And the volunteers can't have been tainted by looking at any of the forbidden ARM documentation. -- Paul Haas |