On Wed, 2013-09-11 at 11:59 -0400, Paolo Piselli wrote:
> Perhaps I did not understanding the nature of valgrind multiplatform
> support, so my previous questions were somewhat unclear. Allow me to
> start from a more root question:
>
> Is a given arch/OS build of valgrind only capable of running guest
> applications that target that same exact arch/OS? When fiddling around
> with --enable-only* configurations it seems that the x86_64 builds don't
> run i386 applications even if the OS supports running i386 (e.g.
> x86_64-darwin valgrind libs don't work for i386 apps even though OSX
> supports i386). Am I correct to say that "dual-arch" configuration just
> meaning that both x86_64 and i386 core and tools are built and the
> launcher picks the correct libs to use, but the individual libs are
> still limited to instrumenting applications that are of the same
> architecture that they themselves are compiled for? (i.e. you don't get
> VM-like capabilities of running another arch/OS by intermediate
> translation to VEXIR and then JIT into the native arch/OS)
Yes, a dual-arch means in fact to compile twice (most of) valgrind.
In theory, it should be possible to have e.g. a valgrind compiled
for x86_64 "valgrind-ing" a i386 executable, but that is not supported.
Similarly, in theory, e.g. a i386 valgrind could "valgrind" an
arm executable.
But none of this is supported. Feasible but quite some work to do.
Philippe
|