It's not very hard to break binary backwards-compatibility of a DSO/shared library with a C++ interface. That said, is there a static analysis tool, which can help detecting such ABI breaks, if it's given two different sets of header files: those of an earlier state of the DSO and those of the current state (and maybe DSOs as well)? Both free and commercial product suggestions are welcome.
If it could also warn about bad practices, e.g. inline functions and defaulted function parameters in DSO interfaces, it would be great.
I assume that you are familiar with this tutorial: Binary Compatibility Issues with C++, if not read it!
I've heard about this tool: http://ispras.linuxbase.org/index.php/ABI_compliance_checker, however never tested or used one, so have no opinion.
Also this may interest you: Creating Library with backward compatible ABI that uses Boost