I've been doing some tests of Valgrind on OmniOS. Mostly looking good.
One thing that I've seen is that there are some gaps in the virtualisation of /proc.
For instance, if you call open[at]() or readlink[at]() on /proc/pid/object/a.out without any virtualisation that would work on e.g. memcheck-amd64-solaris rather than the guest executable. In the open/readlink syscall wrappers we have to check the path and if it is a special procfs path then switch it to use the path to the guest exe.