X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fax-gdb.c;h=82e095367aabc64f9996f8120cec32cd8265e65c;hb=67f3407ffbf8f43d93f0c9b2d7e26e767ca5fb53;hp=b00806fd0b7a90509c2327cf4b3c4ff16b17fef2;hpb=0caa462c1636049cfb05fb44f1fd104c65e6d1f7;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c index b00806fd0b..82e095367a 100644 --- a/gdb/ax-gdb.c +++ b/gdb/ax-gdb.c @@ -1599,8 +1599,14 @@ gen_expr (union exp_element **pc, struct agent_expr *ax, case OP_REGISTER: { - int reg = (int) (*pc)[1].longconst; - (*pc) += 3; + const char *name = &(*pc)[2].string; + int reg; + (*pc) += 4 + BYTES_TO_EXP_ELEM ((*pc)[1].longconst + 1); + reg = frame_map_name_to_regnum (deprecated_safe_get_selected_frame (), + name, strlen (name)); + if (reg == -1) + internal_error (__FILE__, __LINE__, + _("Register $%s not available"), name); value->kind = axs_lvalue_register; value->u.reg = reg; value->type = register_type (current_gdbarch, reg);