diff options
Diffstat (limited to 'rtld-base.ini')
-rw-r--r-- | rtld-base.ini | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/rtld-base.ini b/rtld-base.ini index b15f4cd..badb40d 100644 --- a/rtld-base.ini +++ b/rtld-base.ini @@ -15,25 +15,37 @@ generator = printf-generator ; [printf-generator] headers = printf-generator-headers +entry-trace = "rtld_pg_print_entry(@FUNC_NAME@, (void*) &@FUNC_LABEL@);" arg-trace = "rtld_pg_print_arg(@ARG_NUM@, @ARG_TYPE@, @ARG_SIZE@, (void*) &@ARG_LABEL@);" +exit-trace = "rtld_pg_print_exit(@FUNC_NAME@, (void*) &@FUNC_LABEL@);" ret-trace = "rtld_pg_print_ret(@RET_TYPE@, @RET_SIZE@, (void*) &@RET_LABEL@);" code = <<<CODE +static inline void rtld_pg_print_entry(const char* func_name, + void* func_addr) +{ + printf (" >> %s (0x%08x)\n", func_name, func_addr); +} static inline void rtld_pg_print_arg(int arg_num, const char* arg_type, int arg_size, void* arg) { - const char* p = arg; + const unsigned char* p = arg; int i; printf (" %2d] %s(%d) = ", arg_num, arg_type, arg_size); for (i = 0; i < arg_size; ++i, ++p) printf ("%02x", (unsigned int) *p); printf ("\n"); } +static inline void rtld_pg_print_exit(const char* func_name, + void* func_addr) +{ + printf (" << %s (0x%08x)\n", func_name, func_addr); +} static inline void rtld_pg_print_ret(const char* ret_type, int ret_size, void* ret) { - const char* p = ret; + const unsigned char* p = ret; int i; printf (" rt] %s(%d) = ", ret_type, ret_size); for (i = 0; i < ret_size; ++i, ++p) printf ("%02x", (unsigned int) *p); |