OK, I found a solution. If executing under valgrind, simply hijack _vgr10070ZU_libcZdsoZa_calloc directly instead of calloc.
It works like a charm. Thanks a lot for your help, really :) On Thu, Dec 13, 2012 at 12:44 AM, Alfonso Acosta <alfonso.aco...@gmail.com> wrote: > On Thu, Dec 13, 2012 at 12:03 AM, John Reiser <jrei...@bitwagon.com> wrote: >>> calloc -> _vgr10070ZU_libcZdsoZa_calloc >>> >>> But after "moving" the start of calloc to orig_calloc, we want: >>> >>> orig_calloc -> _vgr10070ZU_libcZdsoZa_calloc >> >> You control orig_calloc, so what is stopping you? > > By reassigning redirections I really meant replacing them by another > one. True, leaving the resolution of _vgr10070ZU_libcZdsoZa_calloc > aside, l could indeed add that redirection myself. However, I think it > doesn't cut it: > > As I understand it, even with that extra redirection, the initial > "calloc -> _vgr10070ZU_libcZdsoZa_calloc" redirection would still be > active, breaking my hijacking mechanism, which would render my code > unusable. Remember that I expect calloc_hijacker to be called instead > of calloc. With the initial redirection still in place, > _vgr10070ZU_libcZdsoZa_calloc would be called instead. > >> The routine calloc_hijacker could check whether the instruction layout >> remains the same as the first time, deduce that valgrind is active, >> and re-arrange the code further. (Remember to sync the Icache; >> on x86 any backwards branch suffices, but on other architectures >> a system call is necessary.) > > > I might be missing something, but I don't see how calloc_hijacker > would be called at all if "calloc -> _vgr10070ZU_libcZdsoZa_calloc" is > still in place. > > After skimming the sources of Valgrind I see that some functions are > replaced and not wrapped (with no possibility to access the original > function) and calloc seems to be one of them. Even if calloc was > wrapped, it is up to the wrapped to call the original function. ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users