[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <54F9976A.3010808@hitachi.com>
Date: Fri, 06 Mar 2015 21:02:50 +0900
From: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
To: Arnaldo Carvalho de Melo <acme@...nel.org>
CC: David Ahern <dsahern@...il.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: perf probe: can't find unnamed union members
Hi,
(2015/03/06 0:32), Arnaldo Carvalho de Melo wrote:
>
> Hi Masami,
>
> [root@zoo ~]# perf probe -x ~/bin/perf -L lock__delete <lock__delete@...me/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 :-)
Oh, I see. That is not yet supported.
Here, I got the structure in debuginfo.
[ fac4e] structure_type
name (strp) "ins_operands"
byte_size (data1) 64
decl_file (data1) 5
decl_line (data1) 16
sibling (ref4) [ fac79]
[ fac5a] member
name (string) "raw"
decl_file (data1) 5
decl_line (data1) 17
type (ref4) [ f8bdb]
data_member_location (data1) 0
[ fac66] member
name (strp) "target"
decl_file (data1) 5
decl_line (data1) 23
type (ref4) [ fab9c]
data_member_location (data1) 8
[ fac72] member <= here is the unnamed one
type (ref4) [ fac7f]
data_member_location (data1) 28
[ fac79] pointer_type
byte_size (data1) 8
type (ref4) [ fac4e]
[ fac7f] union_type
byte_size (data1) 24
decl_file (data1) 5
decl_line (data1) 24
sibling (ref4) [ fac9e]
[ fac87] member
name (strp) "source"
decl_file (data1) 5
decl_line (data1) 29
type (ref4) [ fabd5]
[ fac92] member <= here is actual member
name (strp) "locked"
decl_file (data1) 5
decl_line (data1) 33
type (ref4) [ fac02]
Let me see how I can solve this...
Thank you for reporting!
>
> - Arnaldo
>
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@...achi.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists