This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: [PATCH] Set correct source location for deallocator calls
- From: Dehao Chen <dehao at google dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Andrew Pinski <pinskia at gmail dot com>, Mark Wielaard <mark at klomp dot org>, Bryce McKinlay <bmckinlay at gmail dot com>, Andrew Haley <aph at redhat dot com>, Richard Henderson <rth at redhat dot com>, Jason Merrill <jason at redhat dot com>, Richard Guenther <richard dot guenther at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, David Li <davidxl at google dot com>, java at gcc dot gnu dot org
- Date: Sun, 16 Sep 2012 00:09:04 +0800
- Subject: Re: [PATCH] Set correct source location for deallocator calls
- References: <CAO2gOZXfnETUe4wqjT7p6fd61hXreu9PDfqKxNz+HxpE0E7K0g@mail.gmail.com> <50243480.7090803@redhat.com> <CAO2gOZURCuWUk2MVwCwmwrijNzWxJt3q=HUpU7=Qv6zB9e-uqA@mail.gmail.com> <50254A50.8070208@redhat.com> <CAO2gOZXhHuFGJ0z=jvkYKZ84EoDaPSYVjxS7QzGore56SyhWyQ@mail.gmail.com> <50255B35.9020705@redhat.com> <CAO2gOZWe+qMrVyvOoo7Ek-di0NKZxxU4Z=pqrDCqqCCAfctZOw@mail.gmail.com> <50258712.4070002@redhat.com> <CAO2gOZUQQjmKtooyXXAfgFoNVbeNwtT+P=E7pQ6jC=e07Nsr2g@mail.gmail.com> <CAO2gOZX-Gn+b6LEzps5zxhgmwQWcJ-zFqG=a7hesW6fbVyxZYQ@mail.gmail.com> <502E6774.8050609@redhat.com> <CAO2gOZWhueDAShNLbNcJpkHA6QqXk1LNZhEMFvfT77aTZTCH9w@mail.gmail.com> <503F7876.7030606@redhat.com> <503F84A9.8010504@redhat.com> <503F95D8.5010506@redhat.com> <CAO2gOZUxD9-Y3O6iS22HNEHUWaH=0Cm97FZ+KHmhkLmCzahVAA@mail.gmail.com> <CALUNu-qXtr3pSTa8j60nD4Y4QK6VNAEOaPh34RRd4qt671gzkA@mail.gmail.com> <CALUNu-p2-rvGCLYn9s1gy-rGOq+cOwZCw9S1Twbjcba0dVKTfQ@mail.gmail.com> <50463661.1020303@redhat.com> <CALUNu-oP9dqG63EHyN18gYj4P3gwrrJcp4Zgrz-pABNxabmsCg@mail.gmail.com> <1346839095.9368.1.camel@springer.wildebeest.org> <CAO2gOZVhW2+VfKU8+n2qrcKr9fgM1G4bRyUTUB_0DATH9eEW6w@mail.gmail.com> <CAMe9rOqpzNa-u7b-nUfeBkpSed5Fkh16tzw4_uyptpMpKfhUfA@mail.gmail.com> <CA+=Sn1=OrqyrGCA-nY1bTpHLc68=q0QGU1t0dsZpA3meLhy0tg@mail.gmail.com> <CAMe9rOpNE0j2eGJDe9PwQg_6JevLVfKCoviVGAwUVCieUMVhFQ@mail.gmail.com>
I tried the up-to-date addr2line on any "gcc -g" generated code, it
does not work either. This is because in the new dwarf, the
DW_AT_high_pc now actually means the size. e.g.
<1><9b>: Abbrev Number: 2 (DW_TAG_subprogram)
<9c> DW_AT_external : 1
<9c> DW_AT_name : bar
<a0> DW_AT_decl_file : 1
<a1> DW_AT_decl_line : 8
<a2> DW_AT_linkage_name: (indirect string, offset: 0x7b): _Z3barv
<a6> DW_AT_type : <0x8d>
<aa> DW_AT_low_pc : 0x400583
<b2> DW_AT_high_pc : 0x37 0x0
<ba> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
<bc> DW_AT_GNU_all_call_sites: 1
<bc> DW_AT_sibling : <0xff>
However, addr2line still thinks DW_AT_high_pc means "high_pc". I think
we should wait for binutil to catch up with gcc.
Thanks,
Dehao
On Sat, Sep 15, 2012 at 8:55 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Sep 14, 2012 at 9:27 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>> On Fri, Sep 14, 2012 at 9:25 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Sat, Sep 8, 2012 at 2:42 PM, Dehao Chen <dehao@google.com> wrote:
>>>> Hi,
>>>>
>>>> I've added a libjava unittest which verifies that this patch will not
>>>> break Java debug info. I've also incorporated Richard's review in the
>>>> previous mail. Attached is the new patch, which passed bootstrap and
>>>> all gcc/libjava testsuites on x86.
>>>>
>>>> Is it ok for trunk?
>>>>
>>>> Thanks,
>>>> Dehao
>>>>
>>>> gcc/ChangeLog:
>>>> 2012-09-08 Dehao Chen <dehao@google.com>
>>>>
>>>> * tree-eh.c (goto_queue_node): New field.
>>>> (record_in_goto_queue): New parameter.
>>>> (record_in_goto_queue_label): New parameter.
>>>> (lower_try_finally_dup_block): New parameter.
>>>> (maybe_record_in_goto_queue): Update source location.
>>>> (lower_try_finally_copy): Likewise.
>>>> (honor_protect_cleanup_actions): Likewise.
>>>> * gimplify.c (gimplify_expr): Reset the location to unknown.
>>>>
>>>> gcc/testsuite/ChangeLog:
>>>> 2012-09-08 Dehao Chen <dehao@google.com>
>>>>
>>>> * g++.dg/debug/dwarf2/deallocator.C: New test.
>>>>
>>>> libjava/ChangeLog:
>>>> 2012-09-08 Dehao Chen <dehao@google.com>
>>>>
>>>> * testsuite/libjava.lang/sourcelocation.java: New cases.
>>>> * testsuite/libjava.lang/sourcelocation.out: New cases.
>>>
>>> On Linux/x86, I got
>>>
>>> FAIL: sourcelocation -O3 -findirect-dispatch output - source compiled test
>>> FAIL: sourcelocation -O3 output - source compiled test
>>> FAIL: sourcelocation -findirect-dispatch output - source compiled test
>>> FAIL: sourcelocation output - source compiled test
>>>
>>> spawn [open ...]^M
>>> -1
>>> -1
>>> -1
>>> PASS: sourcelocation -findirect-dispatch execution - source compiled test
>>> FAIL: sourcelocation -findirect-dispatch output - source compiled test
>>
>> I bet you have an older addr2line installed.
>>
>
> I am using addr2line from binutils 20120914.
>
>
> --
> H.J.