2003-01-08 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Wed, 8 Jan 2003 22:40:18 +0000 (22:40 +0000)
committerDavid Carlton <carlton@bactrian.org>
Wed, 8 Jan 2003 22:40:18 +0000 (22:40 +0000)
* linespec.c (decode_line_1): Move code into decode_variable.
(decode_variable): New function.

gdb/ChangeLog
gdb/linespec.c

index 7fc24a16b934adbe9b661cba719cea98d86373c5..9541dcfd3de5533ffd56b169be54a1a24e3d6fc3 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-08  David Carlton  <carlton@math.stanford.edu>
+
+       * linespec.c (decode_line_1): Move code into decode_variable.
+       (decode_variable): New function.
+
 2003-01-08  Andrew Cagney  <ac131313@redhat.com>
 
        * mn10300-tdep.c (analyze_dummy_frame): Fix typo.
index a6af5d756f95fb15d71381ba5d5c611a37ca11b9..942a5ac0bb7afbe4f46ad8640c821f6fd79687c8 100644 (file)
@@ -87,6 +87,11 @@ static struct symtabs_and_lines decode_dollar (char *copy,
                                               char ***canonical,
                                               struct symtab *s);
 
+static struct symtabs_and_lines decode_variable (char *copy,
+                                                int funfirstline,
+                                                char ***canonical,
+                                                struct symtab *s);
+
 static struct
 symtabs_and_lines symbol_found (int funfirstline,
                                char ***canonical,
@@ -558,11 +563,6 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
   char *q;
   struct symtab *s = NULL;
 
-  struct symbol *sym;
-  /* The symtab that SYM was found in.  */
-  struct symtab *sym_symtab;
-
-  struct minimal_symbol *msymbol;
   char *copy;
   /* This is NULL if there are no parens in *ARGPTR, or a pointer to
      the closing parenthesis if there are parens.  */
@@ -713,24 +713,7 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
   /* Look up that token as a variable.
      If file specified, use that file's per-file block to start with.  */
 
-  sym = lookup_symbol (copy,
-                      (s ? BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK)
-                       : get_selected_block (0)),
-                      VAR_NAMESPACE, 0, &sym_symtab);
-
-  if (sym != NULL)
-    return symbol_found (funfirstline, canonical, copy, sym, s, sym_symtab);
-
-  msymbol = lookup_minimal_symbol (copy, NULL, NULL);
-
-  if (msymbol != NULL)
-    return minsym_found (funfirstline, msymbol);
-
-  if (!have_full_symbols () &&
-      !have_partial_symbols () && !have_minimal_symbols ())
-    error ("No symbol table is loaded.  Use the \"file\" command.");
-
-  error ("Function \"%s\" not defined.", copy);
+  return decode_variable (copy, funfirstline, canonical, s);
 }
 
 \f
@@ -1387,6 +1370,42 @@ decode_dollar (char *copy, int funfirstline, struct symtab *default_symtab,
   return values;
 }
 
+\f
+
+/* Decode a linespec that's a variable.  If S is non-NULL,
+   look in that symtab's static variables first.  */
+
+static struct symtabs_and_lines
+decode_variable (char *copy, int funfirstline, char ***canonical,
+                struct symtab *s)
+{
+  struct symbol *sym;
+  /* The symtab that SYM was found in.  */
+  struct symtab *sym_symtab;
+
+  struct minimal_symbol *msymbol;
+
+  sym = lookup_symbol (copy,
+                      (s ? BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK)
+                       : get_selected_block (0)),
+                      VAR_NAMESPACE, 0, &sym_symtab);
+
+  if (sym != NULL)
+    return symbol_found (funfirstline, canonical, copy, sym, s, sym_symtab);
+
+  msymbol = lookup_minimal_symbol (copy, NULL, NULL);
+
+  if (msymbol != NULL)
+    return minsym_found (funfirstline, msymbol);
+
+  if (!have_full_symbols () &&
+      !have_partial_symbols () && !have_minimal_symbols ())
+    error ("No symbol table is loaded.  Use the \"file\" command.");
+
+  error ("Function \"%s\" not defined.", copy);
+}
+
+
 \f
 
 /* Now come some functions that are called from multiple places within