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


Yes, that is complete output with no commands in between.
I was able to replicate it by hand (without my front end)

-break-insert *0x102cea88
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x102cea88",at="<ATL_slaswp+184>",times="0"}
(gdb)
-exec-run
^running
(gdb)
*stopped,reason="breakpoint-hit",bkptno="1",thread-id="0",frame={addr="0x102cea88",func="ATL_slaswp",args=[]}
(gdb)
-var-create r1 * $r1
^done,name="r1",numchild="0",value="2146255728",type="uint32_t"
(gdb)
-var-assign r1 1
&"mi_cmd_var_assign: Could not assign expression to variable object\n"
^error,msg="mi_cmd_var_assign: Could not assign expression to variable object"
(gdb)

I am currently running on powerpc.  I did not get a chance to try this
on x86, any ideas how can we debug without porting to x86?



On 10/25/07, Vladimir Prus <ghost@cs.msu.su> wrote:
> 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
>
>
>


-- 
=====================================================
Grzegorz Cieslewski
Research Assistant
High-performance Computing & Simulation (HCS) Research Laboratory
University of Florida, Dept. of Electrical and Computer Engineering
330 Benton Hall, Gainesville, FL, 32611-6200
Phone: (352) 392-9041
Email: cieslewski@hcs.ufl.edu
Web: www.hcs.ufl.edu
=====================================================


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