From 3e5ef9a4de7919971130f7f2ca3052898a069e76 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Sun, 25 Mar 2018 18:02:43 +0100 Subject: [PATCH] eval.c: reverse minsym and sym I noticed that in evaluate_funcall, where we handle OP_VAR_MSYM_VALUE/OP_VAR_VALUE to figure out the symbol's name gets the minimal_symbol/symbol backwards. Happens to be harmless in practice because the symbol name is recorded in the common initial sequence (in the general_symbol_info field). gdb/ChangeLog: 2018-03-25 Pedro Alves * eval.c (evaluate_funcall): Swap OP_VAR_MSYM_VALUE/OP_VAR_VALUE if then/else bodies in var_func_name extraction. --- gdb/ChangeLog | 5 +++++ gdb/eval.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d9d408edef8..57f4f77c8fc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-03-25 Pedro Alves + + * eval.c (evaluate_funcall): Swap OP_VAR_MSYM_VALUE/OP_VAR_VALUE + if then/else bodies in var_func_name extraction. + 2018-03-23 Weimin Pan * minsyms.c (lookup_minimal_symbol_and_objfile): Use diff --git a/gdb/eval.c b/gdb/eval.c index b2032c35f1d..021503e9dd9 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -1039,13 +1039,13 @@ evaluate_funcall (type *expect_type, expression *exp, int *pos, { if (op == OP_VAR_MSYM_VALUE) { - symbol *sym = exp->elts[*pos + 2].symbol; - var_func_name = SYMBOL_PRINT_NAME (sym); + minimal_symbol *msym = exp->elts[*pos + 2].msymbol; + var_func_name = MSYMBOL_PRINT_NAME (msym); } else if (op == OP_VAR_VALUE) { - minimal_symbol *msym = exp->elts[*pos + 2].msymbol; - var_func_name = MSYMBOL_PRINT_NAME (msym); + symbol *sym = exp->elts[*pos + 2].symbol; + var_func_name = SYMBOL_PRINT_NAME (sym); } argvec[0] = evaluate_subexp_with_coercion (exp, pos, noside); -- 2.30.2