| OLD | NEW |
| 1 # Copyright 2002-2003, 2005, 2007-2012 Free Software Foundation, Inc. | 1 # Copyright 2002-2003, 2005, 2007-2012 Free Software Foundation, Inc. |
| 2 | 2 |
| 3 # This program is free software; you can redistribute it and/or modify | 3 # This program is free software; you can redistribute it and/or modify |
| 4 # it under the terms of the GNU General Public License as published by | 4 # it under the terms of the GNU General Public License as published by |
| 5 # the Free Software Foundation; either version 3 of the License, or | 5 # the Free Software Foundation; either version 3 of the License, or |
| 6 # (at your option) any later version. | 6 # (at your option) any later version. |
| 7 # | 7 # |
| 8 # This program is distributed in the hope that it will be useful, | 8 # This program is distributed in the hope that it will be useful, |
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 # GNU General Public License for more details. | 11 # GNU General Public License for more details. |
| 12 # | 12 # |
| 13 # You should have received a copy of the GNU General Public License | 13 # You should have received a copy of the GNU General Public License |
| 14 # along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 14 # along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 15 | 15 |
| 16 # code_elim.exp -- tests that GDB can handle executables where some data/code | 16 # code_elim.exp -- tests that GDB can handle executables where some data/code |
| 17 # has been eliminated by the linker. | 17 # has been eliminated by the linker. |
| 18 | 18 |
| 19 if $tracelevel then { | |
| 20 strace $tracelevel | |
| 21 } | |
| 22 | |
| 23 set testfile1 code_elim1 | 19 set testfile1 code_elim1 |
| 24 set testfile2 code_elim2 | 20 set testfile2 code_elim2 |
| 25 set srcfile1 ${testfile1}.c | 21 set srcfile1 ${testfile1}.c |
| 26 set srcfile2 ${testfile2}.c | 22 set srcfile2 ${testfile2}.c |
| 27 set binfile1 ${objdir}/${subdir}/${testfile1} | 23 set binfile1 ${objdir}/${subdir}/${testfile1} |
| 28 set binfile2 ${objdir}/${subdir}/${testfile2} | 24 set binfile2 ${objdir}/${subdir}/${testfile2} |
| 29 set opts [list debug] | 25 set opts [list debug] |
| 30 lappend opts "additional_flags=-ffunction-sections" | 26 lappend opts "additional_flags=-ffunction-sections" |
| 31 lappend opts "additional_flags=-fdata-sections" | 27 lappend opts "additional_flags=-fdata-sections" |
| 32 lappend opts "additional_flags=-Wl,-gc-sections" | 28 lappend opts "additional_flags=-Wl,-gc-sections" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 } | 88 } |
| 93 } | 89 } |
| 94 } | 90 } |
| 95 | 91 |
| 96 # Check that the code and data eliminated in binfile1 are not included | 92 # Check that the code and data eliminated in binfile1 are not included |
| 97 # into partial symtab... and that non-eliminated symbols are still there. | 93 # into partial symtab... and that non-eliminated symbols are still there. |
| 98 | 94 |
| 99 gdb_exit | 95 gdb_exit |
| 100 gdb_start | 96 gdb_start |
| 101 | 97 |
| 102 gdb_test "add-symbol-file ${binfile1} 0x100000" \ | 98 gdb_test "symbol-file ${binfile1}" \ |
| 103 "Reading symbols from .*${testfile1}\\.\\.\\.done\\.(|\r\nUsing host lib
thread_db library .*libthread_db.so.*\\.)" \ | 99 "Reading symbols from .*${testfile1}\\.\\.\\.done\\.(|\r\nUsing host lib
thread_db library .*libthread_db.so.*\\.)" \ |
| 104 » "add-symbol-file ${testfile1} 0x100000" \ | 100 » "symbol-file ${testfile1}" |
| 105 » "add symbol table from file \".*${testfile1}\" at\[ \t\r\n\]+\.text_addr
= 0x100000\[\r\n\]+\\(y or n\\) " \ | |
| 106 » "y" | |
| 107 | 101 |
| 108 test_eliminated_var my_global_symbol | 102 with_test_prefix "single psymtabs" { |
| 109 test_eliminated_var my_static_symbol | 103 test_eliminated_var my_global_symbol |
| 110 test_eliminated_var my_global_func | 104 test_eliminated_var my_static_symbol |
| 111 not_null_var_address main | 105 test_eliminated_var my_global_func |
| 106 not_null_var_address main |
| 107 } |
| 112 | 108 |
| 113 # Same thing for symtabs | 109 # Same thing for symtabs |
| 114 | 110 |
| 115 gdb_exit | 111 gdb_exit |
| 116 global GDBFLAGS | 112 global GDBFLAGS |
| 117 set saved_gdbflags $GDBFLAGS | 113 set saved_gdbflags $GDBFLAGS |
| 118 set GDBFLAGS "$GDBFLAGS --readnow $binfile1" | 114 set GDBFLAGS "$GDBFLAGS --readnow $binfile1" |
| 119 gdb_start | 115 gdb_start |
| 120 set GDBFLAGS $saved_gdbflags | 116 set GDBFLAGS $saved_gdbflags |
| 121 | 117 |
| 122 test_eliminated_var my_global_symbol | 118 with_test_prefix "single symtabs" { |
| 123 test_eliminated_var my_static_symbol | 119 test_eliminated_var my_global_symbol |
| 124 test_eliminated_var my_global_func | 120 test_eliminated_var my_static_symbol |
| 125 not_null_var_address main | 121 test_eliminated_var my_global_func |
| 122 not_null_var_address main |
| 123 } |
| 126 | 124 |
| 127 # binfile2 contains the symbols that have been eliminated in binfile1. Check | 125 # binfile2 contains the symbols that have been eliminated in binfile1. Check |
| 128 # the eliminated symbols does not hide these valid ones. | 126 # the eliminated symbols does not hide these valid ones. |
| 129 | 127 |
| 130 gdb_exit | 128 gdb_exit |
| 131 gdb_start | 129 gdb_start |
| 132 | 130 |
| 133 gdb_test "add-symbol-file ${binfile1} 0x100000" \ | 131 with_test_prefix "order1" { |
| 134 » "Reading symbols from .*${testfile1}\\.\\.\\.done\\." \ | 132 gdb_test "add-symbol-file ${binfile1} 0x100000 -s .bss 0x120000" \ |
| 135 » "add-symbol-file ${testfile1} 0x100000" \ | 133 » "Reading symbols from .*${testfile1}\\.\\.\\.done\\." \ |
| 136 » "add symbol table from file \".*${testfile1}\" at\[ \t\r\n\]+\.text_addr
= 0x100000\[\r\n\]+\\(y or n\\) " \ | 134 » "add-symbol-file ${testfile1} 0x100000" \ |
| 137 » "y" | 135 » "add symbol table from file \".*${testfile1}\" at.*\\(y or n\\) " \ |
| 136 » "y" |
| 138 | 137 |
| 139 gdb_test "add-symbol-file ${binfile2} 0x200000" \ | 138 gdb_test "add-symbol-file ${binfile2} 0x200000 -s .data 0x210000 -s .bss 0x2
20000" \ |
| 140 » "Reading symbols from .*${testfile2}\\.\\.\\.done\\." \ | 139 » "Reading symbols from .*${testfile2}\\.\\.\\.done\\." \ |
| 141 » "add-symbol-file ${testfile2} 0x200000" \ | 140 » "add-symbol-file ${testfile2} 0x200000" \ |
| 142 » "add symbol table from file \".*${testfile2}\" at\[ \t\r\n\]+\.text_addr
= 0x200000\[\r\n\]+\\(y or n\\) " \ | 141 » "add symbol table from file \".*${testfile2}\" at.*\\(y or n\\) " \ |
| 143 » "y" | 142 » "y" |
| 144 | 143 |
| 145 not_null_var_address my_global_symbol | 144 not_null_var_address my_global_symbol |
| 146 not_null_var_address my_static_symbol | 145 not_null_var_address my_static_symbol |
| 147 not_null_var_address my_global_func | 146 not_null_var_address my_global_func |
| 148 not_null_var_address main | 147 not_null_var_address main |
| 148 } |
| 149 | 149 |
| 150 # Same thing, but loading binfile2 before binfile1. | 150 # Same thing, but loading binfile2 before binfile1. |
| 151 | 151 |
| 152 gdb_exit | 152 gdb_exit |
| 153 gdb_start | 153 gdb_start |
| 154 | 154 |
| 155 gdb_test "add-symbol-file ${binfile2} 0x200000" \ | 155 with_test_prefix "order2" { |
| 156 » "Reading symbols from .*${testfile2}\\.\\.\\.done\\." \ | 156 gdb_test "add-symbol-file ${binfile2} 0x200000 -s .data 0x210000 -s .bss 0x2
20000" \ |
| 157 » "add-symbol-file ${testfile2} 0x200000" \ | 157 » "Reading symbols from .*${testfile2}\\.\\.\\.done\\." \ |
| 158 » "add symbol table from file \".*${testfile2}\" at\[ \t\r\n\]+\.text_addr
= 0x200000\[\r\n\]+\\(y or n\\) " \ | 158 » "add-symbol-file ${testfile2} 0x200000" \ |
| 159 » "y" | 159 » "add symbol table from file \".*${testfile2}\" at.*\\(y or n\\) " \ |
| 160 » "y" |
| 160 | 161 |
| 161 gdb_test "add-symbol-file ${binfile1} 0x100000" \ | 162 gdb_test "add-symbol-file ${binfile1} 0x100000 -s .bss 0x120000" \ |
| 162 » "Reading symbols from .*${testfile1}\\.\\.\\.done\\." \ | 163 » "Reading symbols from .*${testfile1}\\.\\.\\.done\\." \ |
| 163 » "add-symbol-file ${testfile1} 0x100000" \ | 164 » "add-symbol-file ${testfile1} 0x100000" \ |
| 164 » "add symbol table from file \".*${testfile1}\" at\[ \t\r\n\]+\.text_addr
= 0x100000\[\r\n\]+\\(y or n\\) " \ | 165 » "add symbol table from file \".*${testfile1}\" at.*\\(y or n\\) " \ |
| 165 » "y" | 166 » "y" |
| 166 | 167 |
| 167 not_null_var_address my_global_symbol | 168 not_null_var_address my_global_symbol |
| 168 not_null_var_address my_static_symbol | 169 not_null_var_address my_static_symbol |
| 169 not_null_var_address my_global_func | 170 not_null_var_address my_global_func |
| 170 not_null_var_address main | 171 not_null_var_address main |
| 171 | 172 } |
| 172 | |
| OLD | NEW |