summaryrefslogtreecommitdiff
path: root/gdb/source.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/source.c')
-rw-r--r--gdb/source.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/gdb/source.c b/gdb/source.c
index e5d99d3db09..5c88a55db81 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -152,21 +152,22 @@ get_current_source_symtab_and_line (void)
cursal.symtab = current_source_symtab;
cursal.line = current_source_line;
+ cursal.pc = 0;
+ cursal.end = 0;
return cursal;
}
-/* Return the current source file for listing and next line to list.
- If a file is not set, try and get a default.
+/* If the current source file for listing is not set, try and get a default.
+ Usually called before get_current_source_symtab_and_line() is called.
It may err out if a default cannot be determined.
- Depending on where it is called, it can recurse as the process of
- determining a new default may call the caler!
- Use get_current_source_symtab_and_line instead to get whatever
- we have without erroring out or trying to get a default.
- NOTE: The returned sal pc and end fields are not valid. */
+ We must be cautious about where it is called, as it can recurse as the
+ process of determining a new default may call the caller!
+ Use get_current_source_symtab_and_line only to get whatever
+ we have without erroring out or trying to get a default. */
-struct symtab_and_line
-get_current_or_default_source_symtab_and_line (void)
+void
+set_default_source_symtab_and_line (void)
{
struct symtab_and_line cursal;
@@ -176,19 +177,15 @@ get_current_or_default_source_symtab_and_line (void)
/* Pull in a current source symtab if necessary */
if (current_source_symtab == 0)
select_source_symtab (0);
-
- cursal.symtab = current_source_symtab;
- cursal.line = current_source_line;
-
- return cursal;
}
/* Return the current default file for listing and next line to list
(the returned sal pc and end fields are not valid.)
- and set the surrent default to whatever is in SAL */
+ and set the current default to whatever is in SAL.
+ NOTE: The returned sal pc and end fields are not valid. */
struct symtab_and_line
-set_current_source_symtab_and_line (struct symtab_and_line *sal)
+set_current_source_symtab_and_line (const struct symtab_and_line *sal)
{
struct symtab_and_line cursal;
@@ -197,6 +194,8 @@ set_current_source_symtab_and_line (struct symtab_and_line *sal)
current_source_symtab = sal->symtab;
current_source_line = sal->line;
+ cursal.pc = 0;
+ cursal.end = 0;
return cursal;
}