This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug translator/10408] IA-32 - stap unable to decode parameter location using DWARF


------- 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]