perf probe: can't find unnamed union members

From: Arnaldo Carvalho de Melo
Date: Thu Mar 05 2015 - 10:33:02 EST



Hi Masami,

[root@zoo ~]# perf probe -x ~/bin/perf -L lock__delete <lock__delete@/home/git/linux/tools/perf/util/annotate.c:0>
0 static void lock__delete(struct ins_operands *ops)
1 {
2 struct ins *ins = ops->locked.ins;

4 if (ins && ins->ops->free)
5 ins->ops->free(ops->locked.ops);
else
7 ins__delete(ops->locked.ops);

9 zfree(&ops->locked.ops);
10 zfree(&ops->target.raw);
11 zfree(&ops->target.name);
12 }

And:

[root@zoo ~]# pahole ~/bin/perf -C ins_operands
struct ins_operands {
char * raw; /* 0 8 */
struct {
char * raw; /* 8 8 */
char * name; /* 16 8 */
u64 addr; /* 24 8 */
u64 offset; /* 32 8 */
} target; /* 8 32 */
union {
struct {
char * raw; /* 40 8 */
char * name; /* 48 8 */
u64 addr; /* 56 8 */
} source; /* 24 */
struct {
struct ins * ins; /* 40 8 */
struct ins_operands * ops; /* 48 8 */
} locked; /* 16 */
}; /* 40 24 */
/* --- cacheline 1 boundary (64 bytes) --- */

/* size: 64, cachelines: 1, members: 3 */
};
[root@zoo ~]#

But:

[root@zoo ~]# perf probe -x ~/bin/perf lock__delete ops 'locked_ops=ops->locked.ops'
ops(type:ins_operands) has no member locked.
Error: Failed to add events.
[root@zoo ~]#

Yes, it has :-)

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/