Index: gdb/macrotab.h |
diff --git a/gdb/macrotab.h b/gdb/macrotab.h |
index 92f165611dea51843a5500734d13fc39e1baaaeb..075dfd90fa52289b52e1246c056a14b0ead58007 100644 |
--- a/gdb/macrotab.h |
+++ b/gdb/macrotab.h |
@@ -1,5 +1,5 @@ |
/* Interface to C preprocessor macro tables for GDB. |
- Copyright (C) 2002, 2007-2012 Free Software Foundation, Inc. |
+ Copyright (C) 2002-2013 Free Software Foundation, Inc. |
Contributed by Red Hat, Inc. |
This file is part of GDB. |
@@ -125,7 +125,9 @@ struct macro_source_file |
a part of. */ |
struct macro_table *table; |
- /* A source file --- possibly a header file. */ |
+ /* A source file --- possibly a header file. This filename is relative to |
+ the compilation directory (table->comp_dir), it exactly matches the |
+ symtab->filename content. */ |
const char *filename; |
/* The location we were #included from, or zero if we are the |
@@ -152,7 +154,8 @@ struct macro_source_file |
xmalloc if OBSTACK is zero. Use BCACHE to store all macro names, |
arguments, definitions, and anything else that might be the same |
amongst compilation units in an executable file; if BCACHE is zero, |
- don't cache these things. |
+ don't cache these things. COMP_DIR optionally contains the compilation |
+ directory of all files for this macro table. |
Note that, if either OBSTACK or BCACHE are non-zero, then removing |
information from the table may leak memory. Neither obstacks nor |
@@ -164,7 +167,8 @@ struct macro_source_file |
the same source location (although 'gcc -DFOO -UFOO -DFOO=2' does |
do that in GCC 4.1.2.). */ |
struct macro_table *new_macro_table (struct obstack *obstack, |
- struct bcache *bcache); |
+ struct bcache *bcache, |
+ const char *comp_dir); |
/* Free TABLE, and any macro definitions, source file structures, |
@@ -347,5 +351,14 @@ void macro_for_each_in_scope (struct macro_source_file *file, int line, |
macro_callback_fn fn, |
void *user_data); |
+/* Return FILE->filename with possibly prepended compilation directory name. |
+ This is raw concatenation without the "set substitute-path" and gdb_realpath |
+ applications done by symtab_to_fullname. Returned string must be freed by |
+ xfree. |
+ |
+ THis function ignores the "set filename-display" setting. Its default |
+ setting is "relative" which is backward compatible but the former behavior |
+ of macro filenames printing was "absolute". */ |
+extern char *macro_source_fullname (struct macro_source_file *file); |
#endif /* MACROTAB_H */ |