title: debug binary: How to dump which .a/.o each symbol came from?
body: <p>I've got a debug-enabled binary, the collection of .a files it was statically linked with, and the source for everything.</p>
  
  <p>How can I get a parse-able dump that lists each symbol name in the final executable binary, and which .a and .o it came from?   (Plus the original .c/.cpp file, if possible.)</p>
  
  <p>There are a series of cross-dependencies, circular-dependencies, and even a few multiple defined symbols in the libraries that I'm trying to map out with the eventual goal to recreate the build system.  Somehow the old build system managed to get everything linked together.  (More by accident than by design i think...)</p>
  
  <p>So far, I've tried various invocations of <code>nm</code> but can't quite seem to get this data.  Perhaps <code>nm</code> is the wrong tool.</p>