Re: [DynInst_API:] FATAL 68 Dyninst


Date: Fri, 27 Apr 2018 12:11:52 +0200
From: Alberto Olmo <aolmo.uab@xxxxxxxxx>
Subject: Re: [DynInst_API:] FATAL 68 Dyninst
Dear Xiaozhu,

Thanks to your advice I have managed to know in what lines the problems stems from and, as you pointed out, the error comes from these two lines:

bool result = SymtabAPI::Symtab::openFile(symt_obj, fileName);
if( !result ) return false;

Apparently, the var resultÂbecomes 0 after the openFile function fails. The value that symt_obj has is 0 (after the call ends) and the fileName is just the name of my app. Maybe I am missing something...

In addition, I have tried to install the PR that you sent me but I am getting another error while executing the cmake: it cannot find ddb.db, params.db norÂunistd.db from unstrip_src. I am attaching the whole configure log to this email in the event you wanted to see it.

Thank you !





Alberto Olmo.


2018-04-26 19:17 GMT+02:00 Xiaozhu Meng <xmeng@xxxxxxxxxxx>:
In setenvPreload, before any of the returning false, there is aÂstartup_printf call, which will print some error message when setting DYNINST_DEBUG_STARTUP=1. So, you can add startup_printf before that return, run it again, and see if the corresponding message showed up.

For the example issue, you can try this PR (https://github.com/dyninst/dyninst/pull/457), which should fix the problem.

Let me know what you find.

On Thu, Apr 26, 2018 at 11:18 AM, Alberto Olmo <aolmo.uab@xxxxxxxxx> wrote:
Hi Xiaozhu,

Sorry, could you please tell me how I can see if that is the line of code that is failing? I believe that should be the one because the error message I am getting apparently comes from the setenvPreloadÂfunction, but I am not 100% sure,

At first, I tried to install the current master branch but I got an error with the CodeCoverage example where it said that couldn't find it so, I decided to use your tagged versions instead and that problem did not appear to me again,

Thanks

Alberto Olmo.


2018-04-26 15:29 GMT+02:00 Xiaozhu Meng <xmeng@xxxxxxxxxxx>:
Hi Alberto,

I think your errors are caused by functionÂPCProcess::setEnvPreload (in dyninstAPI/src/unix.C) returning false. In this function, there are error loggings for returning false, except for one location (Line 334ïÂbool result = SymtabAPI::Symtab::openFile(symt_obj, fileName); and Line 335: if( !result ) return false;)

Can you confirm that it is this line of code causing the error (the line number may differ because I looked at the current master branch)?

Another thing to try is to install the current master branch and see if the same error happens.

Thanks,

--Xiaozhu

On Thu, Apr 26, 2018 at 4:42 AM, Alberto Olmo <aolmo.uab@xxxxxxxxx> wrote:
Hi Xiaozhu,

I have double checked and both libraries that you pointed out were of the same version. I have tried to run the program with one or the other and none of them are found by Dyninst (the same error persists). Also, maybe it's very obvious but, I have noticed if I delete DYNINST_API_RT_LIB and/or DYNINSTAPI_RT_LIB environment variables, the error does not change either.

Finally, I have also installed Dyninst 9.3.0 in a Lubuntu v17.10 32 bit VM and my application seems to work (I haven't been able to make v9.3.2 work with the Counter Mutator example in Lubuntu) however, I would like to make it work on the CentOS 7.

All of that makes me think that maybe the problem stems from the dependencies or something that I am not doing well, but I am definitely not sure as I could install Dyninst in both machines without any errors.

What would you recommend me that I try next?

Thanks again for your help,


Alberto Olmo.


2018-04-25 17:27 GMT+02:00 Xiaozhu Meng <xmeng@xxxxxxxxxxx>:
Hi Alberto,

From your log for the successful run, it seems like you have multiple instances of Dyninst installed: one inÂ/home/aolmo/soft/dyninst-9.3.2/install/lib/ and the other one in /usr/local/lib/. Do you know whether these two instances of Dyninst are the same version? I would recommend that you ensure that you compile your application and run your application with the exact same installation of Dyninst.

I am not sure whether this is the cause, but it is indeed strange that one application can find DyninstRT, but the other one cannot find it.

Thanks,

--Xiaozhu

On Wed, Apr 25, 2018 at 2:02 AM, Alberto Olmo <aolmo.uab@xxxxxxxxx> wrote:
Hello Xiaozhu,

I have doble checked and I don't get much more debug information than the one I sent you in the last email. All I can see is this:

Enabling DyninstAPI startup debug
Enabling DyninstAPI startup debug

Failed to set environment var to preload RT library
--FATAL-- #68: Dyninst was unable to create the specified process
--FATAL-- #68: create process failed bootstrap
DynInst Exception: Process creation failed, Object name: my_app
Creating process my_app in directory ./
[140571584620416]dynProcess.C[85]: stdin: 0, stdout: 1, stderr: 2

Failed to set environment var to preload RT library
--FATAL-- #68: Dyninst was unable to create the specified process
--FATAL-- #68: create process failed bootstrap
DynInst Exception: Process creation failed, Object name: my_app

I have also attached to this email the same log (log.txt) in the event you wanted to see it in a file as well as the logs from a successful Dyninst execution with a synthetic app, that only counts the number of times a function is called (mutator-counter-log.txt).

What do you think it may be happening?Â

Thank you very much for your help,


Alberto Olmo.


2018-04-24 17:19 GMT+02:00 Alberto Olmo <aolmo.uab@xxxxxxxxx>:
HiÂXiaozhu,

I currently don't have access to the machine where I have Dyninst installed. I will send the debugging log tomorrow if you don't mind,
I am using a 64 bit CentOS 7,

Thanks for your rapid response,



Alberto Olmo.


2018-04-24 16:49 GMT+02:00 Xiaozhu Meng <xmeng@xxxxxxxxxxx>:
Hi Alberto,

What's your platform (windows or linux; 32bit or 64bit)? Could you send me the debugging log from DYNINST_DEBUG_STARTUP=1ï

Thanks,

--Xiaozhu

On Tue, Apr 24, 2018 at 4:49 AM, Alberto Olmo <aolmo.uab@xxxxxxxxx> wrote:
To whom it may concern,

My name is Alberto, a student at the Universitat Autonoma de Barcelona, and I am currently trying to install the Dyninst API in order to use it in another application. I have been able to install version 9.3.2 and its dependencies and test it with a small program which counts the number of times a function is called. It works correctly.

However, now I am trying to use it in another application which (I think) needs to call BPatch::processCreate and I get the following errors:

Failed to set environment var to preload RT library
--FATAL-- #68: Dyninst was unable to create the specified process
--FATAL-- #68: create process failed bootstrap
DynInst Exception: Process creation failed, Object name: my_app
Â

I do have exported variables DYNINSTAPI_RT_LIB and DYNINST_API_RT_LIB to point toÂlibdyninstAPI_RT.soÂ(I think depending on the Dyninst version one or the other is needed) as well as set the flag DYNINST_DEBUG_STARTUP=1 to get more information about the problem.Â

I have also tried with older versions but the error I get is exactly the same,

What would you recommend me that I try?

I would really appreciate any help you could provide me,
Thank you very much in advance and sorry for the inconveniences,

Alberto Olmo.


_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api









-- -- Input platform: 
-- -- Attempting to automatically identify platform: x86_64-unknown-linux2.4
-- Found libiberty: /usr/lib64/libiberty.a
-- Using libiberty /usr/lib64/libiberty.a
-- Disabling Boost's own CMake--known buggy in many cases
-- Boost version: 1.62.0
-- Found the following Boost libraries:
--   thread
--   system
--   date_time
--   chrono
--   atomic
-- Boost includes: /home/aolmo/soft/boost_1_62_0
-- Boost library dirs: /home/aolmo/soft/boost_1_62_0/stage/lib
-- Boost thread library: /home/aolmo/soft/boost_1_62_0/stage/lib/libboost_thread.so
-- Boost libraries: /home/aolmo/soft/boost_1_62_0/stage/lib/libboost_thread.so;/home/aolmo/soft/boost_1_62_0/stage/lib/libboost_system.so;/home/aolmo/soft/boost_1_62_0/stage/lib/libboost_date_time.so;/home/aolmo/soft/boost_1_62_0/stage/lib/libboost_chrono.so;/home/aolmo/soft/boost_1_62_0/stage/lib/libboost_atomic.so
-- C++11 support found, required flags are: -std=c++11
-- Enabling ThreadDB support
-- Set arch and platform based definitions
-- Found g++, enabling -fvisibility=hidden
-- Options set
-- Set optimization flags
-- cotire 1.7.8 loaded.
-- Building common...
-- Processing dependent target /usr/lib64/libiberty.a...
-- Building dynElf...
-- Processing dependent target /usr/local/lib/libelf.so.1...
-- Building dynDwarf...
-- Processing dependent target dynElf...
-- Found dependency location /home/aolmo/soft/dyninst-master/elf
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target /usr/local/lib64/libdw.so...
-- Processing dependent target /usr/local/lib/libelf.so.1...
-- Building symLite...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target dynElf...
-- Found dependency location /home/aolmo/soft/dyninst-master/elf
-- Building instructionAPI...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Building symtabAPI...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target dynElf...
-- Found dependency location /home/aolmo/soft/dyninst-master/elf
-- Processing dependent target /usr/local/lib/libelf.so.1...
-- Processing dependent target dynDwarf...
-- Found dependency location /home/aolmo/soft/dyninst-master/dwarf
-- Processing dependent target /usr/local/lib64/libdw.so...
-- Building parseAPI...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target instructionAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/instructionAPI
-- Processing dependent target symtabAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/symtabAPI
-- Building pcontrol...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target symtabAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/symtabAPI
-- Building stackwalk...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target instructionAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/instructionAPI
-- Processing dependent target pcontrol...
-- Found dependency location /home/aolmo/soft/dyninst-master/proccontrol
-- Processing dependent target dynDwarf...
-- Found dependency location /home/aolmo/soft/dyninst-master/dwarf
-- Processing dependent target dynElf...
-- Found dependency location /home/aolmo/soft/dyninst-master/elf
-- Processing dependent target symtabAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/symtabAPI
-- Processing dependent target parseAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/parseAPI
-- Building patchAPI...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target instructionAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/instructionAPI
-- Processing dependent target parseAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/parseAPI
CMake Error at examples/CMakeLists.txt:12 (file):
  file COPY cannot find
  "/home/aolmo/soft/dyninst-master/examples/unstrip_src/ddb.db".


CMake Error at examples/CMakeLists.txt:13 (file):
  file COPY cannot find
  "/home/aolmo/soft/dyninst-master/examples/unstrip_src/params.db".


CMake Error at examples/CMakeLists.txt:14 (file):
  file COPY cannot find
  "/home/aolmo/soft/dyninst-master/examples/unstrip_src/unistd.db".


-- Building dyninstAPI...
-- Processing dependent target common...
-- Found dependency location /home/aolmo/soft/dyninst-master/common
-- Processing dependent target instructionAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/instructionAPI
-- Processing dependent target stackwalk...
-- Found dependency location /home/aolmo/soft/dyninst-master/stackwalk
-- Processing dependent target pcontrol...
-- Found dependency location /home/aolmo/soft/dyninst-master/proccontrol
-- Processing dependent target patchAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/patchAPI
-- Processing dependent target parseAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/parseAPI
-- Processing dependent target symtabAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/symtabAPI
-- Building dynC_API...
-- Processing dependent target dyninstAPI...
-- Found dependency location /home/aolmo/soft/dyninst-master/dyninstAPI
-- Configuring DyninstAPI_RT
-- Configuring RT library
-- The C compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- -- Input platform: x86_64-unknown-linux2.4
-- Set arch and platform based definitions
-- Options set
-- Set optimization flags
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- dyninstAPI RT library SOVERSION: 9.3
-- dyninstAPI RT library LIBVERSION: 9.3.2
-- Checking for 32-bit runtime library...
-- Performing Test CHECK_RT_LIB_32
-- Performing Test CHECK_RT_LIB_32 - Failed
-- Disabling 32-bit runtime library; change BUILD_RTLIB_32 to ON and install 32-bit build environment to enable
-- Configuring done
-- Generating done
-- Build files have been written to: /home/aolmo/soft/dyninst-master/dyninstAPI_RT
-- Could NOT find LATEX (missing: LATEX_COMPILER) 
-- LaTeX not found
-- Adding Unix-specific dependencies
-- Added libdwarf_imp and libelf_imp dependencies
-- Configuring incomplete, errors occurred!
See also "/home/aolmo/soft/dyninst-master/CMakeFiles/CMakeOutput.log".
See also "/home/aolmo/soft/dyninst-master/CMakeFiles/CMakeError.log".
[← Prev in Thread] Current Thread [Next in Thread→]