Re: [DynInst_API:] Using instrumentation library on statically linked binaries


Date: Wed, 20 Mar 2019 12:50:36 -0500
From: Tim Haines <thaines.astro@xxxxxxxxx>
Subject: Re: [DynInst_API:] Using instrumentation library on statically linked binaries
Hi, Karl.

We've had a lot of recent work go into Dyninst regarding statically-linked binaries, but I've not seen this particular error yet. I have a few questions to narrow down the situation:

1. Which version of Dyninst are you using?

2. Which compiler and version was used to build the mutatee?

3. What OS are you using?

4. Which version of libc are you using?

If you could provide this information on our Github issue (https://github.com/dyninst/dyninst/issues/568), I would greatly appreciate it as it helps us better keep track of user-provided feedback.

Many thanks.

- Tim


On Mon, Mar 18, 2019 at 5:27 PM Karl Ott <kaott@xxxxxxxx> wrote:
Howdy,
I am trying to instrument a statically linked binary and no matter
what I have tried the mutator code can't seem to find the functions in
my static instrumentation library. It returns with a cascade of the
following:
--SERIOUS-- #100: Image: Unable to find function: inst_func

I have a dynamic version of the instrumentation library for operating
on dynamically linked libraries and it works as expected.

I am only interested in statically modifying the binary (edit on
disk). I searched through the documentation but can't seem to find
much for working with statically linked binaries, but it appears to be
possible. The situation is described below:
mutator_program
dynamic_inst_library.so
static_inst_library.a
dynamic_mutatee
static_mutatee

In the mutator program there is a check to see if it is a static or
dynamic binary, via isStaticExecutable, and it chooses which
instrumentation library to use. It then loads up the correct library
with a libraryLoad call and tries to find a function that is specified
by the user of the mutator program. However, in the case of the static
version it can't find the instrumentation functions.

Can anyone provide any insight on this? Or point me to the appropriate
documentation for working with static binaries I may have missed?

Regards,
-karl
_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
[← Prev in Thread] Current Thread [Next in Thread→]