Re: [PATCH v2 5/6] Add support for LWP-based threads on FreeBSD.

John Baldwin
2016-01-15T23:54:30Z

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