This is the mail archive of the gdb-patches@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: MI: Another -var-update bug? [PATCH]


 > This patch introduces this for me:
 > 
 >         FAIL: gdb.mi/mi-var-cp.exp: update RX (3)
 > 
 > Do you get this failure to? If yes, can you please fix it?
 > If no, let me know and I'll investigate.

I don't get this failure.

 > > /* FIXME: select_frame could fail */
 > > ! ? ? ? if (fi)
 > > ! ??????{
 > > ! ?????? ?CORE_ADDR pc = get_frame_pc (fi);
 > > ! ?????? ?if (pc < ?BLOCK_START (var->root->valid_block) ||
 > > ! ?????? ? ? ?pc >= BLOCK_END (var->root->valid_block))
 > > ! ?????? ? ?within_scope = 0;
 > > ! ?????? ?select_frame (fi);
 > > ! ??????}
 > 
 > The code later in this function is only executed if "within_scope" is
 > true. Would it be better to call select_frame only if within_scope is
 > set to true, like this:
 > 
 >          if (pc <  BLOCK_START (var->root->valid_block) ||
 >              pc >= BLOCK_END (var->root->valid_block))
 >           within_scope = 0;
 >         else
 >           select_frame (fi);

Yes, it looks like the call to select_frame is not needed when the variable is
out of scope.  Daniel also suggested removing the call to reinit_frame_cache.

-- 
Nick                                           http://www.inet.net.nz/~nickrob


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