Hello all

I am trying to set a breakpoint during the modex exchange process so I can
see the data being passed for different transport type. I assume that this
is being done in the context of orted since this is part of process launch.

Here is what I did: (All of this pertains to the master branch and NOT the
1.10 release)

1. Built  and installed OpenMPI like this: (on two nodes)
./configure --enable-debug --enable-debug-symbols --disable-dlopen && make
&& sudo make install

2. Compiled a tiny hello-world MPI program, mpitest (on both nodes)

3. Since the modex exchange is a macro now, (it used to be a function call
before), I have to put the breakpoint inside a line of code in the macro; I
chose the function mca_base_component_to_string(). I hoped that choosing
--enable-debug-symbols and --disable-dlopen will make this function
visible, but may be I am wrong. Do I need to explicitly add a DLSPEC to
libtools?

4. I launched gdb like this:
gdb mpirun
set args -np 2 -H bigMPI,smallMPI -mca btl tcp,self ./mpitest
b mca_base_component_to_string
run

This told me that the breakpoint is not present in the executable and gdb
will try to load a shared object if needed; I chose 'yes'.
However, the breakpoint never triggers and the program runs to completion
and exits.

I have two requests:
1. Please help me understand what I am doing wrong.
2. Is there a (perhaps a sequence of) switch to 'configure' that will
create the most debuggable image, while throwing all performance
optimization out of the window? This would be a great thing for a developer.

Thank you
Durga

We learn from history that we never learn from history.

Reply via email to