summaryrefslogtreecommitdiff
path: root/linkers/rtld-base.ini
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2014-09-09 08:20:41 +1000
committerChris Johns <chrisj@rtems.org>2014-09-09 08:20:41 +1000
commit6fb14092151645e40a207161f1b0a89b5a848a97 (patch)
treed1a076c8eedd29f7d79e76221acfc7ef38c51cbe /linkers/rtld-base.ini
parent2126ea7ff045df25fe6588e8820e02504744549d (diff)
rtems-tld: Add entry and exit trace support.
Diffstat (limited to '')
-rw-r--r--linkers/rtld-base.ini16
1 files changed, 14 insertions, 2 deletions
diff --git a/linkers/rtld-base.ini b/linkers/rtld-base.ini
index b15f4cd..badb40d 100644
--- a/linkers/rtld-base.ini
+++ b/linkers/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);