From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16267 invoked by alias); 25 Dec 2012 16:49:36 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 16193 invoked by uid 9674); 25 Dec 2012 16:49:31 -0000 Date: Tue, 25 Dec 2012 16:49:00 -0000 Message-ID: <20121225164931.16178.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-absdir: Merge branch 'locsymtab-dos-isabs-config-all-priv' into locsymtab-dos-isabs-config-all-priv-annotate X-Git-Refname: refs/heads/archer-jankratochvil-absdir X-Git-Reftype: branch X-Git-Oldrev: a173fb32c7f305aa68da6c79655898554f6862d9 X-Git-Newrev: bc106774f1c4ce4dc6edd460ef9106efafe316fe X-SW-Source: 2012-q4/txt/msg00039.txt.bz2 List-Id: The branch, archer-jankratochvil-absdir has been updated via bc106774f1c4ce4dc6edd460ef9106efafe316fe (commit) via 18622dd9ee52bbfdc21717591c0687f3e0ce5e71 (commit) via 1bbfad473a14259b59865479b8366df514c7b3ff (commit) via b69ed75b54f19b72c2db069aefddfb57c014afe4 (commit) via 0bb409dc3977c170005c3df4365e52b18aacb0de (commit) via ffc599faf8d1f031852d05078fd427c9850952e3 (commit) via 740b1e691b5554e1d30769e5321c79850d6d1190 (commit) via 0b2a511ab74a29dd1cd2fc1b724640b610f698cd (commit) via ea4fca6b7db4246ee46107fcf293ea8f16ffe3fc (commit) via 3a4b1f2a248aa32bbb94182265a33fcf0992c5fc (commit) via f5cc7af10ea5c093f49bbe3f755ffaf53f4c9cf9 (commit) via 272af75441961714d0a38b4dbe97a14708acbf97 (commit) via 585647136972313332ed9615f9eb7f8f9999d0cb (commit) via fd89a3e85d9ab246c358315529d9bacca50dab3f (commit) via 8f9e96157a01fccb7a49dbd8e91357917eb6fda9 (commit) via 22f8506880c9d074aa9c937782afa55efc5ce194 (commit) via 97f1b488f01f5133bb798a8658ed5925c1160561 (commit) via 7dc5cbccf96125237dd3f6938a2047838189d4dd (commit) via 81ae493a6e303caae6d16188973241beed2bf92c (commit) via 3838503572fe373f395d76e2a5faeb490e168bde (commit) via 87622f046496b3d03acf55057c333a50b13860a3 (commit) via 1cb7a1686568883b4ade97752977f58e5ff22578 (commit) via 8bd1cd13a18b8087ce811ab430eae69e1259b292 (commit) via ffaaf0c187b1fe95c3e85d4b078c7cf0768c44d9 (commit) via c2e852c8dac25badd8861c8d0edb758051bd5936 (commit) via 10089abe88a696004d107d310bcda366ff9d7cce (commit) via 372f568246ea4fe7e8b3a285863b51b1347d370d (commit) via d5a8f2de53907b3c256b55e22586ba682d647021 (commit) via e45c81e24e03210153291803db4eb0295643de80 (commit) via b110669549663dea7e3ea1d0175262b52424f441 (commit) via a5513a510e6d311c2a5578bcb50829a12f305e70 (commit) via 0a428ac1bd3bb95aed620a06670273583213dcf9 (commit) via 7c035aa28d500042ef5e2b3ab5fda212eecac7b8 (commit) via 8227630c51595ba62191fd6793eddfb36753bed9 (commit) from a173fb32c7f305aa68da6c79655898554f6862d9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bc106774f1c4ce4dc6edd460ef9106efafe316fe Merge: 0bb409d 18622dd Author: Jan Kratochvil Date: Tue Dec 25 17:47:42 2012 +0100 Merge branch 'locsymtab-dos-isabs-config-all-priv' into locsymtab-dos-isabs-config-all-priv-annotate commit 18622dd9ee52bbfdc21717591c0687f3e0ce5e71 Author: Jan Kratochvil Date: Tue Dec 25 17:47:36 2012 +0100 . commit 1bbfad473a14259b59865479b8366df514c7b3ff Merge: ffc599f b69ed75 Author: Jan Kratochvil Date: Tue Dec 25 17:47:30 2012 +0100 Merge branch 'locsymtab-dos-isabs-config-all' into locsymtab-dos-isabs-config-all-priv commit b69ed75b54f19b72c2db069aefddfb57c014afe4 Author: Jan Kratochvil Date: Tue Dec 25 17:47:25 2012 +0100 . commit 0bb409dc3977c170005c3df4365e52b18aacb0de Merge: 272af75 ffc599f Author: Jan Kratochvil Date: Tue Dec 25 17:45:03 2012 +0100 Merge branch 'locsymtab-dos-isabs-config-all-priv' into locsymtab-dos-isabs-config-all-priv-annotate commit ffc599faf8d1f031852d05078fd427c9850952e3 Merge: 0b2a511 740b1e6 Author: Jan Kratochvil Date: Tue Dec 25 17:45:00 2012 +0100 Merge branch 'locsymtab-dos-isabs-config-all' into locsymtab-dos-isabs-config-all-priv Conflicts: gdb/symtab.c commit 740b1e691b5554e1d30769e5321c79850d6d1190 Author: Jan Kratochvil Date: Tue Dec 25 17:44:47 2012 +0100 . commit 0b2a511ab74a29dd1cd2fc1b724640b610f698cd Merge: 3a4b1f2 ea4fca6 Author: Jan Kratochvil Date: Tue Dec 25 17:44:19 2012 +0100 Merge branch 'locsymtab-dos-isabs-config-all' into locsymtab-dos-isabs-config-all-priv Conflicts: gdb/symtab.c commit ea4fca6b7db4246ee46107fcf293ea8f16ffe3fc Author: Jan Kratochvil Date: Tue Dec 25 17:43:33 2012 +0100 . commit 3a4b1f2a248aa32bbb94182265a33fcf0992c5fc Author: Jan Kratochvil Date: Tue Dec 25 16:20:26 2012 +0100 . commit f5cc7af10ea5c093f49bbe3f755ffaf53f4c9cf9 Author: Jan Kratochvil Date: Tue Dec 25 15:50:45 2012 +0100 . commit 272af75441961714d0a38b4dbe97a14708acbf97 Merge: 1cb7a16 5856471 Author: Jan Kratochvil Date: Tue Dec 25 10:39:37 2012 +0100 Merge branch 'symtabtofullname-locsymtab-dos-isabs-config-all-priv' into symtabtofullname-locsymtab-dos-isabs-config-all-priv-annotate commit 585647136972313332ed9615f9eb7f8f9999d0cb Merge: 3838503 fd89a3e Author: Jan Kratochvil Date: Tue Dec 25 10:39:36 2012 +0100 Merge branch 'symtabtofullname-locsymtab-dos-isabs-config-all' into symtabtofullname-locsymtab-dos-isabs-config-all-priv commit fd89a3e85d9ab246c358315529d9bacca50dab3f Merge: 8bd1cd1 8f9e961 Author: Jan Kratochvil Date: Tue Dec 25 10:39:35 2012 +0100 Merge branch 'symtabtofullname-locsymtab-dos-isabs-config' into symtabtofullname-locsymtab-dos-isabs-config-all commit 8f9e96157a01fccb7a49dbd8e91357917eb6fda9 Merge: ffaaf0c 22f8506 Author: Jan Kratochvil Date: Tue Dec 25 10:39:34 2012 +0100 Merge branch 'symtabtofullname-locsymtab-dos-isabs' into symtabtofullname-locsymtab-dos-isabs-config commit 22f8506880c9d074aa9c937782afa55efc5ce194 Merge: c2e852c 97f1b48 Author: Jan Kratochvil Date: Tue Dec 25 10:39:33 2012 +0100 Merge branch 'symtabtofullname-locsymtab-dos' into symtabtofullname-locsymtab-dos-isabs commit 97f1b488f01f5133bb798a8658ed5925c1160561 Merge: 10089ab 7dc5cbc Author: Jan Kratochvil Date: Tue Dec 25 10:39:32 2012 +0100 Merge branch 'symtabtofullname-locsymtab' into symtabtofullname-locsymtab-dos commit 7dc5cbccf96125237dd3f6938a2047838189d4dd Merge: 372f568 81ae493 Author: Jan Kratochvil Date: Tue Dec 25 10:39:30 2012 +0100 Merge branch 'symtabtofullname' into symtabtofullname-locsymtab commit 81ae493a6e303caae6d16188973241beed2bf92c Merge: e45c81e 87622f0 Author: Jan Kratochvil Date: Tue Dec 25 10:39:27 2012 +0100 Merge remote-tracking branch 'gdb/master' into symtabtofullname Conflicts: gdb/doc/gdb.texinfo gdb/testsuite/gdb.mi/mi-fullname-deleted.exp commit 3838503572fe373f395d76e2a5faeb490e168bde Author: Jan Kratochvil Date: Tue Dec 25 10:38:17 2012 +0100 . commit 87622f046496b3d03acf55057c333a50b13860a3 Author: Jan Kratochvil Date: Tue Dec 25 08:03:29 2012 +0000 gdb/ * ada-lang.c (is_known_support_routine): New variable fullname. Use access call to verify the symtab_to_fullname result. * breakpoint.c (print_breakpoint_location, update_static_tracepoint): Remove NULL check of symtab_to_fullname result. * cli/cli-cmds.c (edit_command): Likewise. * mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file) (mi_cmd_file_list_exec_source_files): Likewise. * python/py-symtab.c (stpy_fullname): Likewise. * source.c (symtab_to_fullname): Update function comment. Rename variable r to fd, move it to inner block. Always provide non-NULL result. (print_source_lines_base): Remove NULL check of symtab_to_fullname result. * stack.c (print_frame): Likewise. * symtab.c (iterate_over_some_symtabs, find_line_symtab, sources_info): Likewise. * tracepoint.c (print_one_static_tracepoint_marker): Likewise. gdb/doc/ * gdb.texinfo (GDB/MI Data Manipulation) (fullname): Make it always present. (GDB/MI File Commands) (-file-list-exec-source-files): Make the fullname output always present. gdb/testsuite/ * gdb.mi/mi-fullname-deleted.exp: New file. commit 1cb7a1686568883b4ade97752977f58e5ff22578 Merge: a173fb3 8bd1cd1 Author: Jan Kratochvil Date: Tue Dec 25 07:35:21 2012 +0100 Merge branch 'symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs-config-all' into symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs-config-all-annotate commit 8bd1cd13a18b8087ce811ab430eae69e1259b292 Merge: 2fd1715 ffaaf0c Author: Jan Kratochvil Date: Tue Dec 25 07:35:19 2012 +0100 Merge branch 'symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs-config' into symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs-config-all commit ffaaf0c187b1fe95c3e85d4b078c7cf0768c44d9 Merge: 059edf7 c2e852c Author: Jan Kratochvil Date: Tue Dec 25 07:35:18 2012 +0100 Merge branch 'symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs' into symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs-config commit c2e852c8dac25badd8861c8d0edb758051bd5936 Merge: 8c3694b 10089ab Author: Jan Kratochvil Date: Tue Dec 25 07:35:16 2012 +0100 Merge branch 'symtabnull-symtabtofullname-skipfix-locsymtab-dos' into symtabnull-symtabtofullname-skipfix-locsymtab-dos-isabs commit 10089abe88a696004d107d310bcda366ff9d7cce Merge: 48cdb60 372f568 Author: Jan Kratochvil Date: Tue Dec 25 07:35:15 2012 +0100 Merge branch 'symtabnull-symtabtofullname-skipfix-locsymtab' into symtabnull-symtabtofullname-skipfix-locsymtab-dos commit 372f568246ea4fe7e8b3a285863b51b1347d370d Merge: f51aede d5a8f2d Author: Jan Kratochvil Date: Tue Dec 25 07:35:14 2012 +0100 Merge branch 'symtabnull-symtabtofullname-skipfix' into symtabnull-symtabtofullname-skipfix-locsymtab commit d5a8f2de53907b3c256b55e22586ba682d647021 Merge: 4de436b e45c81e Author: Jan Kratochvil Date: Tue Dec 25 07:35:13 2012 +0100 Merge branch 'symtabnull-symtabtofullname' into symtabnull-symtabtofullname-skipfix commit e45c81e24e03210153291803db4eb0295643de80 Merge: 3853fa6 b110669 Author: Jan Kratochvil Date: Tue Dec 25 07:35:12 2012 +0100 Merge branch 'symtabnull' into symtabnull-symtabtofullname commit b110669549663dea7e3ea1d0175262b52424f441 Merge: c6e551b a5513a5 Author: Jan Kratochvil Date: Tue Dec 25 07:35:10 2012 +0100 Merge remote-tracking branch 'gdb/master' into symtabnull commit a5513a510e6d311c2a5578bcb50829a12f305e70 Author: gdbadmin Date: Tue Dec 25 00:00:03 2012 +0000 *** empty log message *** commit 0a428ac1bd3bb95aed620a06670273583213dcf9 Author: Alan Modra Date: Mon Dec 24 23:00:05 2012 +0000 daily update commit 7c035aa28d500042ef5e2b3ab5fda212eecac7b8 Author: Jan Kratochvil Date: Mon Dec 24 19:42:15 2012 +0000 gdb/ Code cleanup. * dwarf2read.c (fixup_go_packaging): Do not check symtab->FILENAME for NULL. * linespec.c (add_sal_to_sals): Likewise. * psympriv.h (allocate_psymtab): Add ATTRIBUTE_NONNULL. * stack.c (print_frame): Do not check symtab->FILENAME for NULL. * symfile.h (allocate_symtab): Add ATTRIBUTE_NONNULL. * symtab.h (struct symtab): Add comment it is never NULL for filename. * tracepoint.c (set_traceframe_context): Do not check symtab->FILENAME for NULL. * tui/tui-source.c (tui_set_source_content): Likewise. commit 8227630c51595ba62191fd6793eddfb36753bed9 Author: Jan Kratochvil Date: Mon Dec 24 19:40:02 2012 +0000 gdb/ * breakpoint.c (breakpoint_re_set): Remove the skip_re_set call. * infrun.c (handle_inferior_event): Rename the called function to function_name_is_marked_for_skip, pass it TMP_SAL. * skip.c (struct skiplist_entry): Update function_name comment. Remove fields pc, gdbarch and pending. (skip_function_pc): Rename this forward declaration to ... (skip_function): ... here. (skip_file_command): Remove variable pending and its use, remove initialization of E fields pending and gdbarch. Do not use SYMTAB filename, use the specified one. (skip_function_command): Remove variable func_pc, do not set it. Update the caller of skip_function. Replace decode_line_1 call by a lookup_symbol call. Remove variables orig_arg, decode_exception and sals. Update the caller of skip_function. (skip_info): Remove variable address_width and its use. Do not print address (PC). Renumber column 5 to 4. (skip_function_pc): Rename to ... (skip_function): ... here and remove its parameters pc, arch and pending. Update the function comment and no longer use those parameters. (function_pc_is_marked_for_skip): Rename to ... (function_name_is_marked_for_skip): ... here, update function comment just to a skip.h reference, replace pc parameter by function_name and function_sal. No longer use E field pending and pc. Remove variables searched_for_sal, sal and filename. Call compare_filenames_for_search instead of just strcmp. (skip_re_set): Remove the function. * skip.h (struct symtab_and_line): New declaration. (function_pc_is_marked_for_skip): Rename to ... (function_name_is_marked_for_skip): ... here, replace pc parameter by function_name and function_sal, update the function comment. gdb/testsuite/ * gdb.base/skip-solib.exp (info skip with pending file): Update the expected output. (info skip with pending file): Remove. (ignoring function in solib, info skip for function multiply): Update the expected output. * gdb.base/skip.ex (skip (main), skip function baz, info skip) (info skip (delete 1), info skip after disabling all) (info skip after enabling all, info skip after disabling 4 2-3) (info skip after enabling 2-3, info skip 2-3) (info skip after deleting 2 3): Update the expected output. * gdb.linespec/base/two/thefile.cc (n): New variable v, split the statement to its initialization and return. * gdb.linespec/skip-two.exp: New file. ----------------------------------------------------------------------- Summary of changes: bfd/version.h | 2 +- gdb/ChangeLog | 68 ++++++++++++++++++++++++++ gdb/ada-lang.c | 2 +- gdb/breakpoint.c | 6 +- gdb/cli/cli-cmds.c | 2 +- gdb/doc/ChangeLog | 7 +++ gdb/doc/gdb.texinfo | 2 +- gdb/dwarf2read.c | 14 +++--- gdb/macroscope.c | 5 +- gdb/psymtab.c | 6 +- gdb/source.c | 14 +++--- gdb/symfile.c | 4 +- gdb/symfile.h | 8 ++-- gdb/symmisc.c | 8 ++- gdb/symtab.c | 51 ++++++++++++------- gdb/symtab.h | 5 +- gdb/testsuite/ChangeLog | 20 ++++++++ gdb/testsuite/gdb.mi/mi-fullname-deleted.exp | 9 ++-- gdb/version.in | 2 +- 19 files changed, 175 insertions(+), 60 deletions(-) First 500 lines of diff: diff --git a/bfd/version.h b/bfd/version.h index e57fbf5..662a847 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20121224 +#define BFD_VERSION_DATE 20121225 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2f682cd..6f22130 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,71 @@ +2012-12-25 Jan Kratochvil + + * ada-lang.c (is_known_support_routine): New variable fullname. Use + access call to verify the symtab_to_fullname result. + * breakpoint.c (print_breakpoint_location, update_static_tracepoint): + Remove NULL check of symtab_to_fullname result. + * cli/cli-cmds.c (edit_command): Likewise. + * mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file) + (mi_cmd_file_list_exec_source_files): Likewise. + * python/py-symtab.c (stpy_fullname): Likewise. + * source.c (symtab_to_fullname): Update function comment. Rename + variable r to fd, move it to inner block. Always provide non-NULL + result. + (print_source_lines_base): Remove NULL check of symtab_to_fullname + result. + * stack.c (print_frame): Likewise. + * symtab.c (iterate_over_some_symtabs, find_line_symtab, sources_info): + Likewise. + * tracepoint.c (print_one_static_tracepoint_marker): Likewise. + +2012-12-24 Jan Kratochvil + + Code cleanup. + * dwarf2read.c (fixup_go_packaging): Do not check symtab->FILENAME for + NULL. + * linespec.c (add_sal_to_sals): Likewise. + * psympriv.h (allocate_psymtab): Add ATTRIBUTE_NONNULL. + * stack.c (print_frame): Do not check symtab->FILENAME for NULL. + * symfile.h (allocate_symtab): Add ATTRIBUTE_NONNULL. + * symtab.h (struct symtab): Add comment it is never NULL for filename. + * tracepoint.c (set_traceframe_context): Do not check symtab->FILENAME + for NULL. + * tui/tui-source.c (tui_set_source_content): Likewise. + +2012-12-24 Jan Kratochvil + + * breakpoint.c (breakpoint_re_set): Remove the skip_re_set call. + * infrun.c (handle_inferior_event): Rename the called function to + function_name_is_marked_for_skip, pass it TMP_SAL. + * skip.c (struct skiplist_entry): Update function_name comment. Remove + fields pc, gdbarch and pending. + (skip_function_pc): Rename this forward declaration to ... + (skip_function): ... here. + (skip_file_command): Remove variable pending and its use, remove + initialization of E fields pending and gdbarch. Do not use SYMTAB + filename, use the specified one. + (skip_function_command): Remove variable func_pc, do not set it. + Update the caller of skip_function. Replace decode_line_1 call by + a lookup_symbol call. Remove variables orig_arg, decode_exception and + sals. Update the caller of skip_function. + (skip_info): Remove variable address_width and its use. Do not print + address (PC). Renumber column 5 to 4. + (skip_function_pc): Rename to ... + (skip_function): ... here and remove its parameters pc, arch and + pending. Update the function comment and no longer use those + parameters. + (function_pc_is_marked_for_skip): Rename to ... + (function_name_is_marked_for_skip): ... here, update function comment + just to a skip.h reference, replace pc parameter by function_name and + function_sal. No longer use E field pending and pc. Remove variables + searched_for_sal, sal and filename. Call compare_filenames_for_search + instead of just strcmp. + (skip_re_set): Remove the function. + * skip.h (struct symtab_and_line): New declaration. + (function_pc_is_marked_for_skip): Rename to ... + (function_name_is_marked_for_skip): ... here, replace pc parameter by + function_name and function_sal, update the function comment. + 2012-12-18 Pierre Muller * ui-file.h (tee_file_new): Add extern modifier in header declaration. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 24c5fe2..bbd0eb3 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -11112,7 +11112,7 @@ is_known_support_routine (struct frame_info *frame) for (i = 0; known_runtime_file_name_patterns[i] != NULL; i += 1) { re_comp (known_runtime_file_name_patterns[i]); - if (re_exec (lbasename (sal.symtab->filename))) + if (re_exec (lbasename (sal.symtab->filename_))) return 1; if (sal.symtab->objfile != NULL && re_exec (sal.symtab->objfile->name)) diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index b729f36..d011418 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -11909,11 +11909,11 @@ clear_command (char *arg, int from_tty) if ((default_match || sal.explicit_line) && loc->symtab != NULL - && sal.symtab != NULL + && sal_fullname != NULL && sal.pspace == loc->pspace && loc->line_number == sal.line - && compare_filenames_for_search (loc->symtab->filename, - sal.symtab->filename)) + && compare_filenames_for_search + (symtab_to_fullname (loc->symtab), sal_fullname)) line_match = 1; if (pc_match || line_match) diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 38843c2..bdbcd29 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -1481,7 +1481,7 @@ compare_symtabs (const void *a, const void *b) return r; } - r = filename_cmp (sala->symtab->filename, salb->symtab->filename); + r = filename_cmp (sala->symtab->filename_, salb->symtab->filename_); if (r) return r; diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 44077d0..4c96eae 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,10 @@ +2012-12-25 Jan Kratochvil + + * gdb.texinfo (GDB/MI Data Manipulation) (fullname): Make it always + present. + (GDB/MI File Commands) (-file-list-exec-source-files): Make the + fullname output always present. + 2012-12-23 Pierre Muller * gdbint.texinfo (Function prototypes): Require use of "extern" diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 0f7a6b5..1c3fd2c 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -31106,7 +31106,7 @@ used. @item fullname Absolute file name of @samp{file}. It is converted to a canonical form using the source file search path -(@pxref{Source Path, ,Specifying Source Directories}). +(@pxref{Source Path, ,Specifying Source Directories}) and after resolving all the symbolic links. If the source file is not found this field will contain the path as diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 4752f37..f13faaf 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -3296,8 +3296,8 @@ dw2_expand_all_symtabs (struct objfile *objfile) } static void -dw2_expand_symtabs_with_filename (struct objfile *objfile, - const char *filename) +dw2_expand_symtabs_with_fullname (struct objfile *objfile, + const char *fullname) { int i; @@ -3324,9 +3324,9 @@ dw2_expand_symtabs_with_filename (struct objfile *objfile, for (j = 0; j < file_data->num_file_names; ++j) { - const char *this_name = file_data->file_names[j]; + const char *this_fullname = file_data->file_names[j]; - if (compare_filenames_for_search (this_name, filename)) + if (filename_cmp (this_fullname, fullname) == 0) { dw2_instantiate_symtab (per_cu); break; @@ -3379,7 +3379,7 @@ dw2_find_symbol_file (struct objfile *objfile, const char *name) if (sym) { /* Only file extension of returned filename is recognized. */ - return SYMBOL_SYMTAB (sym)->filename; + return SYMBOL_SYMTAB (sym)->filename_; } } return NULL; @@ -3399,7 +3399,7 @@ dw2_find_symbol_file (struct objfile *objfile, const char *name) if (per_cu->v.quick->symtab != NULL) { /* Only file extension of returned filename is recognized. */ - return per_cu->v.quick->symtab->filename; + return per_cu->v.quick->symtab->filename_; } init_cutu_and_read_dies (per_cu, NULL, 0, 0, @@ -3715,7 +3715,7 @@ const struct quick_symbol_functions dwarf2_gdb_index_functions = dw2_relocate, dw2_expand_symtabs_for_function, dw2_expand_all_symtabs, - dw2_expand_symtabs_with_filename, + dw2_expand_symtabs_with_fullname, dw2_find_symbol_file, dw2_map_matching_symbols, dw2_expand_symtabs_matching, diff --git a/gdb/macroscope.c b/gdb/macroscope.c index a23cac4..12223e2 100644 --- a/gdb/macroscope.c +++ b/gdb/macroscope.c @@ -48,7 +48,8 @@ sal_macro_scope (struct symtab_and_line sal) ms = (struct macro_scope *) xmalloc (sizeof (*ms)); main_file = macro_main (sal.symtab->macro_table); - inclusion = macro_lookup_inclusion (main_file, sal.symtab->filename); + inclusion = macro_lookup_inclusion (main_file, + symtab_to_fullname (sal.symtab)); if (inclusion) { @@ -77,7 +78,7 @@ sal_macro_scope (struct symtab_and_line sal) complaint (&symfile_complaints, _("symtab found for `%s', but that file\n" "is not covered in the compilation unit's macro information"), - sal.symtab->filename); + symtab_to_filename (sal.symtab)); } return ms; diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 6c8c3a1..3c0b79c 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1138,7 +1138,7 @@ expand_partial_symbol_tables (struct objfile *objfile) } static void -read_psymtabs_with_filename (struct objfile *objfile, const char *filename) +read_psymtabs_with_fullname (struct objfile *objfile, const char *fullname) { struct partial_symtab *p; @@ -1148,7 +1148,7 @@ read_psymtabs_with_filename (struct objfile *objfile, const char *filename) if (p->anonymous) continue; - if (filename_cmp (filename, p->filename) == 0) + if (filename_cmp (fullname, psymtab_to_fullname (p)) == 0) psymtab_to_symtab (objfile, p); } } @@ -1474,7 +1474,7 @@ const struct quick_symbol_functions psym_functions = relocate_psymtabs, read_symtabs_for_function, expand_partial_symbol_tables, - read_psymtabs_with_filename, + read_psymtabs_with_fullname, find_symbol_file_from_partial, map_matching_symbols_psymtab, expand_symtabs_matching_via_partial, diff --git a/gdb/source.c b/gdb/source.c index 2d25dcb..87df789 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -284,7 +284,7 @@ select_source_symtab (struct symtab *s) { for (s = ofp->symtabs; s; s = s->next) { - const char *name = s->filename; + const char *name = s->filename_; int len = strlen (name); if (!(len > 2 && (strcmp (&name[len - 2], ".h") == 0 @@ -634,7 +634,7 @@ source_info (char *ignore, int from_tty) printf_filtered (_("No current source file.\n")); return; } - printf_filtered (_("Current source file is %s\n"), s->filename); + printf_filtered (_("Current source file is %s\n"), s->filename_); if (s->dirname) printf_filtered (_("Compilation directory is %s\n"), s->dirname); if (s->fullname) @@ -1091,7 +1091,7 @@ open_source_file (struct symtab *s) if (!s) return -1; - return find_and_open_source (s->filename, s->dirname, &s->fullname); + return find_and_open_source (s->filename_, s->dirname, &s->fullname); } /* Finds the fullname that a symtab represents. @@ -1116,9 +1116,9 @@ symtab_to_fullname (struct symtab *s) if (fd >= 0) close (fd); else if (s->dirname == NULL) - s->fullname = xstrdup (s->filename); + s->fullname = xstrdup (s->filename_); else - s->fullname = concat (s->dirname, SLASH_STRING, s->filename, NULL); + s->fullname = concat (s->dirname, SLASH_STRING, s->filename_, NULL); } return s->fullname; @@ -1130,11 +1130,11 @@ const char * symtab_to_filename (struct symtab *symtab) { if (filename_display_string == filename_display_basename) - return lbasename (symtab->filename); + return lbasename (symtab->filename_); else if (filename_display_string == filename_display_absolute) return symtab_to_fullname (symtab); else if (filename_display_string == filename_display_relative) - return symtab->filename; + return symtab->filename_; else internal_error (__FILE__, __LINE__, _("invalid filename_display_string")); } diff --git a/gdb/symfile.c b/gdb/symfile.c index 33113c3..3ea90bc 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -2917,8 +2917,8 @@ allocate_symtab (const char *filename, struct objfile *objfile) symtab = (struct symtab *) obstack_alloc (&objfile->objfile_obstack, sizeof (struct symtab)); memset (symtab, 0, sizeof (*symtab)); - symtab->filename = (char *) bcache (filename, strlen (filename) + 1, - objfile->per_bfd->filename_cache); + symtab->filename_ = (char *) bcache (filename, strlen (filename) + 1, + objfile->per_bfd->filename_cache); symtab->fullname = NULL; symtab->language = deduce_language_from_filename (filename); symtab->debugformat = "unknown"; diff --git a/gdb/symfile.h b/gdb/symfile.h index cf37796..7f7123b 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -223,13 +223,13 @@ struct quick_symbol_functions /* Read all symbol tables associated with OBJFILE. */ void (*expand_all_symtabs) (struct objfile *objfile); - /* Read all symbol tables associated with OBJFILE which have the - file name FILENAME. + /* Read all symbol tables associated with OBJFILE which have + symtab_to_fullname equal to FULLNAME. This is for the purposes of examining code only, e.g., expand_line_sal. The routine may ignore debug info that is known to not be useful with code, e.g., DW_TAG_type_unit for dwarf debug info. */ - void (*expand_symtabs_with_filename) (struct objfile *objfile, - const char *filename); + void (*expand_symtabs_with_fullname) (struct objfile *objfile, + const char *fullname); /* Return the file name of the file holding the global symbol in OBJFILE named NAME. If no such symbol exists in OBJFILE, return NULL. diff --git a/gdb/symmisc.c b/gdb/symmisc.c index 7f8eb92..c56182c 100644 --- a/gdb/symmisc.c +++ b/gdb/symmisc.c @@ -187,7 +187,7 @@ dump_objfile (struct objfile *objfile) symtab != NULL; symtab = symtab->next) { - printf_filtered ("%s at ", symtab->filename); + printf_filtered ("%s at ", symtab_to_filename (symtab)); gdb_print_host_address (symtab, gdb_stdout); printf_filtered (", "); if (symtab->objfile != objfile) @@ -296,7 +296,8 @@ dump_symtab_1 (struct objfile *objfile, struct symtab *symtab, struct block *b; int depth; - fprintf_filtered (outfile, "\nSymtab for file %s\n", symtab->filename); + fprintf_filtered (outfile, "\nSymtab for file %s\n", + symtab_to_filename (symtab)); if (symtab->dirname) fprintf_filtered (outfile, "Compilation directory is %s\n", symtab->dirname); @@ -737,7 +738,8 @@ maintenance_info_symtabs (char *regexp, int from_tty) printed_objfile_start = 1; } - printf_filtered (" { symtab %s ", symtab->filename); + printf_filtered (" { symtab %s ", + symtab_to_filename (symtab)); wrap_here (" "); printf_filtered ("((struct symtab *) %s)\n", host_address_to_string (symtab)); diff --git a/gdb/symtab.c b/gdb/symtab.c index 2540fe8..87e71ab 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -196,7 +196,9 @@ iterate_over_some_symtabs (const char *name, for (s = first; s != NULL && s != after_last; s = s->next) { - if (compare_filenames_for_search (s->filename, name)) + const char *fullname = symtab_to_fullname (s); + + if (compare_filenames_for_search (fullname, name)) { if (callback (s, data)) return 1; @@ -205,7 +207,7 @@ iterate_over_some_symtabs (const char *name, /* Before we invoke realpath, which can get expensive when many files are involved, do a quick comparison of the basenames. */ if (! basenames_may_differ - && FILENAME_CMP (base_name, lbasename (s->filename)) != 0) + && FILENAME_CMP (base_name, lbasename (s->filename_)) != 0) continue; /* If the user gave us an absolute path, try to find the file in @@ -213,28 +215,38 @@ iterate_over_some_symtabs (const char *name, if (full_path != NULL) { - const char *fp = symtab_to_fullname (s); + char *fp = xfullpath (fullname); + struct cleanup *cleanups = make_cleanup (xfree, fp); gdb_assert (IS_ABSOLUTE_PATH (full_path)); - if (FILENAME_CMP (full_path, fp) == 0) + if (FILENAME_CMP (fp, full_path) == 0 + || compare_filenames_for_search (fp, name)) { if (callback (s, data)) - return 1; + { + do_cleanups (cleanups); + return 1; + } } + do_cleanups (cleanups); } if (real_path != NULL) { - const char *fullname = symtab_to_fullname (s); char *rp = gdb_realpath (fullname); + struct cleanup *cleanups = make_cleanup (xfree, rp); gdb_assert (IS_ABSOLUTE_PATH (real_path)); - make_cleanup (xfree, rp); - if (FILENAME_CMP (real_path, rp) == 0) + if (FILENAME_CMP (rp, real_path) == 0 + || compare_filenames_for_search (rp, name)) { if (callback (s, data)) - return 1; + { + do_cleanups (cleanups); + return 1; + } } + do_cleanups (cleanups); } } @@ -2524,8 +2536,8 @@ find_line_symtab (struct symtab *symtab, int line, ALL_OBJFILES (objfile) { if (objfile->sf) - objfile->sf->qf->expand_symtabs_with_filename (objfile, - symtab->filename); + objfile->sf->qf->expand_symtabs_with_fullname (objfile, + symtab_to_fullname (symtab)); } ALL_SYMTABS (objfile, s) @@ -2533,8 +2545,6 @@ find_line_symtab (struct symtab *symtab, int line, struct linetable *l; int ind; - if (FILENAME_CMP (symtab->filename, s->filename) != 0) - continue; if (FILENAME_CMP (symtab->fullname, symtab_to_fullname (s)) != 0) continue; l = LINETABLE (s); @@ -4659,9 +4669,6 @@ maybe_add_partial_symtab_filename (const char *filename, const char *fullname, struct cleanup *back_to; char *fullname_shortened, *fullname_shortener, *fullname_min; - if (fullname == NULL) - fullname = filename; - if (not_interesting_fname (filename)) return; if (filename_seen (data->filename_seen_cache, fullname, 1)) @@ -4723,10 +4730,18 @@ make_source_files_completion_list (char *text, char *word) ALL_SYMTABS (objfile, s) { - /* FIXME: gdb_realpath is not used here. */ const char *fullname = symtab_to_fullname (s); hooks/post-receive -- Repository for Project Archer.