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: 29 Jul 2009 19:59:29 -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-29 19:59 -------
Dwarfdump said:
---
<1><48125> DW_TAG_subprogram
DW_AT_external yes(1)
DW_AT_name sys_epoll_wait
DW_AT_decl_file 1 fs/eventpoll.c
DW_AT_decl_line 1249
DW_AT_prototyped yes(1)
DW_AT_type <172>
DW_AT_low_pc 0xc04cc908
DW_AT_high_pc 0xc04ccc8b
DW_AT_frame_base <loclist with 3 entries follows>
[ 0]<lowpc=0xc04cc908><highpc=0xc04cc909>DW_OP_breg4+4
[ 1]<lowpc=0xc04cc909><highpc=0xc04cc90b>DW_OP_breg4+8
[ 2]<lowpc=0xc04cc90b><highpc=0xc04ccc8b>DW_OP_breg5+8
DW_AT_sibling <49424>
<2><48155> DW_TAG_formal_parameter
DW_AT_name epfd
DW_AT_decl_file 1 fs/eventpoll.c
DW_AT_decl_line 1249
DW_AT_type <96>
DW_AT_location <loclist with 3 entries follows>
[ 0]<lowpc=0xc04cc908><highpc=0xc04cc93f>DW_OP_breg1+0
[ 1]<lowpc=0xc04cc93f><highpc=0xc04cc96c>DW_OP_reg0
[ 2]<lowpc=0xc04cc96c><highpc=0xc04ccc8b>DW_OP_breg1+0
---
And objdump said:
---
c04cc908 <sys_epoll_wait>:
c04cc908: 55 push %ebp
c04cc909: 89 e5 mov %esp,%ebp
c04cc90b: 57 push %edi
c04cc90c: 56 push %esi
c04cc90d: 53 push %ebx
c04cc90e: 51 push %ecx
c04cc90f: 83 ec 60 sub $0x60,%esp
c04cc912: 8d 4d 08 lea 0x8(%ebp),%ecx <---here!
c04cc915: e8 4a d5 f3 ff call c0409e64 <mcount>
c04cc91a: 8b 51 04 mov 0x4(%ecx),%edx
c04cc91d: 8b 01 mov (%ecx),%eax
c04cc91f: 8b 79 0c mov 0xc(%ecx),%edi
c04cc922: 89 55 b0 mov %edx,-0x50(%ebp)
c04cc925: 8b 71 08 mov 0x8(%ecx),%esi
c04cc928: 89 f2 mov %esi,%edx
c04cc92a: 4a dec %edx
---
You can see that the top of stack address is assigned to ecx at c04cc912.
However, dwarf has no such information. It seems gcc's bug.(maybe, the
combination of -g and mcount will cause this bug)
--
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.