Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: "Metzger, Markus T" <markus.t.metzger@intel.com>
Cc: "kettenis@gnu.org" <kettenis@gnu.org>,
	       "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	       "markus.t.metzger@gmail.com" <markus.t.metzger@gmail.com>
Subject: Re: [PATCH 05/16] cli, btrace: add btrace cli
Date: Fri, 01 Jun 2012 18:42:00 -0000	[thread overview]
Message-ID: <20120601184138.GA1957@host2.jankratochvil.net> (raw)
In-Reply-To: <A78C989F6D9628469189715575E55B2307A9F044@IRSMSX102.ger.corp.intel.com>

On Thu, 31 May 2012 17:32:03 +0200, Metzger, Markus T wrote:
> > > +static int
> > > +thread_callback (struct thread_info *tinfo, void *arg)
> >
> > Despite it is static there are some wishes for GDB all the functions should
> > have the filename prefix, therefore btrace_thread_callback here.
> 
> I pity the maintainer of gdb/dwarf2-frame-tailcall.c;-)
> 
> You mentioned this for another patch, already. If this is gdb style, I can
> certainly name my functions accordingly. I just don't see this a lot in
> other gdb files, and it results in odd and quite lengthy names.

Leaving this for comments from others.


> > But enable_btrace should error on its own as I have recommended.
> 
> Will fix once the situation with gdbserver and shared code is clear.

But this part is in gdb/btrace.c, there is 'error' always available.

But I agree gdb/common/ currently cannot use it.


> > > +  if (number_is_in_list (range, tinfo->num))
> > > +    {
> > > +      /* Switching threads makes it easier for targets like kgdb, where 
> > > we
> > need
> > > +         to switch cpus, as well.  */
> > > +      switch_to_thread (tinfo->ptid);
> >
> > In such case it should be switched in the most bottom function.
> 
> I can move it to the enable and disable functions. This will result in a few
> extra switches back to the selected thread when processing a list of
> threads. I hope that's OK.

Yes, I find it better for future fixes of the underlying functions to accept
tinfo/tp/ptid_t.


> I originally did not intend to switch threads, at all. All the btrace
> functions take the thread to operate on as explicit argument.
> 
> When I later added btrace support to kgdb, I realized that I had to switch
> cpu's in order to perform certain operations. I should really do this inside
> kgdb, but it was so much easier just to switch threads in gdb.
> 
> If you're not OK with this, I can remove all the thread switching and look for
> a solution in kgdb.

Yes, it should be fixed kgdb.  I do not know the kgdb codebase, though.


> > > +static void
> > > +cmd_btrace (char *args, int from_tty) {
> > > +  struct thread_info *thread = find_thread_ptid (inferior_ptid);
> > > +  struct btrace_block *trace = NULL;
> > > +  int flags = 0;
> >
> > Use enum.
> 
> Flags is a bit-vector. The enum just provides names for the bits.

It does not matter, you can enumval1 | enumval2 as long as they do not share
any bits.  There is even specific pretty printer support for such case:
commit eb28de4a09f016d3de7caccec781eb70995a4001
http://sourceware.org/bugzilla/show_bug.cgi?id=13281
gdb.python/py-pp-maint.c
+enum flag_enum
+  {
+    FLAG_1 = 1,
+    FLAG_2 = 2,
+    FLAG_3 = 4,
+    ALL = FLAG_1 | FLAG_2 | FLAG_3
+  };


Thanks,
Jan


  reply	other threads:[~2012-06-01 18:42 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-23 11:23 [PATCH 00/16] branch tracing support (resend) markus.t.metzger
2012-05-23 11:24 ` [PATCH 06/16] configure: add check for perf_event header markus.t.metzger
2012-05-30 20:43   ` Jan Kratochvil
2012-05-31 15:34     ` Metzger, Markus T
2012-06-22 20:40       ` Tom Tromey
2012-06-25  8:50         ` Metzger, Markus T
2012-05-23 11:24 ` [PATCH 10/16] btrace, config: enable btrace for 32bit and 64bit linux native markus.t.metzger
2012-05-23 11:24 ` [PATCH 02/16] source: add flags to print_source_lines () markus.t.metzger
2012-05-30 20:41   ` Jan Kratochvil
2012-05-31 15:34     ` Metzger, Markus T
2012-06-22 20:08       ` Tom Tromey
2012-06-25  8:50         ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 08/16] linux, btrace: perf_event based branch tracing markus.t.metzger
2012-05-30 20:43   ` Jan Kratochvil
2012-05-31 15:34     ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 14/16] remote, btrace: add branch trace remote ops markus.t.metzger
2012-05-30 20:44   ` Jan Kratochvil
2012-06-01  8:49     ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 01/16] disas: add precise instructions flag markus.t.metzger
2012-05-23 11:25 ` [PATCH 03/16] source, disasm: optionally prefix source lines with filename markus.t.metzger
2012-05-30 20:41   ` Jan Kratochvil
2012-05-23 11:25 ` [PATCH 13/16] xml, btrace: define btrace xml document style markus.t.metzger
2012-05-30 20:44   ` Jan Kratochvil
2012-06-01  8:39     ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 16/16] gdbserver, linux, btrace: add btrace support for linux-low markus.t.metzger
2012-05-23 11:25 ` [PATCH 15/16] gdbserver, btrace: add generic btrace support markus.t.metzger
2012-05-23 11:25 ` [PATCH 09/16] btrace, linux: add linux native btrace target ops markus.t.metzger
2012-05-30 20:43   ` Jan Kratochvil
2012-05-31 15:34     ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 11/16] test, btrace: add branch trace tests markus.t.metzger
2012-05-30 20:44   ` Jan Kratochvil
2012-06-01 11:37     ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 05/16] cli, btrace: add btrace cli markus.t.metzger
2012-05-30 20:42   ` Jan Kratochvil
2012-05-31 15:33     ` Metzger, Markus T
2012-06-01 18:42       ` Jan Kratochvil [this message]
2012-06-05  9:56         ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 04/16] thread, btrace: add generic branch trace support markus.t.metzger
2012-05-30 20:42   ` Jan Kratochvil
2012-05-31 15:33     ` Metzger, Markus T
2012-05-23 11:26 ` [PATCH 12/16] test, btrace: more branch tracing tests markus.t.metzger
2012-05-23 11:26 ` [PATCH 07/16] configure: autoreconf markus.t.metzger
2012-06-22 20:44   ` Tom Tromey
2012-06-25  8:50     ` Metzger, Markus T
2012-05-25 19:18 ` [PATCH 00/16] branch tracing support (resend) Pedro Alves
2012-05-29 14:31   ` Metzger, Markus T
2012-05-30 14:49     ` Pedro Alves
2012-05-30 15:51       ` Metzger, Markus T
2012-05-30 17:56         ` Pedro Alves
2012-05-31 17:11           ` Metzger, Markus T
2012-06-04  6:46             ` Metzger, Markus T
2012-06-12 11:32           ` Metzger, Markus T
2012-06-12 12:09             ` Jan Kratochvil
2012-06-12 12:23             ` Pedro Alves
2012-06-12 12:25               ` Jan Kratochvil
2012-06-12 13:38                 ` Metzger, Markus T
2012-05-30 20:41 ` Jan Kratochvil
2012-05-31 15:33   ` Metzger, Markus T
2012-06-22 20:31 ` Tom Tromey
2012-06-25  8:50   ` Metzger, Markus T
2012-07-02  8:29     ` Metzger, Markus T
  -- strict thread matches above, loose matches on Subject: below --
2012-05-10 15:15 [PATCH 00/16] branch tracing support markus.t.metzger
2012-05-10 15:16 ` [PATCH 05/16] cli, btrace: add btrace cli markus.t.metzger
2012-05-10 16:44   ` Eli Zaretskii
2012-05-11  8:17     ` Metzger, Markus T

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=20120601184138.GA1957@host2.jankratochvil.net \
    --to=jan.kratochvil@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kettenis@gnu.org \
    --cc=markus.t.metzger@gmail.com \
    --cc=markus.t.metzger@intel.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