aboutsummaryrefslogtreecommitdiff
path: root/gdb/source.h
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-06-14 22:16:52 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-06-15 21:39:04 +0100
commit00df30ae1ea6db8f3693cad8a499f55f1d66e913 (patch)
tree39181f1204ddee4a04f5768a42271742da31bc59 /gdb/source.h
parentafda45a206f83389782a400f86668714400a1cb7 (diff)
downloadgdb-00df30ae1ea6db8f3693cad8a499f55f1d66e913.zip
gdb-00df30ae1ea6db8f3693cad8a499f55f1d66e913.tar.gz
gdb-00df30ae1ea6db8f3693cad8a499f55f1d66e913.tar.bz2
gdb: New function to open source file and compute line charpos data
Every place that a symtab's line_charpos data is loaded always follows the same pattern, so create a new function to contain this logic and make use of it throughout GDB. There should be no user visible changes after this commit. gdb/ChangeLog: * source-cache.c (source_cache::get_plain_source_lines): Use open_source_file_with_line_charpos instead of just open_source_file, remove call to find_source_lines. (source_cache::get_source_lines): Likewise. * source.c (find_source_lines): Make static. (get_filename_and_charpos): Renamed into... (open_source_file_with_line_charpos): ..this along with changes to return a scoped_fd, and some other minor clean ups. (identify_source_line): Use open_source_file_with_line_charpos. (search_command_helper): Use open_source_file_with_line_charpos instead of just open_source_file, remove call to find_source_lines. * source.h (open_source_file_with_line_charpos): Declare new function. (find_source_lines): Delete declaration.
Diffstat (limited to 'gdb/source.h')
-rw-r--r--gdb/source.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/gdb/source.h b/gdb/source.h
index f1b5f6e..7ea826a 100644
--- a/gdb/source.h
+++ b/gdb/source.h
@@ -76,6 +76,11 @@ extern scoped_fd find_and_open_source (const char *filename,
negative number for error. */
extern scoped_fd open_source_file (struct symtab *s);
+/* Open a source file given a symtab S (by calling open_source_file), then
+ ensure the line_charpos data is initialised for symtab S before
+ returning. */
+extern scoped_fd open_source_file_with_line_charpos (struct symtab *s);
+
extern gdb::unique_xmalloc_ptr<char> rewrite_source_path (const char *path);
extern const char *symtab_to_fullname (struct symtab *s);
@@ -84,12 +89,6 @@ extern const char *symtab_to_fullname (struct symtab *s);
filename. It depends on 'set filename-display' value. */
extern const char *symtab_to_filename_for_display (struct symtab *symtab);
-/* Create and initialize the table S->line_charpos that records the
- positions of the lines in the source file, which is assumed to be
- open on descriptor DESC. All set S->nlines to the number of such
- lines. */
-extern void find_source_lines (struct symtab *s, int desc);
-
/* Return the first line listed by print_source_lines. Used by
command interpreters to request listing from a previous point. If
0, then no source lines have yet been listed since the last time