Implement/configure tooling for memory correctness checks
Since memory correctness issues are rather difficult to identify or debug on-robot, it would be good to get tooling in place for evaluating memory correctness. Doing this in situ on an MCB or equivalent runtime environment likely isn't feasible, but we can take advantage of our ability to compile and run a majority of our code when targeting stock Linux. The most obvious way to do this would be to run our unit tests or a similar build under valgrind. However, running the unit tests themselves doesn't catch issues in main
, the robot-specific *_control.cpp
files, or other interactions between components in a "production" build. This may mean we'd want to add a build target which compiles as much of our real code as possible with enough input data to exercise most code.