Public
A bit of Saturday hacking because it's still a little too cumbersome for mere mortals to valgrind an application and produce a useful log (with symbols) for developers.
I started with apport-retrace and ended with apport-valgrind.
Then, a bit of poking around in the valgrind source to teach it how to read debug symbols from an alternative location (in addition to the hard-coded paths where it searches today).
And now I have a rough outline for folks to have an easy 1-step method to valgrind an application, where all available debug symbols are pulled in, thus producing a great log for the developer/debugger, and when you're done, the debug packages are removed from your system so it stays clutter free.
As an example:
$ apport-valgrind -g -S system -v nm-applet
=> valgrind.log ready for upload to Launchpad
Still need a lot of cleanup, but you get the idea.
TODO:
- ensure we properly remove the sandbox created by apport-valgrind
- write valgrind suppression files for various apps
- extend apport-valgrind to auto-load suppression files for even cleaner logs
I started with apport-retrace and ended with apport-valgrind.
Then, a bit of poking around in the valgrind source to teach it how to read debug symbols from an alternative location (in addition to the hard-coded paths where it searches today).
And now I have a rough outline for folks to have an easy 1-step method to valgrind an application, where all available debug symbols are pulled in, thus producing a great log for the developer/debugger, and when you're done, the debug packages are removed from your system so it stays clutter free.
As an example:
$ apport-valgrind -g -S system -v nm-applet
=> valgrind.log ready for upload to Launchpad
Still need a lot of cleanup, but you get the idea.
TODO:
- ensure we properly remove the sandbox created by apport-valgrind
- write valgrind suppression files for various apps
- extend apport-valgrind to auto-load suppression files for even cleaner logs
Add a comment...