This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem with setting register value using MI interface


Grzegorz Cieslewski wrote:

> Hi,
> 
> I am trying to write a value to a register using MI2 interface.
> Unfortunately sometimes th -var-assign command fails and gives me
> error.  Does any one know why is that?
> 
> GDB<< -var-create r1 * $r1
> GDB>> ^done,name="r1",numchild="0",value="2140372880",type="uint32_t"
> GDB>> (gdb)
> GDB<< -var-info-type r1
> GDB>> ^done,type="uint32_t"
> GDB>> (gdb)
> GDB<< -var-set-format r1 hexadecimal
> GDB>> ^done,format="hexadecimal"
> GDB>> (gdb)
> GDB<< -var-evaluate-expression r1
> GDB>> ^done,value="0x7f937f90"
> GDB>> (gdb)
> GDB<< -var-info-type r1
> GDB>> ^done,type="uint32_t"
> GDB>> (gdb)
> GDB<< -var-set-format r1 hexadecimal
> GDB>> ^done,format="hexadecimal"
> GDB>> (gdb)
> GDB<< -var-assign r1 1
> GDB>> &"mi_cmd_var_assign: Could not assign expression to variable
> object\n" GDB>> ^error,msg="mi_cmd_var_assign: Could not assign expression
> to variable object"

Is this a complete output, with no commands in between? Can you reproduce
this on x86, and if so, can you post a complete reproduction recipe?

The only 'error' I immediately see on that code path is this:
        
        if (!frame)
          error (_("Value being assigned to is no longer active."));

in value_assign, but I don't think it can ever fire unless you change frames above.

- Volodya



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]