On Friday, May 1, 2015 at 12:55:04 AM UTC+9:30, Guy Pitman wrote:
I am trying to load a c++ dll into kdb to read data from a database . I have compiled a .so file successfully and have a function defined that should return K objects called getkobj.
When I try to load it usin
getobj:($"/home/Models/Code/<wbr>makeKDBObj") 2:(
getkobj;1)
I get an error
'/home/Models/Code/makeKDBObj.so: undefined symbol: _ZN10makeKDBObjC1Ev
I have a header file
#include “k.h”
class makeKDBObj
{
public:
makeKDBObj();
virtual KK getkobj(KK FileName);
};
and a cpp file
#include “makeKDBObj.hpp”
extern “C” makeKDBObj* create_object()
{
return new makeKDBObj;
}
extern “C” void destroy_object(makeKDBObj* object )
{
delete object;
}
KK getkobj (KK FileName)
{
..
}
I can find the symbol in the file
nm -gC makeKDBObj.so | grep getkobj
00000000000047a0 T getkobj(k0*)
Can you see anything that I might be doing wrong?
Thanks very much.
I have got it loading by moving the definition of getkobj to the header. and commenting out
//makeKDBObj();
in the class makeKDBObj()
However now I get a memory fault running it. The dll appends atoms onto kdb lists and crashes after adding the second item to the lists.
*** glibc detected *** ./makeKDBObj: double free or corruption (!prev): 0x000000001f2a2a60 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3768e714af]
/lib64/libc.so.6(cfree+0x4b)[0x3768e757ab]
/lib64/libc.so.6(fclose+0x14b)[0x3768e5fd5b]
./makeKDBObj(_Z7getkobjv+0x180d)[0x40529d]
./makeKDBObj(main+0x9)[0x4038f9]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x3768e1d9f4]
./makeKDBObj[0x403961]
======= Memory map: ========
00400000-0040c000 r-xp 00000000 fd:00 10991196 /home/Models/Code/makeKDBObj
0060c000-0060d000 rw-p 0000c000 fd:00 10991196 /home/Models/Code/makeKDBObj
0060d000-00610000 rw-p 0060d000 00:00 0
1efbc000-1f7f8000 rw-p 1efbc000 00:00 0 [heap]
3768a00000-3768a1c000 r-xp 00000000 fd:00 3957207 /lib64/ld-2.5.so
3768c1c000-3768c1d000 r–p 0001c000 fd:00 3957207 /lib64/ld-2.5.so
3768c1d000-3768c1e000 rw-p 0001d000 fd:00 3957207 /lib64/ld-2.5.so
3768e00000-3768f4f000 r-xp 00000000 fd:00 3957208 /lib64/libc-2.5.so
3768f4f000-376914f000 —p 0014f000 fd:00 3957208 /lib64/libc-2.5.so
376914f000-3769153000 r–p 0014f000 fd:00 3957208 /lib64/libc-2.5.so
3769153000-3769154000 rw-p 00153000 fd:00 3957208 /lib64/libc-2.5.so
3769154000-3769159000 rw-p 3769154000 00:00 0
3769200000-3769282000 r-xp 00000000 fd:00 3957221 /lib64/libm-2.5.so
3769282000-3769481000 —p 00082000 fd:00 3957221 /lib64/libm-2.5.so
3769481000-3769482000 r–p 00081000 fd:00 3957221 /lib64/libm-2.5.so
3769482000-3769483000 rw-p 00082000 fd:00 3957221 /lib64/libm-2.5.so
3769600000-3769602000 r-xp 00000000 fd:00 3957210 /lib64/libdl-2.5.so
3769602000-3769802000 —p 00002000 fd:00 3957210 /lib64/libdl-2.5.so
3769802000-3769803000 r–p 00002000 fd:00 3957210 /lib64/libdl-2.5.so
3769803000-3769804000 rw-p 00003000 fd:00 3957210 /lib64/libdl-2.5.so
3769a00000-3769a16000 r-xp 00000000 fd:00 3957478 /lib64/libpthread-2.5.so
3769a16000-3769c16000 —p 00016000 fd:00 3957478 /lib64/libpthread-2.5.so
3769c16000-3769c17000 r–p 00016000 fd:00 3957478 /lib64/libpthread-2.5.so
3769c17000-3769c18000 rw-p 00017000 fd:00 3957478 /lib64/libpthread-2.5.so
3769c18000-3769c1c000 rw-p 3769c18000 00:00 0
3769e00000-3769e14000 r-xp 00000000 fd:00 3957494 /lib64/libz.so.1.2.3
3769e14000-376a013000 —p 00014000 fd:00 3957494 /lib64/libz.so.1.2.3
376a013000-376a014000 rw-p 00013000 fd:00 3957494 /lib64/libz.so.1.2.3
376c600000-376c67f000 r-xp 00000000 fd:00 3224163 /usr/lib64/libfreetype.so.6.3.10
376c67f000-376c87f000 —p 0007f000 fd:00 3224163 /usr/lib64/libfreetype.so.6.3.10
376c87f000-376c884000 rw-p 0007f000 fd:00 3224163 /usr/lib64/libfreetype.so.6.3.10
3778400000-377840d000 r-xp 00000000 fd:00 3957461 /lib64/libgcc_s-4.1.2-20080825.so.1
377840d000-377860d000 —p 0000d000 fd:00 3957461 /lib64/libgcc_s-4.1.2-20080825.so.1
377860d000-377860e000 rw-p 0000d000 fd:00 3957461 /lib64/libgcc_s-4.1.2-20080825.so.1
377a000000-377a009000 r-xp 00000000 fd:00 3957493 /lib64/libcrypt-2.5.so
377a009000-377a208000 —p 00009000 fd:00 3957493 /lib64/libcrypt-2.5.so
377a208000-377a209000 r–p 00008000 fd:00 3957493 /lib64/libcrypt-2.5.so
377a209000-377a20a000 rw-p 00009000 fd:00 3957493 /lib64/libcrypt-2.5.so
377a20a000-377a238000 rw-p 377a20a000 00:00 0
377bc00000-377bc4e000 r-xp 00000000 fd:00 3212349 /usr/lib64/libncurses.so.5.5
377bc4e000-377be4e000 —p 0004e000 fd:00 3212349 /usr/lib64/libncurses.so.5.5
377be4e000-377be5c000 rw-p 0004e000 fd:00 3212349 /usr/lib64/libncurses.so.5.5
377be5c000-377be5d000 rw-p 377be5c000 00:00 0
2b51eda9b000-2b51eda9d000 rw-p 2b51eda9b000 00:00 0
2b51eda9d000-2b51ee163000 r-xp 00000000 fd:00 11813662 /home/Root/root/lib/libCore.so
2b51ee163000-2b51ee363000 —p 006c6000 fd:00 11813662 /home/Root/root/lib/libCore.so
2b51ee363000-2b51ee39a000 rw-p 006c6000 fd:00 11813662 /home/Root/root/lib/libCore.so
2b51ee39a000-2b51ee41a000 rw-p 2b51ee39a000 00:00 0
2b51ee41a000-2b51ee654000 r-xp 00000000 fd:00 11813575 /home/Root/root/lib/libCint.so
2b51ee654000-2b51ee853000 —p 0023a000 fd:00 11813575 /home/Root/root/lib/libCint.so
2b51ee853000-2b51ee85b000 rw-p 00239000 fd:00 11813575 /home/Root/root/lib/libCint.so
2b51ee85b000-2b51eed94000 rw-p 2b51ee85b000 00:00 0
2b51eed94000-2b51eef51000 r-xp 00000000 fd:00 11813727 /home/Root/root/lib/libRIO.so
2b51eef51000-2b51ef151000 —p 001bd000 fd:00 11813727 /home/Root/root/lib/libRIO.so
2b51ef151000-2b51ef15b000 rw-p 001bd000 fd:00 11813727 /home/Root/root/lib/libRIO.so
2b51ef15b000-2b51ef15d000 rw-p 2b51ef15b000 00:00 0
2b51ef15d000-2b51ef288000 r-xp 00000000 fd:00 11813893 /home/Root/root/lib/libNet.so
2b51ef288000-2b51ef488000 —p 0012b000 fd:00 11813893 /home/Root/root/lib/libNet.so
2b51ef488000-2b51ef496000 rw-p 0012b000 fd:00 11813893 /home/Root/root/lib/libNet.so
2b51ef496000-2b51ef498000 rw-p 2b51ef496000 00:00 0
2b51ef498000-2b51ef8da000 r-xp 00000000 fd:00 11813937 /home/Root/root/lib/libHist.so
2b51ef8da000-2b51efada000 —p 00442000 fd:00 11813937 /home/Root/root/lib/libHist.so
2b51efada000-2b51efb00000 rw-p 00442000 fd:00 11813937 /home/Root/root/lib/libHist.so
2b51efb00000-2b51efb08000 rw-p 2b51efb00000 00:00 0
2b51efb08000-2b51efca7000 r-xp 00000000 fd:00 11814035 /home/Root/root/lib/libGraf.so
2b51efca7000-2b51efea6000 —p 0019f000 fd:00 11814035 /home/Root/root/lib/libGraf.so
2b51efea6000-2b51efeb6000 rw-p 0019e000 fd:00 11814035 /home/Root/root/lib/libGraf.so
2b51efeb6000-2b51efec3000 rw-p 2b51efeb6000 00:00 0
2b51efec3000-2b51effdf000 r-xp 00000000 fd:00 11814037 /home/Root/root/lib/libGraf3d.so
2b51effdf000-2b51f01df000 —p 0011c000 fd:00 11814037 /home/Root/root/lib/libGraf3d.so
2b51f01df000-2b51f01eb000 rw-p 0011c000 fd:00 11814037 /home/Root/root/lib/libGraf3d.so
2b51f01eb000-2b51f01ef000 rw-p 2b51f01eb000 00:00 0
2b51f01ef000-2b51f02d7000 r-xp 00000000 fd:00 11814036 /home/Root/root/lib/libGpad.so
2b51f02d7000-2b51f04d7000 —p 000e8000 fd:00 11814036 /home/Root/root/lib/libGpad.so
2b51f04d7000-2b51f04e2000 rw-p 000e8000 fd:00 11814036 /home/Root/root/lib/libGpad.so
2b51f04e2000-2b51f04e5000 rw-p 2b51f04e2000 00:00 0
2b51f04e5000-2b51f06ea000 r-xp 00000000 fd:00 11814034 /home/Root/root/lib/libTree.so
2b51f06ea000-2b51f08e9000 —p 00205000 fd:00 11814034 /home/Root/root/lib/libTree.so
2b51f08e9000-2b51f08fc000 rw-p 00204000 fd:00 11814034 /home/Root/root/lib/libTree.so
2b51f08fc000-2b51f0900000 rw-p 2b51f08fc000 00:00 0
2b51f0900000-2b51f0932000 r-xp 00000000 fd:00 11814160 /home/Root/root/lib/libRint.so
2b51f0932000-2b51f0b31000 —p 00032000 fd:00 11814160 /home/Root/root/lib/libRint.so
2b51f0b31000-2b51f0b34000 rw-p 00031000 fd:00 11814160 /home/Root/root/lib/libRint.so
2b51f0b34000-2b51f0b82000 r-xp 00000000 fd:00 11814159 /home/Root/root/lib/libPostscript.so
2b51f0b82000-2b51f0d81000 —p 0004e000 fd:00 11814159 /home/Root/root/lib/libPostscript.so
2b51f0d81000-2b51f0d85000 rw-p 0004d000 fd:00 11814159 /home/Root/root/lib/libPostscript.so
2b51f0d85000-2b51f0d86000 rw-p 2b51f0d85000 00:00 0
2b51f0d86000-2b51f0fd6000 r-xp 00000000 fd:00 11813935 /home/Root/root/lib/libMatrix.so
2b51f0fd6000-2b51f11d5000 —p 00250000 fd:00 11813935 /home/Root/root/lib/libMatrix.so
2b51f11d5000-2b51f11e3000 rw-p 0024f000 fd:00 11813935 /home/Root/root/lib/libMatrix.so
2b51f11e3000-2b51f11e7000 rw-p 2b51f11e3000 00:00 0
2b51f11e7000-2b51f1286000 r-xp 00000000 fd:00 11814158 /home/Root/root/lib/libPhysics.so
2b51f1286000-2b51f1485000 —p 0009f000 fd:00 11814158 /home/Root/root/lib/libPhysics.so
2b51f1485000-2b51f148b000 rw-p 0009e000 fd:00 11814158 /home/Root/root/lib/libPhysics.so
2b51f148b000-2b51f1680000 r-xp 00000000 fd:00 11813832 /home/Root/root/lib/libMathCore.so
2b51f1680000-2b51f1880000 —p 001f5000 fd:00 11813832 /home/Root/root/lib/libMathCore.so
2b51f1880000-2b51f188c000 rw-p 001f5000 fd:00 11813832 /home/Root/root/lib/libMathCore.so
2b51f188c000-2b51f1893000 rw-p 2b51f188c000 00:00 0
2b51f1893000-2b51f18e2000 r-xp 00000000 fd:00 11813894 /home/Root/root/lib/libThread.so
2b51f18e2000-2b51f1ae1000 —p 0004f000 fd:00 11813894 /home/Root/root/lib/libThread.so
2b51f1ae1000-2b51f1ae6000 rw-p 0004e000 fd:00 11813894 /home/Root/root/lib/libThread.so
2b51f1ae6000-2b51f1aff000 rw-p 2b51f1ae6000 00:00 0
2b51f1aff000-2b51f1b81000 r-xp 00000000 fd:00 11814053 /home/Root/root/lib/libMinuit.so
2b51f1b81000-2b51f1d80000 —p 00082000 fd:00 11814053 /home/Root/root/lib/libMinuit.so
2b51f1d80000-2b51f1d84000 rw-p 00081000 fd:00 11814053 /home/Root/root/lib/libMinuit.so
2b51f1d84000-2b51f1d86000 rw-p 2b51f1d84000 00:00 0
2b51f1d86000-2b51f1fb2000 r-xp 00000000 fd:00 53438355 /home/Root/root/lib/libGenVector.so
2b51f1fb2000-2b51f21b1000 —p 0022c000 fd:00 53438355 /home/Root/root/lib/libGenVector.so
2b51f21b1000-2b51f21b5000 rw-p 0022b000 fd:00 53438355 /home/Root/root/lib/libGenVector.so
2b51f21b5000-2b51f21bb000 rw-p 2b51f21b5000 00:00 0
2b51f21bb000-2b51f249e000 r-xp 00000000 fd:00 10404921 /home/Madgraph/MG5_aMC_v2_2_2/Delphes/libDelphes.so
2b51f249e000-2b51f269d000 —p 002e3000 fd:00 10404921 /home/Madgraph/MG5_aMC_v2_2_2/Delphes/libDelphes.so
2b51f269d000-2b51f26b9000 rw-p 002e2000 fd:00 10404921 /home/Madgraph/MG5_aMC_v2_2_2/Delphes/libDelphes.so
2b51f26b9000-2b51f26c5000 rw-p 2b51f26b9000 00:00 0
2b51f26c5000-2b51f272a000 r-xp 00000000 fd:00 11814200 /home/Root/root/lib/libEG.so
2b51f272a000-2b51f292a000 —p 00065000 fd:00 11814200 /home/Root/root/lib/libEG.so
2b51f292a000-2b51f292e000 rw-p 00065000 fd:00 11814200 /home/Root/root/lib/libEG.so
2b51f292e000-2b51f298d000 rw-p 2b51f292e000 00:00 0
2b51f298d000-2b51f2a6d000 r-xp 00000000 fd:00 3220689 /usr/lib64/libstdc++.so.6.0.16
2b51f2a6d000-2b51f2c6c000 —p 000e0000 fd:00 3220689 /usr/lib64/libstdc++.so.6.0.16
2b51f2c6c000-2b51f2c74000 r–p 000df000 fd:00 3220689 /usr/lib64/libstdc++.so.6.0.16
2b51f2c74000-2b51f2c76000 rw-p 000e7000 fd:00 3220689 /usr/lib64/libstdc++.so.6.0.16
2b51f2c76000-2b51f2c93000 rw-p 2b51f2c76000 00:00 0
2b51f2c93000-2b51f2c9d000 r-xp 00000000 fd:00 3957438 /lib64/libnss_files-2.5.so
2b51f2c9d000-2b51f2e9c000 —p 0000a000 fd:00 3957438 /lib64/libnss_files-2.5.so
2b51f2e9c000-2b51f2e9d000 r–p 00009000 fd:00 3957438 /lib64/libnss_files-2.5.so
2b51f2e9d000-2b51f2e9e000 rw-p 0000a000 fd:00 3957438 /lib64/libnss_files-2.5.so
2b51f2e9e000-2b51f2fca000 rw-p 2b51f2e9e000 00:00 0
2b51f2ff4000-2b51f3066000 rw-p 2b51f2ff4000 00:00 0
7fff4f701000-7fff4f73d000 rw-p 7ffffffc2000 00:00 0 [stack]
ffffffffff600000-ffffffffffe00000 —p 00000000 00:00 0 [vdso]
Aborted