From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3380 invoked by alias); 30 May 2012 20:43:59 -0000 Received: (qmail 3347 invoked by uid 22791); 30 May 2012 20:43:55 -0000 X-SWARE-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 30 May 2012 20:43:38 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q4UKhZAu030423 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 30 May 2012 16:43:35 -0400 Received: from host2.jankratochvil.net (ovpn-116-47.ams2.redhat.com [10.36.116.47]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q4UKhTja018413 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 30 May 2012 16:43:32 -0400 Date: Wed, 30 May 2012 20:43:00 -0000 From: Jan Kratochvil To: markus.t.metzger@intel.com Cc: kettenis@gnu.org, gdb-patches@sourceware.org, markus.t.metzger@gmail.com Subject: Re: [PATCH 09/16] btrace, linux: add linux native btrace target ops Message-ID: <20120530204329.GH20633@host2.jankratochvil.net> References: <1337772151-20265-1-git-send-email-markus.t.metzger@intel.com> <1337772151-20265-10-git-send-email-markus.t.metzger@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1337772151-20265-10-git-send-email-markus.t.metzger@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-05/txt/msg01063.txt.bz2 On Wed, 23 May 2012 13:22:24 +0200, markus.t.metzger@intel.com wrote: > diff --git a/gdb/linux-nat-btrace.c b/gdb/linux-nat-btrace.c > new file mode 100644 > index 0000000..f69fc6f > --- /dev/null > +++ b/gdb/linux-nat-btrace.c > @@ -0,0 +1,86 @@ > +/* Branch trace support for GDB, the GNU debugger. > + > + Copyright (C) 2012 Free Software Foundation, Inc. > + > + Contributed by Intel Corp. . > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#include "linux-nat-btrace.h" > +#include "linux-btrace.h" > +#include "btrace.h" > +#include "target.h" > +#include "gdbarch.h" > +#include "arch-utils.h" > +#include > + > +static int > +linux_nat_push_btrace_record (struct linux_btrace_block *raw, void *arg) > +{ > + VEC (btrace_block_s) **btrace = arg; > + struct btrace_block *block; > + > + if (!raw) > + return EINVAL; > + > + if (!btrace) > + return EINVAL; I did not check now but probably excessive. > + > + block = VEC_safe_push (btrace_block_s, *btrace, NULL); > + if (!block) > + return ENOMEM; Incorrect indentation. > + > + block->begin = raw->begin; > + block->end = raw->end; Do not use alignment/indentation. > + > + return 0; > +} > + > +static VEC (btrace_block_s) * > +linux_nat_read_btrace (struct btrace_target_info *tinfo) > +{ > + VEC (btrace_block_s) *btrace = NULL; > + int errcode; > + > + if (!tinfo) > + { > + errno = EINVAL; > + return NULL; > + } > + if (!tinfo->ptr_bits) > + { > + struct gdbarch *gdbarch = get_current_arch (); Empty line. > + if (gdbarch) > + tinfo->ptr_bits = gdbarch_ptr_bit (gdbarch); > + } > + > + errcode = linux_read_btrace (tinfo, linux_nat_push_btrace_record, &btrace); > + if (errcode) > + warning (_("error while reading branch trace data: %s. " Captitalize "Error". Use two spaces at the end. > + "trace might be incomplete."), safe_strerror (errcode)); > + > + return btrace; > +} > + > +void > +linux_nat_add_btrace_ops (struct target_ops *t) > +{ > + t->to_supports_btrace = linux_supports_btrace; > + t->to_enable_btrace = linux_enable_btrace; > + t->to_disable_btrace = linux_disable_btrace; > + t->to_btrace_has_changed = linux_btrace_has_changed; > + t->to_read_btrace = linux_nat_read_btrace; > +} > diff --git a/gdb/linux-nat-btrace.h b/gdb/linux-nat-btrace.h > new file mode 100644 > index 0000000..cbe9c89 > --- /dev/null > +++ b/gdb/linux-nat-btrace.h > @@ -0,0 +1,28 @@ > +/* Branch trace support for GDB, the GNU debugger. > + > + Copyright (C) 2012 Free Software Foundation, Inc. > + > + Contributed by Intel Corp. . > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#ifndef LINUX_NAT_BTRACE_H > +#define LINUX_NAT_BTRACE_H > + > +struct target_ops; > +extern void linux_nat_add_btrace_ops (struct target_ops *); > + > +#endif /* LINUX_NAT_BTRACE_H */ > -- > 1.7.1 Thanks, Jan