fedorova / vividperf

Performance tools
Other
9 stars 2 forks source link

Compiling memdb / memtracker.so #1

Open makmanalp opened 6 years ago

makmanalp commented 6 years ago

Hi, I'm having a heck of a hard time trying to compile everything for

1) Using pintools 2: For this I need to get g++3.4 (otherwise I get "The C++ ABI of your compiler does not match the ABI of the pin kit."), which is fine, but then memtracker won't compile because it uses -std=c++0x, which g++3.4 doesn't support.

2) Using pintools 3: I can get everything to compile, but then when I run (e.g. with ../../pin-3.2-81205-gcc-linux/pin -t obj-intel64/memtracker.so -- ls) I get:

E: Unable to load /home/ubuntu/vividperf/pintools/obj-intel64/memtracker.so: dlopen failed: cannot locate symbol "_ZTVN10__cxxabiv117__class_type_infoE" referenced by "/home/ubuntu/vividperf/pintools/obj-intel64/memtracker.so"

Do you have any tips regarding compiler and pintools versions to use, or what I may be missing?

edit: I tried to do ldd memtracker.so but I think the result is unhelpful because pin must be setting LD_LIBRARY_PATH:

ubuntu@ip-172-31-13-88:~/vividperf/pintools$ ldd -v obj-intel64/memtracker.so
        linux-vdso.so.1 =>  (0x00007fff3cd85000)
        libxed.so => not found
        libpin3dwarf.so => not found
        libdl-dynamic.so => not found
        libstlport-dynamic.so => not found
        libc-dynamic.so => not found
        libunwind-dynamic.so => not found
JingHa commented 5 years ago

Hello, I have encountered the same problem. Can you solve it? How can I solve it? Can you give me some tips? I look forward to your reply, thank you.

songku commented 3 weeks ago

Hello, I have encountered the same problem. Can you solve it? How can I solve it? Can you give me some tips? I look forward to your reply, thank you.

I'm installing another program VUzzer which also utilizes the bbcounts2.so file which comes from pintool and face the same problem.I use locate command to find the path of the missing .so files and the results are listed as followed. My Pin was installed in /home/pin-3.20-98437-gf02b61307-gcc-linux/.

root@DESKTOP-T61UC2B:/home/vuzzer64/fuzzer-code# ldd ./obj-intel64/bbcounts2.so
        linux-vdso.so.1 (0x00007ffff7fc1000) # not found but don't matter
        libxed.so =>   # lies in/home/pin-3.20-98437-gf02b61307-gcc-linux/extras/xed-intel64/lib/libxed.so
        libpin3dwarf.so => not found  # lies in /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/lib-ext/libpin3dwarf.so
        libdl-dynamic.so => not found  # lies in /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libdl-dynamic.so
        libstlport-dynamic.so => not found  # lies in /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libstlport-dynamic.so
        libc-dynamic.so => not found  # lies in /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libc-dynamic.so
        libunwind-dynamic.so => not found  # lies in /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libunwind-dynamic.so

After that,I use export command to set the LD_LIBRARY_PATH environment to help ldd command find the path of the .so files.

export LD_LIBRARY_PATH=/home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/lib-ext/:/home/pin-3.20-98437-gf02b61307-gcc-linux/extras/xed-intel64/lib/:/home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/:$LD_LIBRARY_PATH

Then my ldd obj-intel64/bbcounts2.so command worked well.

root@DESKTOP-T61UC2B:/home/vuzzer64/fuzzer-code# ldd obj-intel64/bbcounts2.so
        linux-vdso.so.1 (0x00007ffff7fc1000)
        libxed.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/extras/xed-intel64/lib/libxed.so (0x00007ffff7600000)
        libpin3dwarf.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/lib-ext/libpin3dwarf.so (0x00007ffff731b000)
        libdl-dynamic.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libdl-dynamic.so (0x00007ffff7000000)
        libstlport-dynamic.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libstlport-dynamic.so (0x00007ffff6c00000)
        libc-dynamic.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libc-dynamic.so (0x00007ffff6800000)
        libunwind-dynamic.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libunwind-dynamic.so (0x00007ffff6400000)
        libm-dynamic.so => /home/pin-3.20-98437-gf02b61307-gcc-linux/intel64/runtime/pincrt/libm-dynamic.so (0x00007ffff6000000)

I think you can try to replace the export command's /home/pin-3.20-98437-gf02b61307-gcc-linux/ with your own path-to-pin and run it.