Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFC] Don't create inferior in tfile target.
Date: Wed, 15 May 2013 15:33:00 -0000	[thread overview]
Message-ID: <5193AAD0.1030808@redhat.com> (raw)
In-Reply-To: <1367631071-20079-1-git-send-email-yao@codesourcery.com>

On 05/04/2013 02:31 AM, Yao Qi wrote:
> In ctf target, we don't create inferior when open ctf trace file,
> however we do it in tfile target.  After read the code for a while, I
> don't see any reason that we need an inferior here.  The code was
> added along with the tfile support patch, and was modified once by
> patch [1]
> 
> I checked out the code on the revision before patch [1] was applied
> bd196e7a61b03f2ea7e5dcb0aecbd49d239d6390 and I am able to reproduce
> the same internal error, However, I am wondering why do we need
> inferior in tfile target.  I removed the code to create inferior in
> tfile_open and remove inferior in tfile_close.  The internal error can
> be fixed also.  I also checked that 'info threads' and 'info
> inferiors' works properly.
> 
> I talked with Stan (he wrote tfile supported code) on this, but we were
> unable to recall the reason in details on creating inferior.  I post
> this patch to remove the code to create inferior in tfile target.
> Comments are welcome.

I have a very vague recollection that it was I who suggested this
in internal reviews at the time, but GDB was a bit different then,
and I don't recall exactly why.  It's possible you might find that
in CS's archives.

The whole tfile/tracepoints model is weird, in that it's hacked
on, and bypasses the whole target stack model.  You get
things like, while inspecting a traceframe (on targets where
threads are a kernel entity), "info threads" lists you the threads
the live target happens to have at the moment.  Same with shared
libraries, etc.  This could/should probably be revisited once
gdb learns about being connected to multiple targets simultaneously.

I was going to say this would break "detach" with tfile
(detach_command checks for null_ptid).  Except "detach" with tfile
doesn't work already -- with target core,
"detach" unloads the core, and I assumed tfile behaved the same.
I think it'd be reasonable if it did.

You didn't mention it explicitly, so I'll ask.
There are probably more commands that treat null_ptid magically.
Could you audit kill, detach, continue, step, etc.
to see if they'll do something reasonable?  Or rather,
could you audit/grep the tree for null_ptid uses?  E.g.,
I see that dcache.c uses null_ptid as magic number, but
probably that doesn't matter for tfile.  There don't seem
to be that many checks for null_ptid, and many are in run
control code, which obviously doesn't apply, so an audit
seems doable.

Thanks,
-- 
Pedro Alves


  reply	other threads:[~2013-05-15 15:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-04  1:31 Yao Qi
2013-05-15 15:33 ` Pedro Alves [this message]
2013-05-16  0:59   ` Stan Shebs
2013-05-24  8:07   ` Yao Qi
2013-05-24 10:43     ` Pedro Alves
2013-05-24 12:28       ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5193AAD0.1030808@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox