padb just calls gdb, you can see the error using gdb alone using just the trace 
I sent when I started this thread.

Perhaps the difference is in versions of gdb, I could give you a login to my 
test machine if you need?

Ashley.

On 15 Dec 2011, at 22:49, Nathan Hjelm wrote:

> Whats odd is totalview, STAT, and GDB see the correct values despite them 
> being in the B section. What does padb do differently?
> 
> This is a dynamic, optimized build of 1.5.5rc1.
> 
> -Nathan Hjelm
> HPC-3, LANL
> 
> On Thu, 15 Dec 2011, Ashley Pittman wrote:
> 
>> 
>> If I add a new symbol to orte/mca/debugger/base/debugger_base_open.c and 
>> declare it in orte/mca/debugger/base/base.h, the same as MPIR_proctable_size 
>> is defined then it appears in the .so but not in the binary, if I then 
>> reference this variable in orte/tools/orterun/orterun.c the symbol appears 
>> in orterun.  It's definably coming from that declaration, what isn't so 
>> clear is how it's getting into the binary.  I can only assume that 
>> orte/mca/debugger/base/debugger_base_fns.c is linked into the binary 
>> directly and the symbol is optimised away in the case where it's defined but 
>> not used.
>> 
>> Ashley.
>> 
>> On 15 Dec 2011, at 22:09, Nathan Hjelm wrote:
>> 
>>> orte/tools/orterun/debuggers.c does not exist anymore (its not in the 
>>> 1.5.5rc1 tarball). I don't know why the symbols are showing up in section B 
>>> of orterun. Investigating now.
>>> 
>>> -Nathan Hjelm
>>> HPC-3, LANL
>>> 
>>> On Thu, 15 Dec 2011, George Bosilca wrote:
>>> 
>>>> 
>>>> On Dec 15, 2011, at 16:55 , Ashley Pittman wrote:
>>>> 
>>>>> There is a problem with 1.5.5rc1 that prevents padb from loading the 
>>>>> process table start from the orterun process, what appears to be 
>>>>> happening is that MPIR_proctable and MPIR_proctable_size is present in 
>>>>> both orterun itself and also in libopen-rte.so, the code is correctly 
>>>>> setting them in libopen-rte.so however when gdb is picking the variable 
>>>>> from orterun in preference and hence padb is reading NULL values.
>>>> 
>>>> Indeed, there are two definitions, but a single declaration. This is true 
>>>> for both the trunk and the 1.5.
>>>> 
>>>> ./orte/mca/debugger/base/base.h:61:ORTE_DECLSPEC extern struct 
>>>> MPIR_PROCDESC *MPIR_proctable;
>>>> ./orte/mca/debugger/base/base.h:62:ORTE_DECLSPEC extern int 
>>>> MPIR_proctable_size;
>>>> 
>>>> ./orte/mca/debugger/base/debugger_base_open.c:42:struct MPIR_PROCDESC 
>>>> *MPIR_proctable = NULL;
>>>> ./orte/mca/debugger/base/debugger_base_open.c:43:int MPIR_proctable_size = 
>>>> 0;
>>>> 
>>>> ./orte/tools/orterun/debuggers.c:142:struct MPIR_PROCDESC *MPIR_proctable 
>>>> = NULL;
>>>> ./orte/tools/orterun/debuggers.c:143:int MPIR_proctable_size = 0;
>>>> 
>>>> george.
>>>> 
>>>> 
>>>>> Attached is a log showing the problem, the only change I made to the 
>>>>> source is to add a call to orte_debugger_base_dump() before the return 
>>>>> from orte_debugger_base_init_after_spawn(), it looks like this could also 
>>>>> have been achieved via a debug setting but I couldn't see how.
>>>> 
>>>> 
>>>> _______________________________________________
>>>> devel mailing list
>>>> de...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>> 
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> 
>> 
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


Reply via email to