Re: [ROOT] Strange behaviour of a stand-alone Root-based application

From: Marc Hemberger (marc.hemberger@embl-heidelberg.de)
Date: Thu Nov 22 2001 - 15:26:32 MET


Hi Volker,

besides the answer of Rene, which fixed also my problem, you could try to
change the linking order of the libraries, trying to move the most dependent
library to the end of the link list.

Greetings,

Marc

Volker Hejny wrote:
> 
> Hi all,
> 
> I have a ugly problem here and since there are some really experienced
> users on this list, I hope someone can give me some advice how to proceed.
> 
> I'm using root 3.02.03 and a Debian 'woody' Linux with kernel 2.4.12.
> 
> We are building some classes to manage reading from a local DAQ format
> into TObject based data classes together with a few classes doing the
> administration. To test these classes, I have a macro and some
> main function containing essentially the same code: opening the
> file and do an event loop. I don't want to go into detail, because
> I think my problem is a more basic one. I would really be happy to
> get some hint where to start debugging.
> 
> What happens? The macro runs fine in an interactive root session loading
> the shared library containing our classes before. Linking a stand-alone
> program with the same library and all Root libraries given by
> 'root-config --libs', the program does ... nothing but using 100%
> CPU time. Even the first line in the main function is not executed!!!
> I never saw this problem with any other program before (Root-based or
> not). In the beginning, when my own classes where nearly empty,
> the program runs. I'm not aware of any non-trivial change in the code.
> 
> Running debugger, doing a CTRL-C and a backtrace gives (what does this
> error means?):
> (gdb) run
> Starting program: /home/hejny/S/RootSorter/bin/test_revent
> Error while mapping shared library sections:
> libGlobal.so: Success.
> 
> Program received signal SIGINT, Interrupt.
> 0x40551d95 in G__isenclosingclass ()
>    from /usr/local/packages/root/root_cvs/lib/libCint.so
> [This position is always the same on CTRL-C.]
> (gdb) backtrace
> #0  0x40551d95 in G__isenclosingclass ()
>     from /usr/local/packages/root/root_cvs/lib/libCint.so
> #1  0x405522a0 in G__defined_tagname ()
>     from /usr/local/packages/root/root_cvs/lib/libCint.so
> #2  0x40552683 in G__search_tagname ()
>     from /usr/local/packages/root/root_cvs/lib/libCint.so
> #3  0x40515e0e in G__get_linked_tagnum ()
>     from /usr/local/packages/root/root_cvs/lib/libCint.so
> #4  0x40cf5a20 in ?? ()
> #5  0x40cf80a4 in ?? ()
> #6  0x40506d48 in G__call_setup_funcs ()
>     from /usr/local/packages/root/root_cvs/lib/libCint.so
> #7  0x40d04b29 in ?? ()
> #8  0x40cf8167 in ?? ()
> #9  0x40cf8206 in ?? ()
> #10 0x40d029c7 in ?? ()
> #11 0x40ceb2ca in ?? ()
> #12 0x4000b057 in call_init () from /lib/ld-linux.so.2
> #13 0x4000b1ad in _dl_init () from /lib/ld-linux.so.2
> 
> 
> A strace gives the following output:
> 
> execve("/home/hejny/S/RootSorter/bin/test_revent", ...
> [...]
> brk(0)                                  = 0x804d564
> open("/usr/local/packages/root/root_cvs/lib/libCore.so", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\306"..., 1024) = 1024
> fstat64(0x3, 0xbfffe6bc)                = 0
> old_mmap(NULL, 4794164, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40016000
> mprotect(0x40358000, 1378100, PROT_NONE) = 0
> old_mmap(0x40358000, 933888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x341000) = 0x40358000
> old_mmap(0x4043c000, 444212, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4043c000
> close(3)                                = 0
> [... same for Cint, Hist, Graf, Graf3d, GPad, Tree, Rint, Postscript
>      Matrix, Physics for Root ...]
> [... loading nsl, dl ...]
> [... next my library ...]
> open("libGlobal.so", O_RDONLY)          = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\246"..., 1024) = 1024
> fstat64(0x3, 0xbfffe5ec)                = 0
> getcwd("/home/hejny/S/RootSorter", 128) = 25
> old_mmap(NULL, 327940, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40cd3000
> mprotect(0x40d10000, 78084, PROT_NONE)  = 0
> old_mmap(0x40d10000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3c000) = 0x40d10000
> close(3)                                = 0
> [... loading libstdc++, libm, libc ...]
> [... and then ...
> brk(0)                                  = 0x804d564
> brk(0x804d584)                          = 0x804d584
> brk(0x804e000)                          = 0x804e000
> brk(0x8058000)                          = 0x8058000
> brk(0x8059000)                          = 0x8059000
> brk(0x805c000)                          = 0x805c000
> brk(0x805f000)                          = 0x805f000
> brk(0x8062000)                          = 0x8062000
> brk(0x8063000)                          = 0x8063000
> brk(0x8066000)                          = 0x8066000
> brk(0x8069000)                          = 0x8069000
> brk(0x806a000)                          = 0x806a000
> brk(0x806d000)                          = 0x806d000
> brk(0x8070000)                          = 0x8070000
> brk(0x8073000)                          = 0x8073000
> brk(0x8076000)                          = 0x8076000
> brk(0x8079000)                          = 0x8079000
> brk(0x807c000)                          = 0x807c000
> brk(0x807f000)                          = 0x807f000
> brk(0x8080000)                          = 0x8080000
> brk(0x8083000)                          = 0x8083000
> brk(0x8086000)                          = 0x8086000
> brk(0x8087000)                          = 0x8087000
> brk(0x808a000)                          = 0x808a000
> brk(0x808d000)                          = 0x808d000
> [... here it stops, CPU = 100% from that point on, memory = constant ...]
> 
> Best regards,
> Volker
> 
> --
> Dr. Volker Hejny                Tel: 02461/616853                      **
> Institut f. Kernphysik          Fax: 02461/613930                     **
> ---------------------------------------------------------------- **  ** ---
> Forschungszentrum Juelich GmbH, D-52425 Juelich                    **

-- 
Dr. Marc Hemberger
                      /\_/\
                     ( o.o )
                      > ^ <
             |\      _,,,---,,         EMBL 
      ZZZzz  /,`.-'`'    -.  ;-;;,_    European Molecular Biology Lab.
            |,4-  ) )-,_. ,\ (  `'-'   Meyerhofstr. 1
           '---''(_/--'  `-'\_)        69117 Heidelberg
                                       Germany        privat: 
    Marc.Hemberger@embl-heidelberg.de                 MHemberger@csi.com
 
      ** Disclaimer: My views/comments/beliefs, as strange as they are, are my
own.**



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:09 MET