lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201208161249.35008.arnd@arndb.de>
Date:	Thu, 16 Aug 2012 12:49:34 +0000
From:	Arnd Bergmann <arnd@...db.de>
To:	Will Deacon <will.deacon@....com>
Cc:	Catalin Marinas <Catalin.Marinas@....com>,
	"linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	ulrich.weigand@...aro.rg
Subject: Re: [PATCH v2 23/31] arm64: Debugging support

On Thursday 16 August 2012, Will Deacon wrote:
> On Wed, Aug 15, 2012 at 04:07:36PM +0100, Arnd Bergmann wrote:
> > On Tuesday 14 August 2012, Catalin Marinas wrote:

> > From what I can tell, there is no support for 32 bit processes debugging
> > 64 bit ones. Is that something you plan to add in the future, or do you
> > consider that out of scope? In either case, a comment would be helpful.
> 
> That can't really work because the debugger won't be able to manipulate
> child pointers properly without us adding a new ptrace interface (and then,
> I still wonder about how feasible it really is). I can add a comment.

You can already have a 32 bit gdb that is able to do remote debugging of
64 bit processes using a gdb server process. I guess it wouldn't be
too strange to have a ptrace extension to allow the native case as well.
I agree it's not a high priority.

> > > +long arch_ptrace(struct task_struct *child, long request,
> > > +		 unsigned long addr, unsigned long data)
> > > +{
> > > +	int ret;
> > > +	unsigned long *datap = (unsigned long __user *)data;
> > > +
> > > +	switch (request) {
> > > +		case PTRACE_GET_THREAD_AREA:
> > > +			ret = put_user(child->thread.tp_value, datap);
> > > +			break;
> > > +
> > > +#ifdef CONFIG_HAVE_HW_BREAKPOINT
> > > +		case PTRACE_GETHBPREGS:
> > > +			ret = ptrace_gethbpregs(child, addr, datap);
> > > +			break;
> > > +
> > > +		case PTRACE_SETHBPREGS:
> > > +			ret = ptrace_sethbpregs(child, addr, datap);
> > > +			break;
> > > +#endif
> > > +
> > > +		default:
> > > +			ret = ptrace_request(child, request, addr, data);
> > > +			break;
> > > +	}
> > > +
> > > +	return ret;
> > > +}
> > 
> > Is there a reaons why these are not regsets but have their own ptrace
> > commands? I believe new architectures should generally not add ptrace
> > commands any more.
> 
> I could probably add some regset wrappers about the hbp accessors (which we
> have to keep for the compat ptrace interface). I'll have a think as it might
> even make sense to have different regsets for breakpoints and watchpoints.
> 
> As for the the tls, is it worth having a regset with only one register?

Better ask the gdb folks. I'm adding Uli to Cc, maybe he has some insight.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ