github.com/cnboonhan/delve@v0.0.0-20230908061759-363f2388c2fb/pkg/proc/gdbserial/gdbserver_unix.go (about)

     1  //go:build linux || darwin || freebsd
     2  // +build linux darwin freebsd
     3  
     4  package gdbserial
     5  
     6  import (
     7  	"os/signal"
     8  	"syscall"
     9  
    10  	"golang.org/x/sys/unix"
    11  )
    12  
    13  func sysProcAttr(foreground bool) *syscall.SysProcAttr {
    14  	return &syscall.SysProcAttr{Setpgid: true, Pgid: 0, Foreground: foreground}
    15  }
    16  
    17  func foregroundSignalsIgnore() {
    18  	signal.Ignore(syscall.SIGTTOU, syscall.SIGTTIN)
    19  }
    20  
    21  func tcsetpgrp(fd uintptr, pid int) error {
    22  	pgid, _ := syscall.Getpgid(pid)
    23  	if pid == pgid {
    24  		return unix.IoctlSetPointerInt(int(fd), unix.TIOCSPGRP, pid)
    25  	}
    26  	return nil
    27  }