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/

Reply via email to