NetBSD Problem Report #54590

From martin@duskware.de  Tue Oct  1 12:37:05 2019
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 53F057A1E1
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  1 Oct 2019 12:37:05 +0000 (UTC)
From: martin@NetBSD.org
Reply-To: martin@NetBSD.org
To: gnats-bugs@NetBSD.org
Subject: running binaries from gdb fails
X-Send-Pr-Version: 3.95

>Number:         54590
>Category:       toolchain
>Synopsis:       running binaries from gdb fails
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 01 12:40:02 +0000 2019
>Last-Modified:  Tue Oct 15 18:40:01 +0000 2019
>Originator:     Martin Husemann
>Release:        NetBSD 9.99.15
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD unpluged.duskware.de 9.99.15 NetBSD 9.99.15 (UNPLUGED) #265: Tue Oct 1 13:38:00 CEST 2019 martin@seven-days-to-the-wolves.aprisoft.de:/work/src/sys/arch/evbarm/compile/UNPLUGED evbarm
Architecture: earm
Machine: evbarm
>Description:

Trying to start a binary in the debugger fails:

$ gdb named
GNU gdb (GDB) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "armv7--netbsdelf-eabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from named...
Reading symbols from /usr/libdata/debug//usr/sbin/named.debug...
(gdb) run
Starting program: /usr/sbin/named 
ptrace: Invalid argument.
(gdb) 

Fails for other binaries too (e.g. /bin/ls).

>How-To-Repeat:
s/a

>Fix:
n/a

>Audit-Trail:
From: Martin Husemann <martin@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: kamil@NetBSD.org
Subject: Re: toolchain/54590: running binaries from gdb fails
Date: Tue, 1 Oct 2019 16:30:24 +0000

 Same failure mode on amd64.

 Martin

From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@netbsd.org
Cc: kamil@NetBSD.org
Subject: Re: toolchain/54590: running binaries from gdb fails
Date: Tue, 1 Oct 2019 18:44:32 +0200

 Example ktrace for this issue:

  24228      1 gdb      CALL  execve(0xbfffee18,0xbb8b6070,0xbb89fd00)
  24228      1 gdb      NAMI  "/usr/pkg/bin/tcsh"
  24228      1 gdb      NAMI  "/usr/libexec/ld.elf_so"
  24228      1 tcsh     EMUL  "netbsd"
   7933      1 gdb      RET   __vfork14 24228/0x5ea4
   7933      1 gdb      CALL  __wait450(0x5ea4,0xbfffe18c,0,0)
   7933      1 gdb      RET   __wait450 24228/0x5ea4
   7933      1 gdb      CALL  ptrace(PT_GET_PROCESS_STATE,0x5ea4,0xbfffe190,8)
   7933      1 gdb      RET   ptrace -1 errno 22 Invalid argument

 24228 == 0x5ea4
 and sizeof struct ptrace_state should be == 8.

 So I guess sys_ptrace_common.c:701 strikes and I really don't get how this
 is supposed to work.

 Martin

From: christos@zoulas.com (Christos Zoulas)
To: gnats-bugs@netbsd.org, toolchain-manager@netbsd.org, 
	gnats-admin@netbsd.org, netbsd-bugs@netbsd.org, martin@NetBSD.org
Cc: 
Subject: Re: toolchain/54590: running binaries from gdb fails
Date: Tue, 1 Oct 2019 14:07:26 -0400

 On Oct 1,  4:45pm, martin@duskware.de (Martin Husemann) wrote:
 -- Subject: Re: toolchain/54590: running binaries from gdb fails

 | The following reply was made to PR toolchain/54590; it has been noted by GNATS.
 | 
 | From: Martin Husemann <martin@duskware.de>
 | To: gnats-bugs@netbsd.org
 | Cc: kamil@NetBSD.org
 | Subject: Re: toolchain/54590: running binaries from gdb fails
 | Date: Tue, 1 Oct 2019 18:44:32 +0200
 | 
 |  Example ktrace for this issue:
 |  
 |   24228      1 gdb      CALL  execve(0xbfffee18,0xbb8b6070,0xbb89fd00)
 |   24228      1 gdb      NAMI  "/usr/pkg/bin/tcsh"
 |   24228      1 gdb      NAMI  "/usr/libexec/ld.elf_so"
 |   24228      1 tcsh     EMUL  "netbsd"
 |    7933      1 gdb      RET   __vfork14 24228/0x5ea4
 |    7933      1 gdb      CALL  __wait450(0x5ea4,0xbfffe18c,0,0)
 |    7933      1 gdb      RET   __wait450 24228/0x5ea4
 |    7933      1 gdb      CALL  ptrace(PT_GET_PROCESS_STATE,0x5ea4,0xbfffe190,8)
 |    7933      1 gdb      RET   ptrace -1 errno 22 Invalid argument
 |  
 |  24228 == 0x5ea4
 |  and sizeof struct ptrace_state should be == 8.
 |  
 |  So I guess sys_ptrace_common.c:701 strikes and I really don't get how this
 |  is supposed to work.

 The trap events reported in eventswitch are:

         KASSERT((code == TRAP_CHLD) || (code == TRAP_LWP) ||
 		(code == TRAP_EXEC));

 But the trap events that can be retrieved in get_process_stats are:

             (t->p_sigctx.ps_info._code != TRAP_CHLD &&
 	    t->p_sigctx.ps_info._code != TRAP_LWP)) {

 (TRAP_EXEC is missing)

 christos

From: "Kamil Rytarowski" <kamil@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/54590 CVS commit: src/sys/kern
Date: Tue, 1 Oct 2019 18:44:22 +0000

 Module Name:	src
 Committed By:	kamil
 Date:		Tue Oct  1 18:44:22 UTC 2019

 Modified Files:
 	src/sys/kern: sys_ptrace_common.c

 Log Message:
 Restore the old behavior in PT_GET_PROCESS_STATE

 For !child and !lwp events return zeroed struct ptrace_state.

 There is code that depends on it (GDB).

 Fixes PR toolchain/54590 by martin@


 To generate a diff of this commit:
 cvs rdiff -u -r1.59 -r1.60 src/sys/kern/sys_ptrace_common.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/54590 CVS commit: [netbsd-9] src/sys/kern
Date: Tue, 15 Oct 2019 18:38:40 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Tue Oct 15 18:38:40 UTC 2019

 Modified Files:
 	src/sys/kern [netbsd-9]: sys_ptrace_common.c

 Log Message:
 Pull up following revision(s) (requested by kamil in ticket #313):

 	sys/kern/sys_ptrace_common.c: revision 1.60

 Restore the old behavior in PT_GET_PROCESS_STATE
 For !child and !lwp events return zeroed struct ptrace_state.

 There is code that depends on it (GDB).

 Fixes PR toolchain/54590 by martin@


 To generate a diff of this commit:
 cvs rdiff -u -r1.58.2.2 -r1.58.2.3 src/sys/kern/sys_ptrace_common.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.