Hi Masami,
On 03/17/2018 06:23 PM, Masami Hiramatsu wrote:
Since kprobes events support an array argument, perf-probe can also support dumping array now. The syntax are
<array-var>[<range>] or <pointer-var>[<range>]
where the <range> is <start>..<end>. e.g. array[0..5]. This can also be available with string type. In this case, the string array should be "char *array[]" or "char **array_ptr".
Note that this feature is only available on the kernel which supports array type.
User can still do,
# perf probe -x ~/hello main:3 'a=a:x32[3]'
which will successfully be installed in uprobe_events. But for a perf tool, x32[3] is not a valid type. And it seems perf tool don't validate the 'type' field:
static int parse_perf_probe_arg(char *str, struct perf_probe_arg *arg) { .... tmp = strchr(str, ':'); if (tmp) { /* Type setting */ *tmp = '\0'; arg->type = strdup(tmp + 1); if (arg->type == NULL) return -ENOMEM; pr_debug("type:%s ", arg->type); }
Is it okay to allow user to specify array size with type field?
Thanks, Ravi
-- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html