1 2#include <stdio.h> 3#include "valgrind.h" 4 5/* The simplest possible wrapping test: just call a wrapped function 6 and check we run the wrapper instead. */ 7 8/* The "original" function */ 9__attribute__((noinline)) 10void actual ( void ) 11{ 12 printf("in actual\n"); 13} 14 15/* The wrapper. Since this executable won't have a soname, we have to 16 use "NONE", since V treats any executable/.so which lacks a soname 17 as if its soname was "NONE". */ 18void I_WRAP_SONAME_FNNAME_ZU(NONE,actual) ( void ) 19{ 20 OrigFn fn; 21 VALGRIND_GET_ORIG_FN(fn); 22 printf("wrapper-pre\n"); 23 CALL_FN_v_v(fn); 24 printf("wrapper-post\n"); 25} 26 27/* --------------- */ 28 29int main ( void ) 30{ 31 printf("starting\n"); 32 actual(); 33 return 0; 34} 35