精灵错误:请求错误:ELF_C_ *参数无效(当我尝试运行我的程序时)

时间:2015-04-21 11:45:25

标签: c unix profiling profiler

我创建了一个程序,它获取加载/存储操作的内容以创建内存配置文件。它汇编得很好。但是,当我尝试运行它时,我收到以下错误:

   Elf error: Request error: invalid ELF_C_* argument
    --FATAL-- #68: Dyninst was unable to create the specified process
    --FATAL-- #68: create process failed bootstrap
    profile: profile.c:27: void createProcess(const char*, const char**): 

Assertion `g_bpProcess' failed.

我正在使用Red Hat系统。核心3.10.26。 GCC 4.8.2。

我安装了boost 1.53。将它添加到PATH和LD_LIBRARY_PATH,

使用--prefix=/path/to/elf_bld/

安装了libelf

使用--enable-shared --prefix=/path/to/dwarf_bld/ and with export LIBS="-lelf", export LDFLAGS="-L/path/to/elf_bld/lib/" , CPPFLAGS="-I/path/to/elf_bld/include"

安装了libwarf

使用--prefix=/path/to/Dyn_bld/ --with-boost=/path/to/boost_1_53_0/ --with-libelf=/path/to/elf_bld --with-libdwarf-incdir=/path/to/lobdwarf --with-libdwarf-libdir=/path/to/libdwarf

安装了DyninstAPI-8.1.1

安装不是root用户。

我编译

    CC    = g++
    CFLAGS    = -Wall -static
    EXECNAME= profile
    LIB    =    -L /path/to/boost_1_53_0/stage/lib  -L/path/to/Dyn_bld/lib -L /path/to/libdwarf -L /path/to/elf_bld/lib

    INCLUDE =    -I /path/to/boost_1_53_0/ -I /path/to/Dyn_bld/include/  -I /path/to/libdwarf/ -I /path/to/elf_bld/include/

    DYNINST_ROOT =/path/to/Dyn_bld/lib

    $(EXECNAME): $(EXECNAME).o
        $(CC) $(EXECNAME).o ${INCLUDE} ${LIB} \
            -ldyninstAPI -lsymtabAPI -lcommon -ldwarf -lelf -o $(EXECNAME)

    $(EXECNAME).o: ./$(EXECNAME).c
        $(CC) -g -c $(CFLAGS) $(EXECNAME).c

clean:
    @rm -f $(EXECNAME).o $(EXECNAME) core

export CC=gcc
export DYNINST_ROOT=/path/to/Dyn_bld
export DYNINSTAPI_RT_LIB=/path/to/Dyn_bld/lib/libdyninstAPI_RT.so.8.1.1

那么,有人可以帮我吗?

我对此非常不满。任何帮助表示赞赏。

谢谢, 德米特里

0 个答案:

没有答案