Merge pull request #1461 from xiaobo55x:ptrace_sysemu
PiperOrigin-RevId: 287225250
This commit is contained in:
commit
5b9034cc18
|
@ -21,6 +21,7 @@ import (
|
|||
"sync"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
"gvisor.dev/gvisor/pkg/log"
|
||||
"gvisor.dev/gvisor/pkg/procid"
|
||||
"gvisor.dev/gvisor/pkg/sentry/arch"
|
||||
|
@ -541,14 +542,14 @@ func (s *subprocess) switchToApp(c *context, ac arch.Context) bool {
|
|||
if isSingleStepping(regs) {
|
||||
if _, _, errno := syscall.RawSyscall6(
|
||||
syscall.SYS_PTRACE,
|
||||
syscall.PTRACE_SYSEMU_SINGLESTEP,
|
||||
unix.PTRACE_SYSEMU_SINGLESTEP,
|
||||
uintptr(t.tid), 0, 0, 0, 0); errno != 0 {
|
||||
panic(fmt.Sprintf("ptrace sysemu failed: %v", errno))
|
||||
}
|
||||
} else {
|
||||
if _, _, errno := syscall.RawSyscall6(
|
||||
syscall.SYS_PTRACE,
|
||||
syscall.PTRACE_SYSEMU,
|
||||
unix.PTRACE_SYSEMU,
|
||||
uintptr(t.tid), 0, 0, 0, 0); errno != 0 {
|
||||
panic(fmt.Sprintf("ptrace sysemu failed: %v", errno))
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ func probeSeccomp() bool {
|
|||
|
||||
for {
|
||||
// Attempt an emulation.
|
||||
if _, _, errno := syscall.RawSyscall6(syscall.SYS_PTRACE, syscall.PTRACE_SYSEMU, uintptr(t.tid), 0, 0, 0, 0); errno != 0 {
|
||||
if _, _, errno := syscall.RawSyscall6(syscall.SYS_PTRACE, unix.PTRACE_SYSEMU, uintptr(t.tid), 0, 0, 0, 0); errno != 0 {
|
||||
panic(fmt.Sprintf("ptrace syscall-enter failed: %v", errno))
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue