Fix the inline replace of kprobe args
authorBrenden Blanco <bblanco@plumgrid.com>
Wed, 9 Sep 2015 05:16:10 +0000 (22:16 -0700)
committerBrenden Blanco <bblanco@plumgrid.com>
Wed, 9 Sep 2015 17:54:59 +0000 (10:54 -0700)
commit3c4a29ced84bea80b957d21256d529afb02eb634
tree0c140a01a48993b2f2917715da97656f83e4a5eb
parentb13426caf3bbb80859eaab0a63fdad7c2a42e89c
Fix the inline replace of kprobe args

The way in which args 1+ were being replaced in the C file was
fragile. Instead, assign the registers from ptregs into the function
arguments as the first statement(s) in the body of the function.
e.g.:
int sys_clone(struct ptregs *ctx, struct request *req) {
  // do something with req
}
becomes:
int sys_clone(struct ptregs *ctx, struct request *req) {
  req = ctx->di;
  // do something with req

Fixes: #192
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
src/cc/frontends/clang/b_frontend_action.cc
tests/cc/test_clang.py