summaryrefslogtreecommitdiff
path: root/gdb/source.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2012-03-01 21:09:16 +0000
committerPedro Alves <palves@redhat.com>2012-03-01 21:09:16 +0000
commit9340a6c0be7b3c4ed008c16c42a9da1350b42c10 (patch)
tree1750c9bab0d1afbf829c120f8de9005c13989579 /gdb/source.h
parente451c4a12fcedc91abcc380fe1941f1e2b5d6cae (diff)
downloadbinutils-gdb-9340a6c0be7b3c4ed008c16c42a9da1350b42c10.tar.gz
2012-03-01 Pedro Alves <palves@redhat.com>
* psymtab.c (find_and_open_source): Delete declaration. * source.c (find_and_open_source): Move comment ... * source.h (find_and_open_source): ... to this new declaration.
Diffstat (limited to 'gdb/source.h')
-rw-r--r--gdb/source.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/source.h b/gdb/source.h
index 3ee8e532bb5..bf9a6889030 100644
--- a/gdb/source.h
+++ b/gdb/source.h
@@ -21,6 +21,29 @@
struct symtab;
+/* This function is capable of finding the absolute path to a
+ source file, and opening it, provided you give it a FILENAME. Both the
+ DIRNAME and FULLNAME are only added suggestions on where to find the file.
+
+ FILENAME should be the filename to open.
+ DIRNAME is the compilation directory of a particular source file.
+ Only some debug formats provide this info.
+ FULLNAME can be the last known absolute path to the file in question.
+ Space for the path must have been malloc'd. If a path substitution
+ is applied we free the old value and set a new one.
+
+ On Success
+ A valid file descriptor is returned (the return value is positive).
+ FULLNAME is set to the absolute path to the file just opened.
+ The caller is responsible for freeing FULLNAME.
+
+ On Failure
+ An invalid file descriptor is returned (the return value is negative).
+ FULLNAME is set to NULL. */
+extern int find_and_open_source (const char *filename,
+ const char *dirname,
+ char **fullname);
+
/* Open a source file given a symtab S. Returns a file descriptor or
negative number for error. */
extern int open_source_file (struct symtab *s);