/* GDB-specific functions for operating on agent expressions.
- Copyright (C) 1998-2019 Free Software Foundation, Inc.
+ Copyright (C) 1998-2020 Free Software Foundation, Inc.
This file is part of GDB.
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
-
-/* Local non-gdb includes. */
-#include "arch-utils.h"
-#include "ax-gdb.h"
+#include "symtab.h"
+#include "symfile.h"
+#include "gdbtypes.h"
+#include "language.h"
+#include "value.h"
+#include "expression.h"
+#include "command.h"
+#include "gdbcmd.h"
+#include "frame.h"
+#include "target.h"
#include "ax.h"
+#include "ax-gdb.h"
#include "block.h"
+#include "regcache.h"
+#include "user-regs.h"
+#include "dictionary.h"
#include "breakpoint.h"
-#include "c-lang.h"
-#include "cli/cli-utils.h"
-#include "command.h"
-#include "common/format.h"
+#include "tracepoint.h"
#include "cp-support.h"
-#include "dictionary.h"
-#include "expression.h"
-#include "frame.h"
-#include "gdbcmd.h"
-#include "gdbtypes.h"
-#include "language.h"
+#include "arch-utils.h"
+#include "cli/cli-utils.h"
#include "linespec.h"
#include "location.h"
#include "objfiles.h"
-#include "regcache.h"
-#include "symfile.h"
-#include "symtab.h"
-#include "target.h"
-#include "tracepoint.h"
#include "typeprint.h"
-#include "user-regs.h"
#include "valprint.h"
-#include "value.h"
+#include "c-lang.h"
+
+#include "gdbsupport/format.h"
/* To make sense of this file, you should read doc/agentexpr.texi.
Then look at the types and enums in ax-gdb.h. For the code itself,
case LOC_TYPEDEF:
error (_("Cannot compute value of typedef `%s'."),
- SYMBOL_PRINT_NAME (var));
+ var->print_name ());
break;
case LOC_BLOCK:
case LOC_UNRESOLVED:
{
struct bound_minimal_symbol msym
- = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (var), NULL, NULL);
+ = lookup_minimal_symbol (var->linkage_name (), NULL, NULL);
if (!msym.minsym)
- error (_("Couldn't resolve symbol `%s'."), SYMBOL_PRINT_NAME (var));
+ error (_("Couldn't resolve symbol `%s'."), var->print_name ());
/* Push the address of the variable. */
ax_const_l (ax, BMSYMBOL_VALUE_ADDRESS (msym));
default:
error (_("Cannot find value of botched symbol `%s'."),
- SYMBOL_PRINT_NAME (var));
+ var->print_name ());
break;
}
}
if (value->optimized_out)
error (_("`%s' has been optimized out, cannot use"),
- SYMBOL_PRINT_NAME (sym.symbol));
+ sym.symbol->print_name ());
return 1;
}
if (value->optimized_out)
error (_("`%s' has been optimized out, cannot use"),
- SYMBOL_PRINT_NAME ((*pc)[2].symbol));
+ (*pc)[2].symbol->print_name ());
}
else
gen_msym_var_ref (ax, value, (*pc)[2].msymbol, (*pc)[1].objfile);
gen_expr (exp, pc, ax, &value3);
gen_usual_unary (ax, &value3);
ax_label (ax, end, ax->len);
- /* This is arbitary - what if B and C are incompatible types? */
+ /* This is arbitrary - what if B and C are incompatible types? */
value->type = value2.type;
value->kind = value2.kind;
break;
if (value->optimized_out)
error (_("`%s' has been optimized out, cannot use"),
- SYMBOL_PRINT_NAME ((*pc)[2].symbol));
+ (*pc)[2].symbol->print_name ());
if (TYPE_CODE (value->type) == TYPE_CODE_ERROR)
- error_unknown_type (SYMBOL_PRINT_NAME ((*pc)[2].symbol));
+ error_unknown_type ((*pc)[2].symbol->print_name ());
(*pc) += 4;
break;
gen_msym_var_ref (ax, value, (*pc)[2].msymbol, (*pc)[1].objfile);
if (TYPE_CODE (value->type) == TYPE_CODE_ERROR)
- error_unknown_type (MSYMBOL_PRINT_NAME ((*pc)[2].msymbol));
+ error_unknown_type ((*pc)[2].msymbol->linkage_name ());
(*pc) += 4;
break;
b = block_for_pc (ax->scope);
func = block_linkage_function (b);
- lang = language_def (SYMBOL_LANGUAGE (func));
+ lang = language_def (func->language ());
sym = lookup_language_this (lang, b).symbol;
if (!sym)
if (value->optimized_out)
error (_("`%s' has been optimized out, cannot use"),
- SYMBOL_PRINT_NAME (sym));
+ sym->print_name ());
(*pc) += 2;
}
{
struct linespec_result canonical;
- exp = skip_spaces (exp);
-
event_location_up location
= new_linespec_location (&exp, symbol_name_match_type::WILD);
decode_line_full (location.get (), DECODE_LINE_FUNFIRSTLINE, NULL,
- (struct symtab *) NULL, 0, &canonical,
+ NULL, 0, &canonical,
NULL, NULL);
exp = skip_spaces (exp);
if (exp[0] == ',')