Valgrind: good luck
porting it. I had an attempt to
write a similar tool in QEMU (-d memchk), and already found a couple of bugs. It's currently working only on 500D.
Very easy coding task: port it to other models (it's mostly a matter of copy/paste and testing, with some stubs to find). Sorry, time is an issue on my side.
I've also played a bit with code coverage:
- with gcov: the size overhead is significant (autoexec.bin would grow very large, but it's probably doable for small modules)
- with QEMU: I've got a code coverage report from an execution trace (with qemu-etrace and Xilinx QEMU); also tried
Project Couverture but could not get it to work.
I've also tried to use LLVM's
thread safety analysis, but I need help (I'm not grasping these concepts very well).
Another suggestion I've got was to use
openQA for automating ML testing in QEMU. I've got the backend installed (os-autoinst), but didn't figure out the web interface yet; help is welcome with this one as well (it's probably straightforward, but takes time). The emulator already runs unmodified ML binaries on most cameras. A long time ago, when we could barely emulate ML menu navigation (without much Canon code), I've suggested
a visual diff for menu screenshots, but apparently it fell on deaf ears.
I'm not familiar with the other tools, but contributions (on applying them to ML) are welcome.