This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v2 5/6] Add support for LWP-based threads on FreeBSD.
- From: John Baldwin <jhb at freebsd dot org>
- To: Pedro Alves <palves at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Fri, 15 Jan 2016 15:51:29 -0800
- Subject: Re: [PATCH v2 5/6] Add support for LWP-based threads on FreeBSD.
- Authentication-results: sourceware.org; auth=none
- References: <1452721551-657-1-git-send-email-jhb at FreeBSD dot org> <1452721551-657-6-git-send-email-jhb at FreeBSD dot org> <5697BEE3 dot 3020603 at redhat dot com>
On Thursday, January 14, 2016 03:29:39 PM Pedro Alves wrote:
> On 01/13/2016 09:45 PM, John Baldwin wrote:
>
> > +
> > +static int
> > +fbsd_thread_alive (struct target_ops *ops, ptid_t ptid)
> > +{
> > + if (ptid_lwp_p (ptid))
> > + {
> > + struct ptrace_lwpinfo pl;
> > +
> > + if (ptrace (PT_LWPINFO, ptid_get_lwp (ptid), (caddr_t)&pl, sizeof pl)
> > + == -1)
>
> Space after cast.
Fixed here and throughout. My previous changes to add fork following
include some of these as well. I can clean those up in a separate
followup change after this series.
> > +#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME
> > +/* Return the name assigned to a thread by an application. Returns
> > + the string in a static buffer. */
> > +
> > +static const char *
> > +fbsd_thread_name (struct target_ops *self, struct thread_info *thr)
> > +{
> > + struct ptrace_lwpinfo pl;
> > + struct kinfo_proc kp;
> > + int pid = ptid_get_pid (thr->ptid);
> > + long lwp = ptid_get_lwp (thr->ptid);
> > + static char buf[64];
>
> Is this the kernel-side size limit? Worth it of a define/comment.
> Mainly looking at the xsnprintf below and wondering whether
> a we could see a longer name and thus cause gdb to internal error.
Ah, I had not realized that was the reason for xsnprintf() vs snprintf().
The kernel returns a fixed-sized buffer, so I have updated the code to use
'static char buf[sizeof pl.pl_tdname + 1];' which should always be large
enough.
> > +/* Provide a prototype to silence -Wmissing-prototypes. */
> > +extern initialize_file_ftype _initialize_fbsd_nat;
> > +
> > +void
> > +_initialize_fbsd_nat (void)
> > +{
> > +#ifdef PT_LWPINFO
> > + add_setshow_boolean_cmd ("fbsd-lwp", class_maintenance,
> > + &debug_fbsd_lwp, _("\
> > +Set debugging of FreeBSD lwp module."), _("\
> > +Show debugging of FreeBSD lwp module."), _("\
> > +Enables printf debugging output."),
> > + NULL,
> > + NULL,
>
> Please implement a show callback, for i18n.
Done.
I've also added entries to NEWS.
--
John Baldwin