This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [MI non-stop 10/11] Skip varobj in running threads.
- From: Daniel Jacobowitz <drow at false dot org>
- To: Vladimir Prus <vladimir at codesourcery dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Fri, 11 Jul 2008 09:53:35 -0400
- Subject: Re: [MI non-stop 10/11] Skip varobj in running threads.
- References: <200806282100.06214.vladimir@codesourcery.com>
On Sat, Jun 28, 2008 at 09:00:06PM +0400, Vladimir Prus wrote:
>
> If a variable object is bound to a specific thread, and we're doing
>
> -var-update *
>
> and varobj's thread is running, we cannot update varobj -- so we skip it.
> Will commit when core non-stop is in.
I think this needs to go in the manual. Would it be helpful to
indicate to the front end that a variable could not be updated due to
a running thread?
If a varobj is bound to a particular thread that usually means it's
bound to a particular frame, right? In which case reading it while
the target is running doesn't make (much) sense, so there's nothing
target specific about this.
> + if (thread_id == 0 && is_executing (inferior_ptid))
> + thread_running = 1;
> + else if (thread_id > 0)
> + {
> + struct thread_info *tp = find_thread_id (thread_id);
> + if (tp)
> + thread_running = is_running (tp->ptid);
> + }
Why is_running in one place and is_executing in the other?
Should we try reading from something besides inferior_ptid for unbound
varobjs?
--
Daniel Jacobowitz
CodeSourcery