Folks:
authorchadd <chadd>
Tue, 21 May 2002 17:40:30 +0000 (17:40 +0000)
committerchadd <chadd>
Tue, 21 May 2002 17:40:30 +0000 (17:40 +0000)
commit787b0494476893f76bf6b308eadbedd57fbe9faf
tree75dfcbf86705428b6641b5c1745c6c64ce1f9ff0
parent0a8524d8b680710b5254581dfed1f8ec56b1c384
Folks:
This commit fixes a number of bugs in the
save the world code.

1. The mutated binary is now put in a subdirectory
created under the current working directory. Previously
it was put in a subdirectory created under the directory
holding the mutatee.  This was a problem when saving
instrumentation placed in a mutatee in a non-writeable
directory (ie java).

2. If the mutatee was compiled with a compiler other
than gcc the _DYNAMIC table could have been created
such that it was impossible (with the implentation
of save the world) to add the DyninstAPI runtime
shared library to the dependency list.  The method
for adding the shared library has been changed to a
much more general way.  This could still fail if there
is not enough room between the text and data segments
to stick in the new _DYNAMIC table.  This is highly
unlikely because the gap is ~1 page and the _DYNAMIC
table is usually less than 250 bytes. This limitation
comes from the implementation of the operating
system's loader.

enjoy
chadd

M dyninstAPI/src/addLibrary.C
M dyninstAPI/src/addLibrary.h
M dyninstAPI/src/addLibraryLinux.C
M dyninstAPI/src/addLibraryLinux.h
M dyninstAPI/src/process.C
M dyninstAPI/src/writeBackElf.C
dyninstAPI/src/addLibrary.C
dyninstAPI/src/addLibrary.h
dyninstAPI/src/addLibraryLinux.C
dyninstAPI/src/addLibraryLinux.h
dyninstAPI/src/process.C
dyninstAPI/src/writeBackElf.C