| Using Valgrind in Sapphire at Nest Labs |
| ======================================= |
| |
| Since nobody at Nest is using Valgrind regularly, using valgrind will always be |
| batteries-not-included. There are some breadcrumbs left by the ancients: |
| |
| https://wiki.nestlabs.com/display/NEST/Running+Valgrind+on+sapphire+device |
| |
| sapphire/production/sw/nestlabs/tools/valgrind-scripts/Makefile |
| https://nest-internal.googlesource.com/platform/sapphire/+/master/production/sw/nestlabs/tools/valgrind-scripts/Makefile |
| |
| However, they are already out-of-date. However, these links are provided in case |
| you find them helpful. |
| |
| In order to use valgrind effectively, you'll probably want to follow the |
| following steps: |
| |
| [ ] Change your product makefile config (e.g. flintstone.mak): |
| [ ] Enable BUILD_FEATURE_VALGRIND |
| [ ] Disable BUILD_FEATURE_FLINTSTONE_CONSOLE (it steals |
| the console from you) |
| [ ] Disable BUILD_FEATURE_AUTOLOG (it steals the console |
| from you) |
| [ ] Disable GCC library static linking (as of this writing, |
| you can do it by switching from the 2.0.1c toolchain |
| to the 2.0.1b toolchain). You need to do this so you'll |
| have enough room on the firmware image. |
| [ ] In order to use valgrind you'll need to have the debug |
| symbols for ld.so installed on the device. If you're using |
| the 2.0.1b toolchain, this will happen for you automatically. |
| For other Poky-based toolchains, you'll have to install them |
| on the device yourself: |
| |
| $ scp /opt/poky/<ver>/sysroots/<mach>/lib/.debug/ld-2.22.so \ |
| root@192.168.33.2:/lib/.debug/ |