This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/10408] IA-32 - stap unable to decode parameter location using DWARF
- From: "mhiramat at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 31 Jul 2009 23:29:31 -0000
- Subject: [Bug translator/10408] IA-32 - stap unable to decode parameter location using DWARF
- References: <20090717091749.10408.ananth@in.ibm.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From mhiramat at redhat dot com 2009-07-31 23:29 -------
Here are the results of dwarfdump and objdump with/without mcount(ftrace).
I'm compiling linux-2.6.31-rc4-tip by gcc-4.4.0-4.i586.
With ftrace (-pg)
------------
<1><44129> DW_TAG_subprogram
DW_AT_external yes(1)
DW_AT_name sys_epoll_wait
DW_AT_decl_file 1
/home/mhiramat/ksrc/linux-2.6-tip/fs/eventpoll.c
DW_AT_decl_line 1321
DW_AT_prototyped yes(1)
DW_AT_type <350>
DW_AT_low_pc 0xc10ce507
DW_AT_high_pc 0xc10ce6ef
DW_AT_frame_base <loclist with 3 entries follows>
[ 0]<lowpc=0xc10ce507><highpc=0xc10ce508>DW_OP_breg4+4
[ 1]<lowpc=0xc10ce508><highpc=0xc10ce50a>DW_OP_breg4+8
[ 2]<lowpc=0xc10ce50a><highpc=0xc10ce6ef>DW_OP_breg5+8
DW_AT_sibling <44909>
<2><44159> DW_TAG_formal_parameter
DW_AT_name epfd
DW_AT_decl_file 1
/home/mhiramat/ksrc/linux-2.6-tip/fs/eventpoll.c
DW_AT_decl_line 1321
DW_AT_type <60>
DW_AT_location <loclist with 3 entries follows>
[ 0]<lowpc=0xc10ce507><highpc=0xc10ce53e>DW_OP_breg1+0
[ 1]<lowpc=0xc10ce53e><highpc=0xc10ce568>DW_OP_reg0
[ 2]<lowpc=0xc10ce568><highpc=0xc10ce6ef>DW_OP_breg1+0
------------
c10ce507 <sys_epoll_wait>:
c10ce507: 55 push %ebp
c10ce508: 89 e5 mov %esp,%ebp
c10ce50a: 57 push %edi
c10ce50b: 56 push %esi
c10ce50c: 53 push %ebx
c10ce50d: 51 push %ecx
c10ce50e: 83 ec 34 sub $0x34,%esp
c10ce511: 8d 4d 08 lea 0x8(%ebp),%ecx <--!here!
c10ce514: e8 9f 50 f3 ff call c10035b8 <mcount>
c10ce519: bb ea ff ff ff mov $0xffffffea,%ebx
c10ce51e: 8b 51 04 mov 0x4(%ecx),%edx
c10ce521: 8b 01 mov (%ecx),%eax
c10ce523: 8b 71 0c mov 0xc(%ecx),%esi
c10ce526: 89 55 c0 mov %edx,-0x40(%ebp)
c10ce529: 8b 79 08 mov 0x8(%ecx),%edi
c10ce52c: 89 fa mov %edi,%edx
c10ce52e: 4a dec %edx
c10ce52f: 81 fa a9 aa aa 0a cmp $0xaaaaaa9,%edx
c10ce535: 89 7d c4 mov %edi,-0x3c(%ebp)
------------
Without ftrace (no -pg)
----------
<1><44101> DW_TAG_subprogram
DW_AT_external yes(1)
DW_AT_name sys_epoll_wait
DW_AT_decl_file 1
/home/mhiramat/ksrc/linux-2.6-tip/fs/eventpoll.c
DW_AT_decl_line 1321
DW_AT_prototyped yes(1)
DW_AT_type <350>
DW_AT_low_pc 0xc10b34cd
DW_AT_high_pc 0xc10b36b0
DW_AT_frame_base <loclist with 3 entries follows>
[ 0]<lowpc=0xc10b34cd><highpc=0xc10b34ce>DW_OP_breg4+4
[ 1]<lowpc=0xc10b34ce><highpc=0xc10b34d0>DW_OP_breg4+8
[ 2]<lowpc=0xc10b34d0><highpc=0xc10b36b0>DW_OP_breg5+8
DW_AT_sibling <44881>
<2><44131> DW_TAG_formal_parameter
DW_AT_name epfd
DW_AT_decl_file 1
/home/mhiramat/ksrc/linux-2.6-tip/fs/eventpoll.c
DW_AT_decl_line 1321
DW_AT_type <60>
DW_AT_location <loclist with 3 entries follows>
[ 0]<lowpc=0xc10b34cd><highpc=0xc10b34ff>DW_OP_breg1+0
[ 1]<lowpc=0xc10b34ff><highpc=0xc10b3529>DW_OP_reg0
[ 2]<lowpc=0xc10b3529><highpc=0xc10b36b0>DW_OP_breg1+0
----------
c10b34cd <sys_epoll_wait>:
c10b34cd: 55 push %ebp
c10b34ce: 89 e5 mov %esp,%ebp
c10b34d0: 57 push %edi
c10b34d1: 56 push %esi
c10b34d2: 53 push %ebx
c10b34d3: bb ea ff ff ff mov $0xffffffea,%ebx
c10b34d8: 51 push %ecx
c10b34d9: 8d 4d 08 lea 0x8(%ebp),%ecx <--!here!
c10b34dc: 83 ec 34 sub $0x34,%esp
c10b34df: 8b 51 04 mov 0x4(%ecx),%edx
c10b34e2: 8b 01 mov (%ecx),%eax
c10b34e4: 8b 71 0c mov 0xc(%ecx),%esi
c10b34e7: 89 55 c0 mov %edx,-0x40(%ebp)
c10b34ea: 8b 79 08 mov 0x8(%ecx),%edi
c10b34ed: 89 fa mov %edi,%edx
c10b34ef: 4a dec %edx
c10b34f0: 81 fa a9 aa aa 0a cmp $0xaaaaaa9,%edx
c10b34f6: 89 7d c4 mov %edi,-0x3c(%ebp)
----------
OK... Even without mcount, the dwarf information seems broken. You can see the
top of stack is assigned to DW_OP_breg1(=ecx) at c10b34d9. But there is no such
information (or did I miss it?).
What further information do we need?
--
http://sourceware.org/bugzilla/show_bug.cgi?id=10408
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.