On Mar 16, 2016, at 5:38 PM, dpchoudh . <dpcho...@gmail.com> wrote: > > I now have a follow up question: > I was trying to figure this out myself by taking the backtrace from the BTLs > that do work, and found that, since most of the internal functions are not > exported, the backtraces contain just the addresses which are not all that > helpful (this is even after building with --enable-debug.) This is going back > to a question that I myself asked recently, and I am now finding out the > answer the hard way! > > Is there any way that all the internal functions, not explicitly declared > 'static' can be made visible?
It's actually not that the functions are static, it's that the functions are invoked via function pointer from a dlopen. Hence, they functions aren't usually available in a corefile, and therefore they have no names. You can compile OMPI differently: ./configure --disable-dlopen ... Which will slurp all the plugins up into their respective libraries. I.e., your lf BTL will be slurped up into libopen-pal.so (assuming master/v2.x). Then your backtraces and core files will have function names from your lf BTL. The downside of this is that when you make a change to your lf BTL, you have to -- at a minimum do: ---- cd opal make -j 32 install ---- Vs. build your lf BTL as a plugin: ---- cd opal/mca/btl/lf make -j 32 install ----- Which is a *lot* faster. :-) -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/