GNU Binutils with patches for OS216
修訂 | 99a8e537841025daa212aa33e08cfdebc82c27ee (tree) |
---|---|
時間 | 2015-12-11 05:00:31 |
作者 | Doug Evans <dje@goog...> |
Commiter | Doug Evans |
patch ../102429642.patch
@@ -230,3 +230,15 @@ they are an ongoing maintenance burden. | ||
230 | 230 | + Ref: 15188412 |
231 | 231 | + * breakpoint.c (create_solib_event_breakpoint): Apply |
232 | 232 | + gdbarch_skip_entrypoint if it's defined. |
233 | +--- README.google 2015-09-05 18:23:16.000000000 -0700 | |
234 | ++++ README.google 2015-09-05 18:26:36.000000000 -0700 | |
235 | ++ | |
236 | ++2015-09-05 Doug Evans <google.com> | |
237 | ++ | |
238 | ++ PR python/17936 | |
239 | ++ * symfile.c (symbol_file_add_with_addrs): Call | |
240 | ++ observer_notify_new_objfile (NULL) early, before loading symbols. | |
241 | ++ (symbol_file_add_separate): Turn off SYMFILE_MAINLINE when loading | |
242 | ++ separate debug files. | |
243 | ++ (clear_symtab_users): Don't call observer_notify_new_objfile (NULL) | |
244 | ++ here if SYMFILE_MAINLINE. |
@@ -1191,6 +1191,15 @@ symbol_file_add_with_addrs (bfd *abfd, const char *name, int add_flags, | ||
1191 | 1191 | && !query (_("Load new symbol table from \"%s\"? "), name)) |
1192 | 1192 | error (_("Not confirmed.")); |
1193 | 1193 | |
1194 | + /* If mainline, send the new_objfile (NULL) notification now. | |
1195 | + This is done here so that clients will see one event instead of one for | |
1196 | + the main objfile and a second one for a possible separate debug file, and | |
1197 | + will see the event before any objfiles are loaded including possible | |
1198 | + separate debug files. Note that if there is a separate debug file, we | |
1199 | + will end up back here from calling syms_from_objfile below. PR 17936. */ | |
1200 | + if (mainline) | |
1201 | + observer_notify_new_objfile (NULL); | |
1202 | + | |
1194 | 1203 | objfile = allocate_objfile (abfd, name, |
1195 | 1204 | flags | (mainline ? OBJF_MAINLINE : 0)); |
1196 | 1205 |
@@ -1284,7 +1293,7 @@ symbol_file_add_separate (bfd *bfd, const char *name, int symfile_flags, | ||
1284 | 1293 | my_cleanup = make_cleanup_free_section_addr_info (sap); |
1285 | 1294 | |
1286 | 1295 | new_objfile = symbol_file_add_with_addrs |
1287 | - (bfd, name, symfile_flags, sap, | |
1296 | + (bfd, name, symfile_flags & ~SYMFILE_MAINLINE, sap, | |
1288 | 1297 | objfile->flags & (OBJF_REORDERED | OBJF_SHARED | OBJF_READNOW |
1289 | 1298 | | OBJF_USERLOADED), |
1290 | 1299 | objfile); |
@@ -3030,7 +3039,11 @@ clear_symtab_users (int add_flags) | ||
3030 | 3039 | clear_displays (); |
3031 | 3040 | clear_last_displayed_sal (); |
3032 | 3041 | clear_pc_function_cache (); |
3033 | - observer_notify_new_objfile (NULL); | |
3042 | + | |
3043 | + /* If this is the main objfile, the notification is sent out sooner, | |
3044 | + by symbol_file_add_with_addrs. PR 17936. */ | |
3045 | + if ((add_flags & SYMFILE_MAINLINE) == 0) | |
3046 | + observer_notify_new_objfile (NULL); | |
3034 | 3047 | |
3035 | 3048 | /* Clear globals which might have pointed into a removed objfile. |
3036 | 3049 | FIXME: It's not clear which of these are supposed to persist |