[5/6] Fix implptr-optimized-out.exp fail

Message ID 1414195968-3333-6-git-send-email-yao@codesourcery.com
State New, archived
Headers

Commit Message

Yao Qi Oct. 25, 2014, 12:12 a.m. UTC
  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

and the crash on powerpc64

(gdb) continue^M
Continuing.^M
^M
Program received signal SIGSEGV, Segmentation fault.^M
0x7d82100810000828 in ?? ()

The cause of both is that we incorrectly set attribute low_pc, since
main isn't resolved to function start address on these targets.

In this patch, we replace attributes name, low_pc and high_pc with
MACRO_AT_func.  The fail on thumb mode is fixed, and crash on
powerpc64 is fixed too.

gdb/testsuite:

2014-10-24  Yao Qi  <yao@codesourcery.com>

	* gdb.dwarf2/implptr-optimized-out.exp (Dwarf::assemble):
	Replace name, low_pc and high_pc with MACRO_AT_func.
---
 gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Doug Evans Nov. 4, 2014, 10:53 p.m. UTC | #1
Yao Qi writes:
 > 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
 > 
 > and the crash on powerpc64
 > 
 > (gdb) continue^M
 > Continuing.^M
 > ^M
 > Program received signal SIGSEGV, Segmentation fault.^M
 > 0x7d82100810000828 in ?? ()
 > 
 > The cause of both is that we incorrectly set attribute low_pc, since
 > main isn't resolved to function start address on these targets.
 > 
 > In this patch, we replace attributes name, low_pc and high_pc with
 > MACRO_AT_func.  The fail on thumb mode is fixed, and crash on
 > powerpc64 is fixed too.
 > 
 > gdb/testsuite:
 > 
 > 2014-10-24  Yao Qi  <yao@codesourcery.com>
 > 
 > 	* gdb.dwarf2/implptr-optimized-out.exp (Dwarf::assemble):
 > 	Replace name, low_pc and high_pc with MACRO_AT_func.

LGTM
  

Patch

diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
index 226fc5c..dd9c517 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
@@ -25,6 +25,8 @@  set executable ${testfile}
 # Create the DWARF.
 set asm_file [standard_output_file $srcfile2]
 Dwarf::assemble $asm_file {
+    global srcdir subdir srcfile
+
     cu { version 3 addr_size 4 } {
 	compile_unit {
 	    {producer "GNU C 4.4.3"}
@@ -51,9 +53,7 @@  Dwarf::assemble $asm_file {
 	    }
 
 	    subprogram {
-		{name main}
-		{low_pc main addr}
-		{high_pc main+0x100 addr}
+		{MACRO_AT_func { main ${srcdir}/${subdir}/${srcfile} }}
 		{type :$int_label}
 		{external 1 flag}
 	    } {