This shared library is used with LD_PRELOAD to wrap the Android runtime
when used with the desktop simulator.
Because LD_PRELOAD is part of the environment when gdb and valgrind are
invoked, the wrapper can "see" activity from both of these (more so gdb
than valgrind). For this reason it needs to be very careful about which
"open" calls are intercepted.
It's also important that none of the intercepted system or library calls
are invoked directly, or infinite recursion could result.
Avoid creating dependencies on other libraries.
To debug wrapsim, set WRAPSIM_LOG to a log file before launching, e.g.
% WRAPSIM_LOG=/tmp/wraplog.txt simulator
For more verbose logging, you can enable the verbose forms of CALLTRACE
and CALLTRACEV in Intercept.c.
To build, you will need to have the 32-bit libaudio2 development package
installed. On Ubuntu Hardy, do something like:
% sudo apt-get install lib32asound2-dev