* [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode @ 2014-09-29 0:56 Yao Qi 2014-09-29 0:56 ` [PATCH 2/2] " Yao Qi ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Yao Qi @ 2014-09-29 0:56 UTC (permalink / raw) To: gdb-patches implptr-optimized-out.exp uses main in assembly to generate debug information, so it makes troubles in thumb mode because of the lsb of main address. Patch 1 is to switch to dwarf assembler to generate assembly, so that it is flexible to adjust dwarf output. Patch 2 is to compute the correct address of main. We do the same in dwz.exp too. *** BLURB HERE *** Yao Qi (2): Use Dwarf::assemble in implptr-optimized-out.exp Fix implptr-optimized-out.exp fail in thumb mode gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S | 166 --------------------- gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp | 96 +++++++++++- 2 files changed, 93 insertions(+), 169 deletions(-) delete mode 100644 gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S -- 1.9.3 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] Fix implptr-optimized-out.exp fail in thumb mode 2014-09-29 0:56 [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi @ 2014-09-29 0:56 ` Yao Qi 2014-10-07 15:35 ` Pedro Alves 2014-10-08 15:32 ` Doug Evans 2014-09-29 0:56 ` [PATCH 1/2] Use Dwarf::assemble in implptr-optimized-out.exp Yao Qi 2014-10-07 14:06 ` [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi 2 siblings, 2 replies; 8+ messages in thread From: Yao Qi @ 2014-09-29 0:56 UTC (permalink / raw) To: gdb-patches Hi, I see the fail in gdb.dwarf2/implptr-optimized-out.exp in thumb mode (gdb) p p->f^M No symbol "p" in current context.^M (gdb) FAIL: gdb.dwarf2/implptr-optimized-out.exp: p p->f In thumb mode, the lsb of references to 'main' in the assembly (produced by dwarf assember) is set, so the generated debug information is incorrect. in this patch, we add a label main_label inside function main. Linker doesn't set its lsb in thumb mode, and we can get function main's address by 'main_label - $main_label_offset'. gdb/testsuite: 2014-09-29 Yao Qi <yao@codesourcery.com> * gdb.dwarf2/implptr-optimized-out.exp: Compile main.c to object. Calculate the offset of main_label to main. Compile the generated asm file and link the executable. (Dwarf::assemble): Get address of main by main_label - $main_label_offset. --- gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp | 39 ++++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp index 649f52d..534bed0 100644 --- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp +++ b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp @@ -22,9 +22,35 @@ if {![dwarf2_support]} { standard_testfile main.c .S set executable ${testfile} +if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \ + object {}] != ""} { + return -1 +} +# Start GDB and load object file, compute the offset from main to +# main_label which are needed in the Dwarf Assembler below. +clean_restart ${binfile}1.o + +set main_label_offset "" +set test "p main_label - main" +gdb_test_multiple $test $test { + -re ".* = ($decimal)\r\n$gdb_prompt $" { + set main_label_offset $expect_out(1,string) + } +} + +if { $main_label_offset == "" } { + # Bail out here, because we can't do the following tests if + # $main_label_offset is unknown. + return -1 +} + +gdb_exit + # Create the DWARF. set asm_file [standard_output_file $srcfile2] Dwarf::assemble $asm_file { + global main_label_offset + cu { version 3 } { compile_unit { {producer "GNU C 4.4.3"} @@ -52,8 +78,8 @@ Dwarf::assemble $asm_file { subprogram { {name main} - {low_pc main addr} - {high_pc main+0x100 addr} + {low_pc "main_label - $main_label_offset" addr} + {high_pc "main_label - $main_label_offset + 0x100" addr} {type :$int_label} {external 1 flag} } { @@ -80,10 +106,17 @@ Dwarf::assemble $asm_file { } } -if [prepare_for_testing ${testfile}.exp $executable "${asm_file} ${srcfile}" {}] { +if {[gdb_compile $asm_file ${binfile}0.o object {}] != ""} { return -1 } +if {[gdb_compile [list ${binfile}0.o ${binfile}1.o] \ + "${binfile}" executable {}] != ""} { + return -1 +} + +clean_restart ${testfile} + # DW_OP_GNU_implicit_pointer implementation requires a valid frame. if ![runto_main] { return -1 -- 1.9.3 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Fix implptr-optimized-out.exp fail in thumb mode 2014-09-29 0:56 ` [PATCH 2/2] " Yao Qi @ 2014-10-07 15:35 ` Pedro Alves 2014-10-08 11:43 ` Yao Qi 2014-10-08 15:32 ` Doug Evans 1 sibling, 1 reply; 8+ messages in thread From: Pedro Alves @ 2014-10-07 15:35 UTC (permalink / raw) To: Yao Qi, gdb-patches On 09/29/2014 01:52 AM, Yao Qi wrote: > Hi, > I see the fail in gdb.dwarf2/implptr-optimized-out.exp in thumb mode > > (gdb) p p->f^M > No symbol "p" in current context.^M > (gdb) FAIL: gdb.dwarf2/implptr-optimized-out.exp: p p->f > > In thumb mode, the lsb of references to 'main' in the assembly > (produced by dwarf assember) is set, so the generated debug > information is incorrect. > > in this patch, we add a label main_label inside function main. Hmm, I think I'm missing something. I'm not where this "main_label" label is coming from? Thanks, Pedro Alves ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Fix implptr-optimized-out.exp fail in thumb mode 2014-10-07 15:35 ` Pedro Alves @ 2014-10-08 11:43 ` Yao Qi 0 siblings, 0 replies; 8+ messages in thread From: Yao Qi @ 2014-10-08 11:43 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches Pedro Alves <palves@redhat.com> writes: > Hmm, I think I'm missing something. I'm not where this "main_label" > label is coming from? Ur... main_label is added by this patch https://sourceware.org/ml/gdb-patches/2014-09/msg00497.html which is pending for review too. I forget to mention that this patch depends on the gdb.dwarf2/dwz.exp patch, sorry. -- Yao (齐尧) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Fix implptr-optimized-out.exp fail in thumb mode 2014-09-29 0:56 ` [PATCH 2/2] " Yao Qi 2014-10-07 15:35 ` Pedro Alves @ 2014-10-08 15:32 ` Doug Evans 2014-10-09 12:43 ` Yao Qi 1 sibling, 1 reply; 8+ messages in thread From: Doug Evans @ 2014-10-08 15:32 UTC (permalink / raw) To: Yao Qi; +Cc: gdb-patches On Sun, Sep 28, 2014 at 8:52 PM, Yao Qi <yao@codesourcery.com> wrote: > Hi, > I see the fail in gdb.dwarf2/implptr-optimized-out.exp in thumb mode > > (gdb) p p->f^M > No symbol "p" in current context.^M > (gdb) FAIL: gdb.dwarf2/implptr-optimized-out.exp: p p->f > > In thumb mode, the lsb of references to 'main' in the assembly > (produced by dwarf assember) is set, so the generated debug > information is incorrect. > > in this patch, we add a label main_label inside function main. Linker > doesn't set its lsb in thumb mode, and we can get function main's > address by 'main_label - $main_label_offset'. > > gdb/testsuite: > > 2014-09-29 Yao Qi <yao@codesourcery.com> > > * gdb.dwarf2/implptr-optimized-out.exp: Compile main.c to object. > Calculate the offset of main_label to main. Compile the generated > asm file and link the executable. > (Dwarf::assemble): Get address of main by > main_label - $main_label_offset. > --- > gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp | 39 ++++++++++++++++++++-- > 1 file changed, 36 insertions(+), 3 deletions(-) > > diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp > index 649f52d..534bed0 100644 > --- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp > +++ b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp > @@ -22,9 +22,35 @@ if {![dwarf2_support]} { > standard_testfile main.c .S > set executable ${testfile} > > +if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \ > + object {}] != ""} { > + return -1 > +} > +# Start GDB and load object file, compute the offset from main to > +# main_label which are needed in the Dwarf Assembler below. > +clean_restart ${binfile}1.o > + > +set main_label_offset "" > +set test "p main_label - main" > +gdb_test_multiple $test $test { > + -re ".* = ($decimal)\r\n$gdb_prompt $" { > + set main_label_offset $expect_out(1,string) > + } > +} > + > +if { $main_label_offset == "" } { > + # Bail out here, because we can't do the following tests if > + # $main_label_offset is unknown. > + return -1 > +} > + > +gdb_exit > + > # Create the DWARF. > set asm_file [standard_output_file $srcfile2] > Dwarf::assemble $asm_file { > + global main_label_offset > + > cu { version 3 } { > compile_unit { > {producer "GNU C 4.4.3"} > @@ -52,8 +78,8 @@ Dwarf::assemble $asm_file { > > subprogram { > {name main} > - {low_pc main addr} > - {high_pc main+0x100 addr} > + {low_pc "main_label - $main_label_offset" addr} > + {high_pc "main_label - $main_label_offset + 0x100" addr} > {type :$int_label} > {external 1 flag} > } { > @@ -80,10 +106,17 @@ Dwarf::assemble $asm_file { > } > } > > -if [prepare_for_testing ${testfile}.exp $executable "${asm_file} ${srcfile}" {}] { > +if {[gdb_compile $asm_file ${binfile}0.o object {}] != ""} { > return -1 > } > > +if {[gdb_compile [list ${binfile}0.o ${binfile}1.o] \ > + "${binfile}" executable {}] != ""} { > + return -1 > +} > + > +clean_restart ${testfile} > + > # DW_OP_GNU_implicit_pointer implementation requires a valid frame. > if ![runto_main] { > return -1 Hi. One question that comes to mind is: If this solution is going to proliferate it would be good to convince ourselves there's no better solution. I'm ok with this as a one-off here and there, but I'd like to understand how many more of these will there be. Plus I can imagine of course the number growing over time. Can we, for example, enhance the dwarf assembler and provide a hook for the thumb target to use to fix this there? But *if* we do decide there's no better solution, there's a lot of boilerplate here. Can we tuck it away in a utility? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Fix implptr-optimized-out.exp fail in thumb mode 2014-10-08 15:32 ` Doug Evans @ 2014-10-09 12:43 ` Yao Qi 0 siblings, 0 replies; 8+ messages in thread From: Yao Qi @ 2014-10-09 12:43 UTC (permalink / raw) To: Doug Evans; +Cc: gdb-patches Doug Evans <dje@google.com> writes: > One question that comes to mind is: If this solution is going to > proliferate it would be good to convince ourselves there's no better > solution. I'm ok with this as a one-off here and there, but I'd like > to understand how many more of these will there be. Plus I can > imagine of course the number growing over time. There are three, dwz.exp, implptr-optimized-out.exp and dw2-ifort-parameter.exp, but you are right, the number will grow. > Can we, for example, enhance the dwarf assembler and provide a hook > for the thumb target to use to fix this there? ppc64 target has the similar problem too. We need a way suitable for {thumb, ppc64, other} x {gcc, clang}. Hacking dwarf assembler doesn't help much, because we are still unable to get the right function address. > > But *if* we do decide there's no better solution, there's a lot of > boilerplate here. Let me list the solutions I thought about and tried, so that we can evaluate which one is the best. - Tweak dwarf assembler to generate assembly debug info together with __thumb__ and __thumb2__, like #if defined (__thumb__) || defined (__thumb2__) .uleb128 main-1 /* DW_AT_low_pc */ #else .uleb128 main /* DW_AT_low_pc */ #endif this doesn't work because main in "main-1" is resolved to the function address (without lsb set). Unfortunately, "main-1+1" is resolved to the function address *with* lsb set. - The approach I proposed here, which should fix the problem on ppc64 (I didn't verify that on the real hardware). - Fix ld that stop setting function address lsb if they are in debug info. I didn't try. - Make use of local symbols. I find gcc/clang generates local symbol on the entry of the function but looks "-Wa,-L" doesn't keep them. -- Yao (齐尧) ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] Use Dwarf::assemble in implptr-optimized-out.exp 2014-09-29 0:56 [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi 2014-09-29 0:56 ` [PATCH 2/2] " Yao Qi @ 2014-09-29 0:56 ` Yao Qi 2014-10-07 14:06 ` [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi 2 siblings, 0 replies; 8+ messages in thread From: Yao Qi @ 2014-09-29 0:56 UTC (permalink / raw) To: gdb-patches This patch is to use dwarf::assemble to generate debug information, and remove implptr-optimized-out.S as a result. The dwarf assembler output is identical to original implptr-optimized-out.S. gdb/testsuite: 2014-09-29 Yao Qi <yao@codesourcery.com> * gdb.dwarf2/implptr-optimized-out.exp: Use Dwarf::assemble to produce debug information. * gdb.dwarf2/implptr-optimized-out.S: Removed. --- gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S | 166 --------------------- gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp | 63 +++++++- 2 files changed, 60 insertions(+), 169 deletions(-) delete mode 100644 gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S deleted file mode 100644 index eeebd54..0000000 --- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.S +++ /dev/null @@ -1,166 +0,0 @@ -/* Copyright 2010-2014 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - - .section .debug_info -d: - .4byte debug_end - 1f /* Length of Compilation Unit Info */ -1: - .2byte 0x3 /* DWARF version number */ - .4byte .Ldebug_abbrev0 /* Offset Into Abbrev. Section */ - .byte 0x4 /* Pointer Size (in bytes) */ - .uleb128 0x1 /* (DIE (0xb) DW_TAG_compile_unit) */ - .ascii "GNU C 4.4.3\0" /* DW_AT_producer */ - .byte 0x1 /* DW_AT_language */ - .ascii "1.c\0" /* DW_AT_name */ - -.Ltype_int: - .uleb128 0x7 /* DW_TAG_base_type */ - .byte 0x4 /* DW_AT_byte_size */ - .byte 0x5 /* DW_AT_encoding */ - .ascii "int\0" /* DW_AT_name */ - -.Ltype_struct: - .uleb128 0x2 /* DW_TAG_structure_type */ - .ascii "s\0" /* DW_AT_name */ - .byte 4 /* DW_AT_byte_size */ - - .uleb128 0x3 /* DW_TAG_member */ - .ascii "f\0" /* DW_AT_name */ - .4byte .Ltype_int - d /* DW_AT_type */ - .byte 0 /* DW_AT_data_member_location */ - - .byte 0x0 /* end of children of DW_TAG_structure_type */ - - .uleb128 6 /* Abbrev: DW_TAG_subprogram */ - .ascii "main\0" /* DW_AT_name */ - .4byte main /* DW_AT_low_pc */ - .4byte main + 0x100 /* DW_AT_high_pc */ - .4byte .Ltype_int - d /* DW_AT_type */ - .byte 1 /* DW_AT_external */ - -.Ltype_structptr: - .uleb128 0x5 /* DW_TAG_pointer_type */ - .byte 0x4 /* DW_AT_byte_size */ - .4byte .Ltype_struct - d /* DW_AT_type */ - -.Lvar_out: - .uleb128 0x4 /* (DW_TAG_variable) */ - .ascii "v\0" /* DW_AT_name */ - .byte 0 /* DW_AT_location: DW_FORM_block1 */ - .4byte .Ltype_struct - d /* DW_AT_type */ - - .uleb128 0x4 /* (DW_TAG_variable) */ - .ascii "p\0" /* DW_AT_name */ - .byte 2f - 1f /* DW_AT_location: DW_FORM_block1 */ -1: - .byte 0xf2 /* DW_OP_GNU_implicit_pointer */ - .4byte .Lvar_out /* referenced DIE, section-relative! */ - .sleb128 0 /* offset */ -2: - .4byte .Ltype_structptr - d /* DW_AT_type */ - - .byte 0x0 /* end of children of main */ - - .byte 0x0 /* end of children of CU */ -debug_end: - - .section .debug_abbrev -.Ldebug_abbrev0: - - .uleb128 0x1 /* (abbrev code) */ - .uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */ - .byte 0x1 /* DW_children_yes */ - .uleb128 0x25 /* (DW_AT_producer) */ - .uleb128 0x8 /* (DW_FORM_string) */ - .uleb128 0x13 /* (DW_AT_language) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .uleb128 0x3 /* (DW_AT_name) */ - .uleb128 0x8 /* (DW_FORM_string) */ - .byte 0x0 - .byte 0x0 - - .uleb128 0x2 /* (abbrev code) */ - .uleb128 0x13 /* (TAG: DW_TAG_structure_type) */ - .byte 0x1 /* DW_children_yes */ - .uleb128 0x3 /* (DW_AT_name) */ - .uleb128 0x8 /* (DW_FORM_string) */ - .uleb128 0xb /* (DW_AT_byte_size) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .byte 0 - .byte 0 - - .uleb128 0x3 /* (abbrev code) */ - .uleb128 0xd /* (TAG: DW_TAG_member) */ - .byte 0 /* DW_children_no */ - .uleb128 0x3 /* (DW_AT_name) */ - .uleb128 0x8 /* (DW_FORM_string) */ - .uleb128 0x49 /* (DW_AT_type) */ - .uleb128 0x13 /* (DW_FORM_ref4) */ - .uleb128 0x38 /* (DW_AT_data_member_location) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .byte 0 - .byte 0 - - .uleb128 0x4 /* (abbrev code) */ - .uleb128 0x34 /* (TAG: DW_TAG_variable) */ - .byte 0x0 /* DW_children_yes */ - .uleb128 0x3 /* (DW_AT_name) */ - .uleb128 0x8 /* (DW_FORM_string) */ - .uleb128 0x02 /* (DW_AT_location) */ - .uleb128 0xa /* (DW_FORM_block1) */ - .uleb128 0x49 /* (DW_AT_type) */ - .uleb128 0x13 /* (DW_FORM_ref4) */ - .byte 0x0 - .byte 0x0 - - .uleb128 0x5 /* (abbrev code) */ - .uleb128 0xf /* (TAG: DW_TAG_pointer_type) */ - .byte 0x0 /* DW_children_no */ - .uleb128 0xb /* (DW_AT_byte_size) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .uleb128 0x49 /* (DW_AT_type) */ - .uleb128 0x13 /* (DW_FORM_ref4) */ - .byte 0x0 - .byte 0x0 - - .uleb128 6 /* Abbrev code */ - .uleb128 0x2e /* DW_TAG_subprogram */ - .byte 1 /* has_children */ - .uleb128 0x3 /* DW_AT_name */ - .uleb128 0x8 /* DW_FORM_string */ - .uleb128 0x11 /* DW_AT_low_pc */ - .uleb128 0x1 /* DW_FORM_addr */ - .uleb128 0x12 /* DW_AT_high_pc */ - .uleb128 0x1 /* DW_FORM_addr */ - .uleb128 0x49 /* DW_AT_type */ - .uleb128 0x13 /* DW_FORM_ref4 */ - .uleb128 0x3f /* DW_AT_external */ - .uleb128 0xc /* DW_FORM_flag */ - .byte 0x0 /* Terminator */ - .byte 0x0 /* Terminator */ - - .uleb128 0x7 /* (abbrev code) */ - .uleb128 0x24 /* (TAG: DW_TAG_base_type) */ - .byte 0 /* DW_children_no */ - .uleb128 0xb /* (DW_AT_byte_size) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .uleb128 0x3e /* (DW_AT_encoding) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .uleb128 0x3 /* (DW_AT_name) */ - .uleb128 0x8 /* (DW_FORM_string) */ - .byte 0 - .byte 0 - - .byte 0x0 diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp index 26ca407..649f52d 100644 --- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp +++ b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp @@ -19,11 +19,68 @@ if {![dwarf2_support]} { return 0 } -standard_testfile .S -set mainfile main.c +standard_testfile main.c .S set executable ${testfile} -if [prepare_for_testing ${testfile}.exp $executable "${srcfile} ${mainfile}" {}] { +# Create the DWARF. +set asm_file [standard_output_file $srcfile2] +Dwarf::assemble $asm_file { + cu { version 3 } { + compile_unit { + {producer "GNU C 4.4.3"} + {language @DW_LANG_C89} + {name 1.c} + } { + declare_labels int_label struct_label pointer_label variable_label + + int_label: base_type { + {byte_size 4 sdata} + {encoding @DW_ATE_signed} + {name int} + } + + struct_label: structure_type { + {name s} + {byte_size 4 sdata} + } { + member { + {name f} + {type :$int_label} + {data_member_location 0 data1} + } + } + + subprogram { + {name main} + {low_pc main addr} + {high_pc main+0x100 addr} + {type :$int_label} + {external 1 flag} + } { + pointer_label: pointer_type { + {byte_size 4 sdata} + {type :$struct_label} + } + + variable_label: DW_TAG_variable { + {name v} + {location {} DW_FORM_block1} + {type :$struct_label} + } + + DW_TAG_variable { + {name p} + {location { + GNU_implicit_pointer $variable_label 0 + } SPECIAL_expr} + {type :$pointer_label} + } + } + } + } +} + +if [prepare_for_testing ${testfile}.exp $executable "${asm_file} ${srcfile}" {}] { return -1 } -- 1.9.3 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode 2014-09-29 0:56 [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi 2014-09-29 0:56 ` [PATCH 2/2] " Yao Qi 2014-09-29 0:56 ` [PATCH 1/2] Use Dwarf::assemble in implptr-optimized-out.exp Yao Qi @ 2014-10-07 14:06 ` Yao Qi 2 siblings, 0 replies; 8+ messages in thread From: Yao Qi @ 2014-10-07 14:06 UTC (permalink / raw) To: gdb-patches Yao Qi <yao@codesourcery.com> writes: > implptr-optimized-out.exp uses main in assembly to generate debug > information, so it makes troubles in thumb mode because of the lsb of > main address. Patch 1 is to switch to dwarf assembler to generate > assembly, so that it is flexible to adjust dwarf output. Patch 2 > is to compute the correct address of main. We do the same in dwz.exp > too. Ping. -- Yao (齐尧) ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-10-09 12:43 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-09-29 0:56 [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi 2014-09-29 0:56 ` [PATCH 2/2] " Yao Qi 2014-10-07 15:35 ` Pedro Alves 2014-10-08 11:43 ` Yao Qi 2014-10-08 15:32 ` Doug Evans 2014-10-09 12:43 ` Yao Qi 2014-09-29 0:56 ` [PATCH 1/2] Use Dwarf::assemble in implptr-optimized-out.exp Yao Qi 2014-10-07 14:06 ` [PATCH 0/2] Fix implptr-optimized-out.exp fail in thumb mode Yao Qi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).