This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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]

[patch] Split .dwo files out of assembler fission tests


Hi.
This patch moves the .dwo pieces into a separate .dwo file (the normal case)
so that they can be used with dwp.
It depends on this patch:
https://sourceware.org/ml/gdb-patches/2013-09/msg00553.html

Regression tested on amd64-linux with/without fission,dwp and
with/without an objcopy that understands --extract-dwo/--strip-dwo.

I will commit this in a few days if there are no objections.

2013-09-17  Doug Evans  <dje@google.com>

	* lib/dwarf.exp (build_executable_from_fission_assembler): New proc.
	* gdb.dwarf2/fission-base.S: Update.  Split out .dwo into separate
	file.
	* gdb.dwarf2/fission-loclists.S: Ditto.
	* gdb.dwarf2/fission-reread.S: Ditto.
	* gdb.dwarf2/fission-base.exp: Skip of remote host.  Compile with
	build_executable_from_fission_assembler.
	* gdb.dwarf2/fission-loclists.exp: Ditto.
	* gdb.dwarf2/fission-reread.exp: Ditto.

Index: testsuite/lib/dwarf.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/dwarf.exp,v
retrieving revision 1.12
diff -u -p -r1.12 dwarf.exp
--- testsuite/lib/dwarf.exp	24 Aug 2013 01:53:06 -0000	1.12
+++ testsuite/lib/dwarf.exp	17 Sep 2013 20:34:58 -0000
@@ -29,6 +29,63 @@ proc dwarf2_support {} {
     return 0
 }
 
+# Build an executable from a fission-based .S file.
+# This handles the extra work of splitting the .o into non-dwo and dwo
+# pieces, making sure the .dwo is available if we're using cc-with-tweaks.sh
+# to build a .dwp file.
+# The arguments and results are the same as for build_executable.
+#
+# Current restrictions:
+# - only supports one source file
+# - cannot be run on remote hosts
+
+proc build_executable_from_fission_assembler { testname executable sources options } {
+    verbose -log "build_executable_from_fission_assembler $testname $executable $sources $options"
+    if { [llength $sources] != 1 } {
+	error "Only one source file supported."
+    }
+    if [is_remote host] {
+	error "Remote hosts are not supported."
+    }
+
+    global srcdir subdir
+    set source_file ${srcdir}/${subdir}/${sources}
+    set root_name [file rootname [file tail $source_file]]
+    set output_base [standard_output_file $root_name]
+    set object_file ${output_base}.o
+    set dwo_file ${output_base}.dwo
+    set object_options "object $options"
+    set objcopy [gdb_find_objcopy]
+
+    set result [gdb_compile $source_file $object_file object $options]
+    if { "$result" != "" } {
+	return -1
+    }
+
+    set command "$objcopy --extract-dwo $object_file $dwo_file"
+    verbose -log "Executing $command"
+    set result [catch "exec $command" output]
+    verbose -log "objcopy --extract-dwo output: $output"
+    if { $result == 1 } {
+	return -1
+    }
+
+    set command "$objcopy --strip-dwo $object_file"
+    verbose -log "Executing $command"
+    set result [catch "exec $command" output]
+    verbose -log "objcopy --strip-dwo output: $output"
+    if { $result == 1 } {
+	return -1
+    }
+
+    set result [gdb_compile $object_file $executable executable {nodebug}]
+    if { "$result" != "" } {
+	return -1
+    }
+
+    return 0
+}
+
 # A DWARF assembler.
 #
 # All the variables in this namespace are private to the
? testsuite/gdb.dwarf2/fission-base.S=
? testsuite/gdb.dwarf2/fission-loclists.c
Index: testsuite/gdb.dwarf2/fission-base.S
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/fission-base.S,v
retrieving revision 1.4
diff -u -p -r1.4 fission-base.S
--- testsuite/gdb.dwarf2/fission-base.S	22 Aug 2013 13:39:12 -0000	1.4
+++ testsuite/gdb.dwarf2/fission-base.S	17 Sep 2013 21:13:47 -0000
@@ -76,7 +76,7 @@ main:
 .LFE1:
 	.size	main, .-main
 .Letext0:
-	.section	.debug_info.dwo,"",@progbits
+	.section	.debug_info.dwo,"e",@progbits
 .Ldebug_info0:
 	.4byte	.Ldebug_info0_end - .Ldebug_info0 - 4 # Length of Compilation Unit Info
 	.2byte	0x4	# DWARF version number
@@ -87,30 +87,30 @@ main:
 	.byte	0x1	# DW_AT_language
 	.ascii "gdb.dwarf2/fission-base.c\0"	# DW_AT_name
 	.ascii "/tmp/src/gdb/testsuite\0"	# DW_AT_comp_dir
-	.byte	0	# DW_AT_GNU_dwo_id
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
+	.byte	1	# DW_AT_GNU_dwo_id
+	.byte	2
+	.byte	3
+	.byte	4
+	.byte	5
+	.byte	6
+	.byte	7
+	.byte	8
 	.uleb128 0x2	# (DIE (0x89) DW_TAG_subprogram)
 			# DW_AT_external
 	.ascii "func\0"	# DW_AT_name
 	.byte	0x1	# DW_AT_decl_file (fission-base.c)
 	.byte	0x13	# DW_AT_decl_line
 			# DW_AT_prototyped
-	.4byte	.Ldebug_info0_int	# DW_AT_type
+	.4byte	.Ldebug_info0_int - .Ldebug_info0 # DW_AT_type
 	.4byte	0x0	# DW_AT_ranges
 	.uleb128 0x1	# DW_AT_frame_base
 	.byte	0x9c	# DW_OP_call_frame_cfa
-	.4byte	.Ldebug_info0_int	# DW_AT_sibling
+	.4byte	.Ldebug_info0_int - .Ldebug_info0 # DW_AT_sibling
 	.uleb128 0x3	# (DIE (0xa4) DW_TAG_formal_parameter)
 	.ascii "arg\0"	# DW_AT_name
 	.byte	0x1	# DW_AT_decl_file (fission-base.c)
 	.byte	0x13	# DW_AT_decl_line
-	.4byte	.Ldebug_info0_int	# DW_AT_type
+	.4byte	.Ldebug_info0_int - .Ldebug_info0 # DW_AT_type
 	.uleb128 0x2	# DW_AT_location
 	.byte	0x91	# DW_OP_fbreg
 	.sleb128 -20
@@ -125,7 +125,7 @@ main:
 	.ascii "main\0"	# DW_AT_name
 	.byte	0x1	# DW_AT_decl_file (fission-base.c)
 	.byte	0x19	# DW_AT_decl_line
-	.4byte	.Ldebug_info0_int	# DW_AT_type
+	.4byte	.Ldebug_info0_int - .Ldebug_info0 # DW_AT_type
 	.uleb128 0x1	# DW_AT_low_pc
 	.8byte	.LFE1-.LFB1	# DW_AT_high_pc
 	.uleb128 0x1	# DW_AT_frame_base
@@ -143,21 +143,19 @@ main:
 	.8byte	.Letext0-.Ltext0	# DW_AT_high_pc
 	.4byte	.Ldebug_line0	# DW_AT_stmt_list
 	.ascii "/tmp/src/gdb/testsuite\0"	# DW_AT_comp_dir
-	# Normally dwo_name would be "fission-base.dwo".
-	# Simplification: Leave the DWO contents in the executable.
-	.ascii "fission-base\0"	# DW_AT_GNU_dwo_name
+	.ascii "gdb.dwarf2/fission-base.dwo\0"	# DW_AT_GNU_dwo_name
 	.4byte	.Ldebug_pubnames0	# DW_AT_GNU_pubnames
 	.4byte	.Ldebug_pubtypes0	# DW_AT_GNU_pubtypes
 	.4byte	.Ldebug_addr0_begin	# DW_AT_GNU_addr_base
 	.4byte	.Ldebug_ranges0_begin	# DW_AT_GNU_ranges_base
-	.byte	0	# DW_AT_GNU_dwo_id
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
+	.byte	1	# DW_AT_GNU_dwo_id
+	.byte	2
+	.byte	3
+	.byte	4
+	.byte	5
+	.byte	6
+	.byte	7
+	.byte	8
 .Lskeleton_debug_info0_end:
 	.section	.debug_abbrev,"",@progbits
 .Lskeleton_debug_abbrev0:
@@ -187,7 +185,7 @@ main:
 	.byte	0
 	.byte	0
 	.byte	0	# end of skeleton .debug_abbrev
-	.section	.debug_abbrev.dwo,"",@progbits
+	.section	.debug_abbrev.dwo,"e",@progbits
 .Ldebug_abbrev0:
 	.uleb128 0x1	# (abbrev code)
 	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
@@ -275,26 +273,29 @@ main:
 	.byte	0
 	.byte	0
 	.byte	0
-	.section	.debug_pubnames,"",@progbits
+	.section	.debug_gnu_pubnames,"",@progbits
 .Ldebug_pubnames0:
-	.4byte	0x20	# Length of Public Names Info
-	.2byte	0x2	# DWARF Version
-	.4byte	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
-	.4byte	0xd2	# Compilation Unit Length
-	.4byte	0x89	# DIE offset
+	.long	0x22	# Pub Info Length
+	.value	0x2	# DWARF Version
+	.long	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
+	.long	0x59	# Compilation Unit Length
+	.long	0x18	# DIE offset
+	.byte	0x30	# GDB-index flags
 	.ascii "func\0"	# external name
-	.4byte	0xba	# DIE offset
+	.long	0x45	# DIE offset
+	.byte	0x30	# GDB-index flags
 	.ascii "main\0"	# external name
-	.4byte	0
-	.section	.debug_pubtypes,"",@progbits
+	.long	0
+	.section	.debug_gnu_pubtypes,"",@progbits
 .Ldebug_pubtypes0:
-	.4byte	0x16	# Length of Public Type Names Info
-	.2byte	0x2	# DWARF Version
-	.4byte	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
-	.4byte	0xd2	# Compilation Unit Length
-	.4byte	.Ldebug_info0_int	# DIE offset
+	.long	0x17	# Pub Info Length
+	.value	0x2	# DWARF Version
+	.long	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
+	.long	0x59	# Compilation Unit Length
+	.long	0x3e	# DIE offset
+	.byte	0x90	# GDB-index flags
 	.ascii "int\0"	# external name
-	.4byte	0
+	.long	0
 	.section	.debug_aranges,"",@progbits
 	.4byte	0x2c	# Length of Address Ranges Info
 	.2byte	0x2	# DWARF Version
@@ -309,7 +310,7 @@ main:
 	.8byte	0
 	.section	.debug_line,"",@progbits
 .Ldebug_line0:
-	.section	.debug_line.dwo,"",@progbits
+	.section	.debug_line.dwo,"e",@progbits
 .Lskeleton_debug_line0:
 	.4byte	.LELT0-.LSLT0	# Length of Source Line Info
 .LSLT0:
Index: testsuite/gdb.dwarf2/fission-base.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/fission-base.exp,v
retrieving revision 1.4
diff -u -p -r1.4 fission-base.exp
--- testsuite/gdb.dwarf2/fission-base.exp	22 Aug 2013 13:39:13 -0000	1.4
+++ testsuite/gdb.dwarf2/fission-base.exp	17 Sep 2013 21:13:47 -0000
@@ -15,6 +15,11 @@
 
 load_lib dwarf.exp
 
+# We run objcopy locally to split out the .dwo file.
+if [is_remote host] {
+    return 0
+}
+
 # This test can only be run on targets which support DWARF-2 and use gas.
 if ![dwarf2_support] {
     return 0  
@@ -25,22 +30,14 @@ if {![istarget x86_64-*] || ![is_lp64_ta
     return 0
 }
 
-set basename "fission-base"
-
 standard_testfile .S
 
-if { [build_executable "$testfile.exp" "$testfile" "$srcfile" {nodebug}] } {
+if [build_executable_from_fission_assembler \
+	"$testfile.exp" "$binfile" "$srcfile" {nodebug}] {
     return -1
 }
 
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-
-gdb_test_no_output "set debug-file-directory [file dirname $binfile]" \
-    "set debug-file-directory"
-
-gdb_load ${binfile}
+clean_restart ${binfile}
 
 if ![runto_main] {
     return -1
Index: testsuite/gdb.dwarf2/fission-loclists.S
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/fission-loclists.S,v
retrieving revision 1.1
diff -u -p -r1.1 fission-loclists.S
--- testsuite/gdb.dwarf2/fission-loclists.S	28 Jan 2013 18:02:48 -0000	1.1
+++ testsuite/gdb.dwarf2/fission-loclists.S	17 Sep 2013 21:13:47 -0000
@@ -239,13 +239,8 @@ main:
 	.byte	0xd6
 	.byte	0x5
 	.4byte	.Ldebug_ranges0	# DW_AT_GNU_ranges_base
-	.ascii "/tmp\0"	# DW_AT_comp_dir
-	# Normally dwo_name would be "fission-loclists.dwo".
-	# Simplification: Leave the DWO contents in the executable.
-	# "gdb.dwarf2/" is included so that gdb can load the file without
-	# having to set "debug-file-directory".  This is useful when
-	# testing with cc-with-tweaks.sh -i.
-	.ascii "gdb.dwarf2/fission-loclists\0"	# DW_AT_GNU_dwo_name
+	.ascii "/tmp/src/gdb/testsuite\0"	# DW_AT_comp_dir
+	.ascii "gdb.dwarf2/fission-loclists.dwo\0"	# DW_AT_GNU_dwo_name
 	.4byte	.Ldebug_pubnames0	# DW_AT_GNU_pubnames
 	.4byte	.Ldebug_pubtypes0	# DW_AT_GNU_pubtypes
 	.4byte	.Ldebug_addr0	# DW_AT_GNU_addr_base
@@ -487,10 +482,47 @@ main:
 	.byte	0	# Location list terminator (*.LLST1)
 	.section	.debug_gnu_pubnames,"",@progbits
 .Ldebug_pubnames0:
-	.4byte	0
+	.long	0x28	# Pub Info Length
+	.value	0x2	# DWARF Version
+	.long	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
+	.long	0xa6	# Compilation Unit Length
+	.long	0x18	# DIE offset
+	.byte	0x30	# GDB-index flags
+	.ascii "foo\0"	# external name
+	.long	0x47	# DIE offset
+	.byte	0x30	# GDB-index flags
+	.ascii "main\0"	# external name
+	.long	0x94	# DIE offset
+	.byte	0x20	# GDB-index flags
+	.ascii "v\0"	# external name
+	.long	0
 	.section	.debug_gnu_pubtypes,"",@progbits
 .Ldebug_pubtypes0:
-	.4byte	0
+	.long	0x21	# Pub Info Length
+	.value	0x2	# DWARF Version
+	.long	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
+	.long	0xa6	# Compilation Unit Length
+	.long	0x40	# DIE offset
+	.byte	0x90	# GDB-index flags
+	.ascii "int\0"	# external name
+	.long	0x90	# DIE offset
+	.byte	0x90	# GDB-index flags
+	.ascii "char\0"	# external name
+	.long	0
+	.section	.debug_aranges,"",@progbits
+	.long	0x3c	# Length of Address Ranges Info
+	.value	0x2	# DWARF Version
+	.long	.Lskeleton_debug_info0	# Offset of Compilation Unit Info
+	.byte	0x8	# Size of Address
+	.byte	0	# Size of Segment Descriptor
+	.value	0	# Pad to 16 byte boundary
+	.value	0
+	.quad	.Ltext0	# Address
+	.quad	.Letext0-.Ltext0	# Length
+	.quad	.LFB1	# Address
+	.quad	.LFE1-.LFB1	# Length
+	.quad	0
+	.quad	0
 	.section	.debug_aranges,"",@progbits
 	.4byte	0x3c	# Length of Address Ranges Info
 	.value	0x2	# DWARF Version
Index: testsuite/gdb.dwarf2/fission-loclists.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/fission-loclists.exp,v
retrieving revision 1.1
diff -u -p -r1.1 fission-loclists.exp
--- testsuite/gdb.dwarf2/fission-loclists.exp	28 Jan 2013 18:02:48 -0000	1.1
+++ testsuite/gdb.dwarf2/fission-loclists.exp	17 Sep 2013 21:13:47 -0000
@@ -15,6 +15,11 @@
 
 load_lib dwarf.exp
 
+# We run objcopy locally to split out the .dwo file.
+if [is_remote host] {
+    return 0
+}
+
 # This test can only be run on targets which support DWARF-2 and use gas.
 if ![dwarf2_support] {
     return 0  
@@ -25,14 +30,15 @@ if {![istarget x86_64-*] || ![is_lp64_ta
     return 0
 }
 
-set basename "fission-loclists"
-
 standard_testfile .S
 
-if { [prepare_for_testing "$testfile.exp" "$testfile" "$srcfile" {nodebug}] } {
+if [build_executable_from_fission_assembler \
+	"$testfile.exp" "$binfile" "$srcfile" {nodebug}] {
     return -1
 }
 
+clean_restart ${binfile}
+
 if ![runto_main] {
     return -1
 }
Index: testsuite/gdb.dwarf2/fission-reread.S
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/fission-reread.S,v
retrieving revision 1.9
diff -u -p -r1.9 fission-reread.S
--- testsuite/gdb.dwarf2/fission-reread.S	22 Aug 2013 13:39:13 -0000	1.9
+++ testsuite/gdb.dwarf2/fission-reread.S	17 Sep 2013 21:13:47 -0000
@@ -100,12 +100,12 @@ main:
 	.byte	0x4	/* DW_AT_byte_size */
 	.byte	0x1	/* DW_AT_decl_file (fission-reread.cc) */
 	.byte	0x1	/* DW_AT_decl_line */
-	.4byte	.Ltu_int	/* DW_AT_sibling */
+	.4byte	.Ltu_int - .Ltu_start_dwo /* DW_AT_sibling */
 	.uleb128 0x3	/* (DIE (0x31) DW_TAG_member) */
 	.ascii "bar\0"	/* DW_AT_name */
 	.byte	0x1	/* DW_AT_decl_file (fission-reread.cc) */
 	.byte	0x4	/* DW_AT_decl_line */
-	.4byte	.Ltu_int	/* DW_AT_type */
+	.4byte	.Ltu_int - .Ltu_start_dwo /* DW_AT_type */
 	.byte	0	/* DW_AT_data_member_location */
 	.byte	0x1	/* DW_AT_accessibility */
 	.byte	0	/* end of children of DIE 0x25 */
@@ -134,9 +134,7 @@ main:
 	.4byte	0	/* Offset to Type DIE */
 	.uleb128 0x2	/* (DIE (0) DW_TAG_type_unit) */
 	.ascii "/tmp/src/gdb/testsuite\0"	/* DW_AT_comp_dir */
-	/* Normally dwo_name would be "fission-reread.dwo".
-	   Simplification: Leave the DWO contents in the executable.  */
-	.ascii "fission-reread\0"	/* DW_AT_GNU_dwo_name */
+	.ascii "gdb.dwarf2/fission-reread.dwo\0" /* DW_AT_GNU_dwo_name */
 	.4byte	.Ldebug_pubnames0	/* DW_AT_GNU_pubnames */
 	.4byte	.Ldebug_pubtypes0	/* DW_AT_GNU_pubtypes */
 	.4byte	.Ldebug_addr0	/* DW_AT_GNU_addr_base */
@@ -153,14 +151,14 @@ main:
 	.byte	0x4	/* DW_AT_language */
 	.ascii "gdb.dwarf2/fission-reread.cc\0"	/* DW_AT_name */
 	.ascii "/tmp/src/gdb/testsuite\0"	/* DW_AT_comp_dir */
-	.byte	0	/* DW_AT_GNU_dwo_id */
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
+	.byte	1	/* DW_AT_GNU_dwo_id */
+	.byte	2
+	.byte	3
+	.byte	4
+	.byte	5
+	.byte	6
+	.byte	7
+	.byte	8
 .Lcu_int:
 	.uleb128 0x4	/* (DIE (0x7f) DW_TAG_base_type) */
 	.byte	0x4	/* DW_AT_byte_size */
@@ -171,7 +169,7 @@ main:
 	.ascii "main\0"	/* DW_AT_name */
 	.byte	0x1	/* DW_AT_decl_file (fission-reread.cc) */
 	.byte	0xa	/* DW_AT_decl_line */
-	.4byte	.Lcu_int	/* DW_AT_type */
+	.4byte	.Lcu_int - .Lcu_start_dwo /* DW_AT_type */
 	.uleb128 0	/* DW_AT_low_pc */
 	.4byte	.LFE0-.LFB0	/* DW_AT_high_pc */
 	.uleb128 0x1	/* DW_AT_frame_base */
@@ -207,23 +205,18 @@ main:
 	.4byte	.Letext0-.Ltext0	/* DW_AT_high_pc */
 	.4byte	.Ldebug_line0	/* DW_AT_stmt_list */
 	.ascii "/tmp/src/gdb/testsuite\0"	/* DW_AT_comp_dir */
-	/* Normally dwo_name would be "fission-reread.dwo".
-	   Simplification: Leave the DWO contents in the executable.
-	   "gdb.dwarf2/" is included so that gdb can load the file without
-	   having to set "debug-file-directory".  This is useful when
-	   testing with cc-with-tweaks.sh -i.  */
-	.ascii "gdb.dwarf2/fission-reread\0"	/* DW_AT_GNU_dwo_name */
+	.ascii "gdb.dwarf2/fission-reread.dwo\0" /* DW_AT_GNU_dwo_name */
 	.4byte	.Ldebug_pubnames0	/* DW_AT_GNU_pubnames */
 	.4byte	.Ldebug_pubtypes0	/* DW_AT_GNU_pubtypes */
 	.4byte	.Ldebug_addr0	/* DW_AT_GNU_addr_base */
-	.byte	0	/* DW_AT_GNU_dwo_id */
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
-	.byte	0
+	.byte	1	/* DW_AT_GNU_dwo_id */
+	.byte	2
+	.byte	3
+	.byte	4
+	.byte	5
+	.byte	6
+	.byte	7
+	.byte	8
 .Lcu_end:
 
 	.section	.debug_abbrev
@@ -411,10 +404,10 @@ main:
 	.ascii "foo\0"	/* external name */
 	.4byte	0
 	.section	.debug_aranges
-	.4byte	0x2c	/* Length of Address Ranges Info */
+	.4byte	0x1c	/* Length of Address Ranges Info */
 	.2byte	0x2	/* DWARF Version */
 	.4byte	.Lskeleton_debug_info0	/* Offset of Compilation Unit Info */
-	.byte	0x8	/* Size of Address */
+	.byte	0x4	/* Size of Address */
 	.byte	0	/* Size of Segment Descriptor */
 	.2byte	0	/* Pad to 16 byte boundary */
 	.2byte	0
Index: testsuite/gdb.dwarf2/fission-reread.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/fission-reread.exp,v
retrieving revision 1.5
diff -u -p -r1.5 fission-reread.exp
--- testsuite/gdb.dwarf2/fission-reread.exp	22 Aug 2013 13:39:13 -0000	1.5
+++ testsuite/gdb.dwarf2/fission-reread.exp	17 Sep 2013 21:13:47 -0000
@@ -15,27 +15,24 @@
 
 load_lib dwarf.exp
 
+# We run objcopy locally to split out the .dwo file.
+if [is_remote host] {
+    return 0
+}
+
 # This test can only be run on targets which support DWARF-2 and use gas.
 if ![dwarf2_support] {
     return 0  
 }
 
-set basename "fission-reread"
-
 standard_testfile .S
 
-if { [build_executable "$testfile.exp" "$testfile" "$srcfile" {nodebug}] } {
+if [build_executable_from_fission_assembler \
+	"$testfile.exp" "$binfile" "$srcfile" {nodebug}] {
     return -1
 }
 
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-
-gdb_test_no_output "set debug-file-directory [file dirname $binfile]" \
-    "set debug-file-directory"
-
-gdb_load ${binfile}
+clean_restart ${binfile}
 
 gdb_test "break main" "Breakpoint.*at.*"
 


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