output_autoconf(s, o, "autoconf-x86-uniregs.c", "STAPCONF_X86_UNIREGS", NULL);
output_autoconf(s, o, "autoconf-nameidata.c", "STAPCONF_NAMEIDATA_CLEANUP", NULL);
output_autoconf(s, o, "autoconf-unregister-kprobes.c", "STAPCONF_UNREGISTER_KPROBES", NULL);
+ output_autoconf(s, o, "autoconf-kprobe-symbol-name.c", "STAPCONF_KPROBE_SYMBOL_NAME", NULL);
output_autoconf(s, o, "autoconf-real-parent.c", "STAPCONF_REAL_PARENT", NULL);
output_autoconf(s, o, "autoconf-uaccess.c", "STAPCONF_LINUX_UACCESS_H", NULL);
output_autoconf(s, o, "autoconf-oneachcpu-retry.c", "STAPCONF_ONEACHCPU_RETRY", NULL);
s.op->newline() << "probe_point = sdp->probe->pp;"; // for error messages
s.op->newline() << "if (sdp->return_p) {";
s.op->newline(1) << "kp->u.krp.kp.addr = addr;";
+ s.op->newline() << "#ifdef STAPCONF_KPROBE_SYMBOL_NAME";
s.op->newline() << "kp->u.krp.kp.symbol_name = (char *) symbol_name;";
+ s.op->newline() << "#endif";
s.op->newline() << "if (sdp->maxactive_p) {";
s.op->newline(1) << "kp->u.krp.maxactive = sdp->maxactive_val;";
s.op->newline(-1) << "} else {";
// to ensure safeness of bspcache, always use aggr_kprobe on ia64
s.op->newline() << "#ifdef __ia64__";
s.op->newline() << "kp->dummy.addr = kp->u.krp.kp.addr;";
+ s.op->newline() << "#ifdef STAPCONF_KPROBE_SYMBOL_NAME";
s.op->newline() << "kp->dummy.symbol_name = kp->u.krp.kp.symbol_name;";
+ s.op->newline() << "#endif";
s.op->newline() << "kp->dummy.pre_handler = NULL;";
s.op->newline() << "rc = register_kprobe (& kp->dummy);";
s.op->newline() << "if (rc == 0) {";
s.op->newline(-1) << "} else {";
// to ensure safeness of bspcache, always use aggr_kprobe on ia64
s.op->newline(1) << "kp->u.kp.addr = addr;";
+ s.op->newline() << "#ifdef STAPCONF_KPROBE_SYMBOL_NAME";
s.op->newline() << "kp->u.kp.symbol_name = (char *) symbol_name;";
+ s.op->newline() << "#endif";
s.op->newline() << "kp->u.kp.pre_handler = &enter_kprobe2_probe;";
s.op->newline() << "#ifdef __ia64__";
s.op->newline() << "kp->dummy.pre_handler = NULL;";
s.op->newline() << "kp->dummy.addr = kp->u.kp.addr;";
+ s.op->newline() << "#ifdef STAPCONF_KPROBE_SYMBOL_NAME";
s.op->newline() << "kp->dummy.symbol_name = kp->u.kp.symbol_name;";
+ s.op->newline() << "#endif";
s.op->newline() << "rc = register_kprobe (& kp->dummy);";
s.op->newline() << "if (rc == 0) {";
s.op->newline(1) << "rc = register_kprobe (& kp->u.kp);";