1

I'm making a program for an exam.

If i use static libraries, i succeed in compiling my program and it works. I use the library of ROOT (cern) to manage datas and draw histogram. Here there is the output of memcheck with Valgrind http://pastebin.com/KwMBvFG7 (my files are in /home/riccardo/Desktop/braggPlot_v05 : just search it in the pastebin to see errors related to my codes.

When i make dynamic library, i divide my source codes in different packages and i compile them with this bash script

#!/bin/sh
export ANALYSIS_PATH=`/bin/pwd`
export CORSOCXX_PATH=${ANALYSIS_PATH}
export CORSOCXX_UTIL=${CORSOCXX_PATH}
cd `dirname $0`

#####################################################################
echo "I'm in "
pwd
export LIB_NAME=AnalysisFramework
cd ${ANALYSIS_PATH}/${LIB_NAME}
rm -f ${ANALYSIS_PATH}/lib${LIB_NAME}.so
echo "compile " ${LIB_NAME}
c++  -fPIC -shared -I. -I ${CORSOCXX_UTIL} -I ${ANALYSIS_PATH} \
-o ${ANALYSIS_PATH}/lib${LIB_NAME}.so *.cc

export LIB_NAME=AnalysisUtilities
cd ${ANALYSIS_PATH}/${LIB_NAME}
rm -f ${ANALYSIS_PATH}/lib${LIB_NAME}.so
echo "compile " ${LIB_NAME}
c++  -fPIC -shared -I. -I ${CORSOCXX_UTIL} -I ${ANALYSIS_PATH} \
-o ${ANALYSIS_PATH}/lib${LIB_NAME}.so *.cc

export LIB_NAME=AnalysisObjects
cd ${ANALYSIS_PATH}/${LIB_NAME}
rm -f ${ANALYSIS_PATH}/lib${LIB_NAME}.so
echo "compile " ${LIB_NAME}
c++  -fPIC -shared -I. -I ${CORSOCXX_UTIL} -I ${ANALYSIS_PATH} -I ../AnalysisFramework -I ../AnalysisUtilities \
-o ${ANALYSIS_PATH}/lib${LIB_NAME}.so *.cc 
#####################################################################

cd ${ANALYSIS_PATH}/AnalysisPlugins

export LIB_NAME=EventDump
rm -f ${ANALYSIS_PATH}/lib${LIB_NAME}.so
echo "compile " ${LIB_NAME}
c++ -std=c++0x  -fPIC -shared -I. -I ${CORSOCXX_UTIL} -I ${ANALYSIS_PATH} -I ../AnalysisFramework/ -I ../AnalysisUtilities -I ../AnalysisObjects  \
-o ${ANALYSIS_PATH}/lib${LIB_NAME}.so *.cc -L ${ANALYSIS_PATH} \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities `root-config --cflags` \
`root-config --libs`          

export LIB_NAME=BGCalc
rm -f ${ANALYSIS_PATH}/lib${LIB_NAME}.so
echo "compile " ${LIB_NAME}
c++ -std=c++0x  -fPIC -shared -I. -I ${CORSOCXX_UTIL} -I ${ANALYSIS_PATH} -I ../AnalysisFramework/ -I ../AnalysisUtilities -I ../AnalysisObjects \
-o ${ANALYSIS_PATH}/lib${LIB_NAME}.so *.cc -L ${ANALYSIS_PATH} \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities  `root-config --libs`  `root-config --cflags`            

export LIB_NAME=EnergyDist
rm -f ${ANALYSIS_PATH}/lib${LIB_NAME}.so
echo "compile " ${LIB_NAME}
c++ -std=c++0x  -fPIC -shared -I. -I ${CORSOCXX_UTIL} -I ${ANALYSIS_PATH} -I ../AnalysisFramework/ -I ../AnalysisUtilities -I ../AnalysisObjects \
-o ${ANALYSIS_PATH}/lib${LIB_NAME}.so *.cc -L ${ANALYSIS_PATH} \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities  `root-config --cflags` \
`root-config --libs`   

#####################################################################

cd ${ANALYSIS_PATH}

export EXE_NAME=runDump
rm -f ${EXE_NAME}
echo "compile " ${EXE_NAME}
c++ -Wall -fPIC -I. -I ${ANALYSIS_PATH} -I ${CORSOCXX_UTIL}         \
-o ${EXE_NAME} dum.cc -L ${ANALYSIS_PATH} -Wl,--no-as-needed        \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities           \
-lEventDump

export EXE_NAME=runStat
rm -f ${EXE_NAME}
echo "compile " ${EXE_NAME}
c++ -Wall -fPIC -I. -I ${ANALYSIS_PATH} -I ${CORSOCXX_UTIL}         \
-o ${EXE_NAME} dum.cc -L ${ANALYSIS_PATH} -Wl,--no-as-needed        \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities           \
-lBGCalc

export EXE_NAME=runHist
rm -f ${EXE_NAME}
echo "compile " ${EXE_NAME}
c++ -Wall -fPIC -I. -I ${ANALYSIS_PATH} -I ${CORSOCXX_UTIL}         \
-o ${EXE_NAME} dum.cc -L ${ANALYSIS_PATH} -Wl,--no-as-needed          \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities           \
-lEnergyDist                                                        \
`root-config --libs`

export EXE_NAME=runAll
rm -f ${EXE_NAME}
echo "compile " ${EXE_NAME}
c++ -Wall -fPIC -I. -I ${ANALYSIS_PATH} -I ${CORSOCXX_UTIL}         \
-o ${EXE_NAME} dum.cc -L ${ANALYSIS_PATH} -Wl,--no-as-needed         \
-lAnalysisFramework -lAnalysisObjects -lAnalysisUtilities           \
-lEventDump -lEnergyDist -lBGCalc                       \
`root-config --libs` `root-config --cflags`  

If i run "runStat, runDump, runHist" all goes well. If i run "runAll" (that "includes" runStat, runDump, runHist) i get a double free or corruption. I've cancelled all "delete" operator from my codes to see where is the problem... I don't know absolutely what doing. Here there is the output of memcheck with Valgrind http://pastebin.com/ZzSR9rYR (that i don't know how to interpreter it).

This is the Backtrace and memorymap that i get at the end of runAll

*** glibc detected *** ./runAll: double free or corruption (fasttop):     0x0000000002434fd0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7fb7ff283b96]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSsD1Ev+0x23)[0x7fb7ffd92c13]
/lib/x86_64-linux-gnu/libc.so.6(__cxa_finalize+0x9d)[0x7fb7ff240d1d]
/home/riccardo/Desktop/bg06/libEnergyDist.so(+0xaf36)[0x7fb8047f2f36]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:01 6687853                                /home/riccardo/Desktop/bg06/runAll
00600000-00601000 r--p 00000000 08:01 6687853                                /home/riccardo/Desktop/bg06/runAll
00601000-00602000 rw-p 00001000 08:01 6687853                                /home/riccardo/Desktop/bg06/runAll
0215f000-027b1000 rw-p 00000000 00:00 0                                  [heap]
7fb7fdedc000-7fb7fdee8000 r-xp 00000000 08:01 5767369                        /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fb7fdee8000-7fb7fe0e7000 ---p 0000c000 08:01 5767369                        /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fb7fe0e7000-7fb7fe0e8000 r--p 0000b000 08:01 5767369                        /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fb7fe0e8000-7fb7fe0e9000 rw-p 0000c000 08:01 5767369                        /lib/x86_64-linux-gnu/libnss_files-2.15.so
7fb7fe0e9000-7fb7fe0f3000 r-xp 00000000 08:01 5767373                        /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7fb7fe0f3000-7fb7fe2f3000 ---p 0000a000 08:01 5767373                        /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7fb7fe2f3000-7fb7fe2f4000 r--p 0000a000 08:01 5767373                        /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7fb7fe2f4000-7fb7fe2f5000 rw-p 0000b000 08:01 5767373                        /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7fb7fe2f5000-7fb7fe30c000 r-xp 00000000 08:01 5767385                        /lib/x86_64-linux-gnu/libnsl-2.15.so
7fb7fe30c000-7fb7fe50b000 ---p 00017000 08:01 5767385                        /lib/x86_64-linux-gnu/libnsl-2.15.so
7fb7fe50b000-7fb7fe50c000 r--p 00016000 08:01 5767385                        /lib/x86_64-linux-gnu/libnsl-2.15.so
7fb7fe50c000-7fb7fe50d000 rw-p 00017000 08:01 5767385                        /lib/x86_64-linux-gnu/libnsl-2.15.so
7fb7fe50d000-7fb7fe50f000 rw-p 00000000 00:00 0 
7fb7fe50f000-7fb7fe517000 r-xp 00000000 08:01 5767367                        /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7fb7fe517000-7fb7fe716000 ---p 00008000 08:01 5767367                        /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7fb7fe716000-7fb7fe717000 r--p 00007000 08:01 5767367                        /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7fb7fe717000-7fb7fe718000 rw-p 00008000 08:01 5767367                        /lib/x86_64-linux-gnu/libnss_compat-2.15.so
7fb7fe718000-7fb7fe7ae000 r-xp 00000000 08:01 793927                         /usr/lib/x86_64-linux-gnu/libfreetype.so.6.8.0
7fb7fe7ae000-7fb7fe9ad000 ---p 00096000 08:01 793927                         /usr/lib/x86_64-linux-gnu/libfreetype.so.6.8.0
7fb7fe9ad000-7fb7fe9b3000 r--p 00095000 08:01 793927                         /usr/lib/x86_64-linux-gnu/libfreetype.so.6.8.0
7fb7fe9b3000-7fb7fe9b4000 rw-p 0009b000 08:01 793927                         /usr/lib/x86_64-linux-gnu/libfreetype.so.6.8.0
7fb7fe9b4000-7fb7fea08000 r-xp 00000000 08:01 5767364                        /lib/x86_64-linux-gnu/libssl.so.1.0.0
7fb7fea08000-7fb7fec08000 ---p 00054000 08:01 5767364                        /lib/x86_64-linux-gnu/libssl.so.1.0.0
7fb7fec08000-7fb7fec0b000 r--p 00054000 08:01 5767364                        /lib/x86_64-linux-gnu/libssl.so.1.0.0
7fb7fec0b000-7fb7fec11000 rw-p 00057000 08:01 5767364                        /lib/x86_64-linux-gnu/libssl.so.1.0.0
7fb7fec11000-7fb7fec12000 rw-p 00000000 00:00 0 
7fb7fec12000-7fb7fedc3000 r-xp 00000000 08:01 5767365                        /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7fb7fedc3000-7fb7fefc3000 ---p 001b1000 08:01 5767365                        /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7fb7fefc3000-7fb7fefde000 r--p 001b1000 08:01 5767365                        /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7fb7fefde000-7fb7fefe9000 rw-p 001cc000 08:01 5767365                        /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7fb7fefe9000-7fb7fefee000 rw-p 00000000 00:00 0 
7fb7fefee000-7fb7ff004000 r-xp 00000000 08:01 5770915                        /lib/x86_64-linux-gnu/libz.so.1.2.3.4
7fb7ff004000-7fb7ff203000 ---p 00016000 08:01 5770915                        /lib/x86_64-linux-gnu/libz.so.1.2.3.4
7fb7ff203000-7fb7ff204000 r--p 00015000 08:01 5770915                        /lib/x86_64-linux-gnu/libz.so.1.2.3.4
7fb7ff204000-7fb7ff205000 rw-p 00016000 08:01 5770915                        /lib/x86_64-linux-gnu/libz.so.1.2.3.4
7fb7ff205000-7fb7ff3ba000 r-xp 00000000 08:01 5767299                        /lib/x86_64-linux-gnu/libc-2.15.so
7fb7ff3ba000-7fb7ff5ba000 ---p 001b5000 08:01 5767299                        /lib/x86_64-linux-gnu/libc-2.15.so
7fb7ff5ba000-7fb7ff5be000 r--p 001b5000 08:01 5767299                        /lib/x86_64-linux-gnu/libc-2.15.so
7fb7ff5be000-7fb7ff5c0000 rw-p 001b9000 08:01 5767299                        /lib/x86_64-linux-gnu/libc-2.15.so
7fb7ff5c0000-7fb7ff5c5000 rw-p 00000000 00:00 0 
7fb7ff5c5000-7fb7ff5dd000 r-xp 00000000 08:01 5767374                        /lib/x86_64-linux-gnu/libpthread-2.15.so
7fb7ff5dd000-7fb7ff7dc000 ---p 00018000 08:01 5767374                        /lib/x86_64-linux-gnu/libpthread-2.15.so
7fb7ff7dc000-7fb7ff7dd000 r--p 00017000 08:01 5767374                        /lib/x86_64-linux-gnu/libpthread-2.15.so
7fb7ff7dd000-7fb7ff7de000 rw-p 00018000 08:01 5767374                        /lib/x86_64-linux-gnu/libpthread-2.15.so
7fb7ff7de000-7fb7ff7e2000 rw-p 00000000 00:00 0 
7fb7ff7e2000-7fb7ff7f7000 r-xp 00000000 08:01 5770825                        /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb7ff7f7000-7fb7ff9f6000 ---p 00015000 08:01 5770825                        /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb7ff9f6000-7fb7ff9f7000 r--p 00014000 08:01 5770825                        /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb7ff9f7000-7fb7ff9f8000 rw-p 00015000 08:01 5770825                        /lib/x86_64-linux-gnu/libgcc_s.so.1
7fb7ff9f8000-7fb7ffaf3000 r-xp 00000000 08:01 5767376                        /lib/x86_64-linux-gnu/libm-2.15.so
7fb7ffaf3000-7fb7ffcf2000 ---p 000fb000 08:01 5767376                        /lib/x86_64-linux-gnu/libm-2.15.so
7fb7ffcf2000-7fb7ffcf3000 r--p 000fa000 08:01 5767376                        /lib/x86_64-linux-gnu/libm-2.15.so
7fb7ffcf3000-7fb7ffcf4000 rw-p 000fb000 08:01 5767376                        /lib/x86_64-linux-gnu/libm-2.15.so
7fb7ffcf4000-7fb7ffdd6000 r-xp 00000000 08:01 794267                         /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7fb7ffdd6000-7fb7fffd5000 ---p 000e2000 08:01 794267                         /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7fb7fffd5000-7fb7fffdd000 r--p 000e1000 08:01 794267                         /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7fb7fffdd000-7fb7fffdf000 rw-p 000e9000 08:01 794267                         /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
7fb7fffdf000-7fb7ffff4000 rw-p 00000000 00:00 0 
7fb7ffff4000-7fb7ffff6000 r-xp 00000000 08:01 5767380                        /lib/x86_64-linux-gnu/libdl-2.15.so
7fb7ffff6000-7fb8001f6000 ---p 00002000 08:01 5767380                        /lib/x86_64-linux-gnu/libdl-2.15.so
7fb8001f6000-7fb8001f7000 r--p 00002000 08:01 5767380                        /lib/x86_64-linux-gnu/libdl-2.15.so
7fb8001f7000-7fb8001f8000 rw-p 00003000 08:01 5767380                        /lib/x86_64-linux-gnu/libdl-2.15.so
7fb8001f8000-7fb800246000 r-xp 00000000 08:01 3148014                        /home/riccardo/Downloads/root/lib/libThread.so
7fb800246000-7fb800445000 ---p 0004e000 08:01 3148014                        /home/riccardo/Downloads/root/lib/libThread.so
7fb800445000-7fb800449000 r--p 0004d000 08:01 3148014                        /home/riccardo/Downloads/root/lib/libThread.so
7fb800449000-7fb80044b000 rw-p 00051000 08:01 3148014                        /home/riccardo/Downloads/root/lib/libThread.so
7fb80044b000-7fb80044c000 rw-p 00000000 00:00 0 
7fb80044c000-7fb800678000 r-xp 00000000 08:01 3148031                        /home/riccardo/Downloads/root/lib/libMathCore.so
7fb800678000-7fb800878000 ---p 0022c000 08:01 3148031                        /home/riccardo/Downloads/root/lib/libMathCore.so
7fb800878000-7fb800881000 r--p 0022c000 08:01 3148031                        /home/riccardo/Downloads/root/lib/libMathCore.so
7fb800881000-7fb800885000 rw-p 00235000 08:01 3148031                        /home/riccardo/Downloads/root/lib/libMathCore.so
7fb800885000-7fb80088c000 rw-p 00000000 00:00 0 
7fb80088c000-7fb800925000 r-xp 00000000 08:01 3154752                        /home/riccardo/Downloads/root/lib/libPhysics.so
7fb800925000-7fb800b25000 ---p 00099000 08:01 3154752                        /home/riccardo/Downloads/root/lib/libPhysics.so
7fb800b25000-7fb800b28000 r--p 00099000 08:01 3154752                        /home/riccardo/Downloads/root/lib/libPhysics.so
7fb800b28000-7fb800b2a000 rw-p 0009c000 08:01 3154752                        /home/riccardo/Downloads/root/lib/libPhysics.so
7fb800b2a000-7fb800b2b000 rw-p 00000000 00:00 0 
7fb800b2b000-7fb800d72000 r-xp 00000000 08:01 3148210                        /home/riccardo/Downloads/root/lib/libMatrix.so
7fb800d72000-7fb800f71000 ---p 00247000 08:01 3148210                        /home/riccardo/Downloads/root/lib/libMatrix.so
7fb800f71000-7fb800f7a000 r--p 00246000 08:01 3148210                        /home/riccardo/Downloads/root/lib/libMatrix.so
7fb800f7a000-7fb800f80000 rw-p 0024f000 08:01 3148210                        /home/riccardo/Downloads/root/lib/libMatrix.so
7fb800f80000-7fb800f84000 rw-p 00000000 00:00 0 
7fb800f84000-7fb800ff9000 r-xp 00000000 08:01 3154753                        /home/riccardo/Downloads/root/lib/libPostscript.so
7fb800ff9000-7fb8011f9000 ---p 00075000 08:01 3154753                        /home/riccardo/Downloads/root/lib/libPostscript.so
7fb8011f9000-7fb801200000 r--p 00075000 08:01 3154753                        /home/riccardo/Downloads/root/lib/libPostscript.so
7fb801200000-7fb801201000 rw-p 0007c000 08:01 3154753                        /home/riccardo/Downloads/root/lib/libPostscript.so
7fb801201000-7fb801202000 rw-p 00000000 00:00 0 
7fb801202000-7fb801233000 r-xp 00000000 08:01 3154755                        /home/riccardo/Downloads/root/lib/libRint.so
7fb801233000-7fb801433000 ---p 00031000 08:01 3154755                        /home/riccardo/Downloads/root/lib/libRint.so
7fb801433000-7fb801435000 r--p 00031000 08:01 3154755                        /home/riccardo/Downloads/root/lib/libRint.so
7fb801435000-7fb801436000 rw-p 00033000 08:01 3154755                        /home/riccardo/Downloads/root/lib/libRint.so
7fb801436000-7fb801437000 rw-p 00000000 00:00 0 
7fb801437000-7fb80165c000 r-xp 00000000 08:01 3148322                        /home/riccardo/Downloads/root/lib/libTree.so
7fb80165c000-7fb80185c000 ---p 00225000 08:01 3148322                        /home/riccardo/Downloads/root/lib/libTree.so
7fb80185c000-7fb80186b000 r--p 00225000 08:01 3148322                        /home/riccardo/Downloads/root/lib/libTree.so
7fb80186b000-7fb801870000 rw-p 00234000 08:01 3148322                        /home/riccardo/Downloads/root/lib/libTree.so
7fb801870000-7fb801875000 rw-p 00000000 00:00 0 
7fb801875000-7fb80195d000 r-xp 00000000 08:01 3148333                        /home/riccardo/Downloads/root/lib/libGpad.so
7fb80195d000-7fb801b5d000 ---p 000e8000 08:01 3148333                        /home/riccardo/Downloads/root/lib/libGpad.so
7fb801b5d000-7fb801b66000 r--p 000e8000 08:01 3148333                        /home/riccardo/Downloads/root/lib/libGpad.so
7fb801b66000-7fb801b69000 rw-p 000f1000 08:01 3148333                        /home/riccardo/Downloads/root/lib/libGpad.so
7fb801b69000-7fb801b6b000 rw-p 00000000 00:00 0 
7fb801b6b000-7fb801c81000 r-xp 00000000 08:01 3148445                        /home/riccardo/Downloads/root/lib/libGraf3d.so
7fb801c81000-7fb801e81000 ---p 00116000 08:01 3148445                        /home/riccardo/Downloads/root/lib/libGraf3d.so
7fb801e81000-7fb801e8b000 r--p 00116000 08:01 3148445                        /home/riccardo/Downloads/root/lib/libGraf3d.so
7fb801e8b000-7fb801e8e000 rw-p 00120000 08:01 3148445                        /home/riccardo/Downloads/root/lib/libGraf3d.so
7fb801e8e000-7fb801e92000 rw-p 00000000 00:00 0 
7fb801e92000-7fb80207c000 r-xp 00000000 08:01 3148328                        /home/riccardo/Downloads/root/lib/libGraf.so
7fb80207c000-7fb80227c000 ---p 001ea000 08:01 3148328                        /home/riccardo/Downloads/root/lib/libGraf.so
7fb80227c000-7fb802289000 r--p 001ea000 08:01 3148328                        /home/riccardo/Downloads/root/lib/libGraf.so
7fb802289000-7fb80228f000 rw-p 001f7000 08:01 3148328                        /home/riccardo/Downloads/root/lib/libGraf.so
7fb80228f000-7fb80229d000 rw-p 00000000 00:00 0 
7fb80229d000-7fb802792000 r-xp 00000000 08:01 3148215                        /home/riccardo/Downloads/root/lib/libHist.so
7fb802792000-7fb802991000 ---p 004f5000 08:01 3148215                        /home/riccardo/Downloads/root/lib/libHist.so
7fb802991000-7fb8029b9000 r--p 004f4000 08:01 3148215                        /home/riccardo/Downloads/root/lib/libHist.so
7fb8029b9000-7fb8029c0000 rw-p 0051c000 08:01 3148215                        /home/riccardo/Downloads/root/lib/libHist.so
7fb8029c0000-7fb8029c9000 rw-p 00000000 00:00 0 
7fb8029c9000-7fb802b29000 r-xp 00000000 08:01 3148182                        /home/riccardo/Downloads/root/lib/libNet.so
7fb802b29000-7fb802d29000 ---p 00160000 08:01 3148182                        /home/riccardo/Downloads/root/lib/libNet.so
7fb802d29000-7fb802d35000 r--p 00160000 08:01 3148182                        /home/riccardo/Downloads/root/lib/libNet.so
7fb802d35000-7fb802d39000 rw-p 0016c000 08:01 3148182                        /home/riccardo/Downloads/root/lib/libNet.so
7fb802d39000-7fb802d40000 rw-p 00000000 00:00 0 
7fb802d40000-7fb80305e000 r-xp 00000000 08:01 3148027                        /home/riccardo/Downloads/root/lib/libRIO.so
7fb80305e000-7fb80325e000 ---p 0031e000 08:01 3148027                        /home/riccardo/Downloads/root/lib/libRIO.so
7fb80325e000-7fb803269000 r--p 0031e000 08:01 3148027                        /home/riccardo/Downloads/root/lib/libRIO.so
7fb803269000-7fb80326d000 rw-p 00329000 08:01 3148027                        /home/riccardo/Downloads/root/lib/libRIO.so
7fb80326d000-7fb803270000 rw-p 00000000 00:00 0 
7fb803270000-7fb8034b8000 r-xp 00000000 08:01 3154716                        /home/riccardo/Downloads/root/lib/libCint.so
7fb8034b8000-7fb8036b7000 ---p 00248000 08:01 3154716                        /home/riccardo/Downloads/root/lib/libCint.so
7fb8036b7000-7fb8036ba000 r--p 00247000 08:01 3154716                        /home/riccardo/Downloads/root/lib/libCint.so
7fb8036ba000-7fb8036bf000 rw-p 0024a000 08:01 3154716                        /home/riccardo/Downloads/root/lib/libCint.so
7fb8036bf000-7fb803bf7000 rw-p 00000000 00:00 0 Aborted
apt45
  • 412
  • 1
  • 6
  • 14
  • 3
    You have a bug in your code. The build script is irrelevant. – Barmar May 23 '14 at 07:42
  • @Barmar I'd understood. I don't know how to find the bug! Why do i get error when i use dynamic library and not when i compile normally using static library? – apt45 May 23 '14 at 07:50
  • Try recompiling with `-g3` in your compiler options and see if the backtrace has more information. – Adri C.S. May 23 '14 at 08:09
  • 2
    Also, take a look at [this answer](http://stackoverflow.com/a/2902129/1259884) – Adri C.S. May 23 '14 at 08:11
  • @AdriC.S. i've tried with `-g3` option but the backtrace is the same. I've looked for `delete` operator somewhere is my code and i cancelled all `delete` operators: so i don't free memory but the error is still present – apt45 May 23 '14 at 08:20
  • And what does Valgrind say? Your pastebin has been removed. – Adri C.S. May 23 '14 at 08:29
  • @AdriC.S. look here http://pastebin.com/ZzSR9rYR . gdb doesn't say anything: it run the program and at the end the backtrace appears. – apt45 May 23 '14 at 08:31
  • But i don't understand why everything goes well using static libraries and not with dynamic libraries. – apt45 May 23 '14 at 08:44
  • Do you have access to the `EnergyDist` code? The first Valgrind error reports comes from there. Also in the same lib Valgrind reports an `Invalid free() / delete / delete[] / realloc()`. – Adri C.S. May 23 '14 at 08:52
  • I don't see the cause of the error in the code you provided (but you should check those `new`, they can throw a `std::bad_alloc` exception). Maybe the cause comes from another of the files you use in there. Also, can you write how you call valgrind? And, are you using threads? – Adri C.S. May 23 '14 at 09:19
  • @AdriC.S. Yes. The EnergyDist code is here pastebin.com/Sb8Y87HU – apt45 May 23 '14 at 09:20
  • 1
    @AdriC.S. no, i'm not using threads. I call valgrind with the command `valgrind --tool=memcheck --leak-check=full --track-origins=yes --show-reachable=yes --log-file=val.log ./runAll input bragg_events.txt dump dist file.root bgcalc ranges Ranges` – apt45 May 23 '14 at 09:23
  • Hi. I haven't found anything in the code from Pastebin. Have you found a solution? Check the other classes you're using in EnergyDist and check the pointer usage. – Adri C.S. May 26 '14 at 10:13
  • @AdriC.S. i'll check. But what kind of wrong code have i to look for? For example, writing over the same pointer? – apt45 May 26 '14 at 10:20
  • The first error Valgrind reports is a "Invalid read of size 4" in EnergyDist. Check if you're accesing a pointer that is not valid anymore. For example, you're trying to access a local pointer or so: https://stackoverflow.com/questions/19785710/valgrind-error-invalid-read-of-size-4 – Adri C.S. May 26 '14 at 10:27
  • @AdriC.S. Could the function EventReadFromFile.:readFile() be the problem? See here: http://pastebin.com/JFcKRxqe – apt45 May 26 '14 at 12:31
  • Maybe. Can the `file` be deleted and then accessed again by calling this function? For example, having an event queue with two events with the same file. The first event gets dispatched and deleted (and so the file pointer) but the second event still is in the queue, with a dangling pointer. But this is mere speculation since I don't know the code. And there might be other problems besides the "Invalid read". – Adri C.S. May 26 '14 at 12:55
  • @AdriC.S.No, the `file` can't ben deleted... I don't know absolutely how to fix this problem! I don't know how to debug my code. I'm trying to print on screen pointers addresses. Now glibc says me `free(): invalid prointer 0x0......` I can upload my code on the internet, if you want. – apt45 May 26 '14 at 17:44
  • @AdriC.S. i don't understand why if i use dynamic libraries the error occurs, and if i compile normally, all goes well. – apt45 May 26 '14 at 18:17
  • 2
    It is a linking symbols overlap. This happens, when you link a staic library in two shared library and this two shared library are linked in your programm. I fixed this problem using: https://stackoverflow.com/questions/6714046/c-linux-double-destruction-of-static-variable-linking-symbols-overlap/6717613. – Medici Lorenzo Sep 27 '20 at 17:16

0 Answers0