Print callgraph of a function

Sometimes you may want to see what functions are called in a function in multiple level. Below command in my extension may help. crash> edis -c irq_exit {irq_exit} -+- {rcu_irq_exit} -+- {warn_slowpath_null} |- {idle_cpu} |- {tick_nohz_stop_sched_tick} -+- {ktime_get} | |- {update_ts_time_stats} | |- {sched_clock_idle_sleep_event} | |- {rcu_needs_cpu} | |- {select_nohz_load_balancer} | |- {rcu_enter_nohz} | |-… Continue reading Print callgraph of a function

How to setup debugging environment for RHEL packages

It's hard to set the debugging environment in a different machine as it has different packages installed in each systems. It's really hard when we are talking about distributed packages as it requires lots of other libraries with separate debug info packages. So, I made a small application that you can use to set the… Continue reading How to setup debugging environment for RHEL packages

Tracing a function with jprobes

One problem with kprobes is that you can't check validity of the arguments passed to the function you are monitoring. For that matter, jprobes comes in. It's basically make a wrapper for the existing function and will be called instead without make any changes to the existing function. jprobes is an extention to the kprobes… Continue reading Tracing a function with jprobes