提交 16f16cf8 编写于 作者: A Alessandro Arzilli 提交者: Derek Parker

proc: bugfix: cleaning up spurious process exited errors (#599)

Fixes flakiness of TestCmdLineArgs.
上级 c7f11149
......@@ -292,6 +292,10 @@ func (dbp *Process) trapWait(pid int) (*Thread, error) {
var cloned uint
dbp.execPtraceFunc(func() { cloned, err = sys.PtraceGetEventMsg(wpid) })
if err != nil {
if err == sys.ESRCH {
// thread died while we were adding it
continue
}
return nil, fmt.Errorf("could not get event message: %s", err)
}
th, err = dbp.addThread(int(cloned), false)
......
......@@ -1685,7 +1685,7 @@ func TestCmdLineArgs(t *testing.T) {
}
exit, exited := err.(ProcessExitedError)
if !exited {
t.Fatalf("Process did not exit!", err)
t.Fatalf("Process did not exit: %v", err)
} else {
if exit.Status != 0 {
t.Fatalf("process exited with invalid status", exit.Status)
......
package proc
import "fmt"
import "errors"
// Registers is an interface for a generic register type. The
......@@ -21,11 +20,7 @@ var UnknownRegisterError = errors.New("unknown register")
// Registers obtains register values from the debugged process.
func (t *Thread) Registers() (Registers, error) {
regs, err := registers(t)
if err != nil {
return nil, fmt.Errorf("could not get registers: %s", err)
}
return regs, nil
return registers(t)
}
// PC returns the current PC for this thread.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册