mirror of
https://github.com/go-delve/delve.git
synced 2025-08-06 21:46:57 +02:00
FindLocation should only return a "location not found" error if none of the attached target processes can find the location. Fixes #3933
55 lines
778 B
Go
55 lines
778 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
func traceme1() {
|
|
fmt.Printf("parent starting\n")
|
|
}
|
|
|
|
func traceme2(n string) {
|
|
fmt.Printf("hello from %s\n", n)
|
|
}
|
|
|
|
func traceme3() {
|
|
fmt.Printf("done\n")
|
|
}
|
|
|
|
func main() {
|
|
exe, _ := os.Executable()
|
|
switch os.Args[1] {
|
|
case "spawn":
|
|
traceme1()
|
|
n, _ := strconv.Atoi(os.Args[2])
|
|
cmds := []*exec.Cmd{}
|
|
for i := 0; i < n; i++ {
|
|
cmd := exec.Command(exe, "child", fmt.Sprintf("C%d", i))
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Start()
|
|
cmds = append(cmds, cmd)
|
|
}
|
|
|
|
for _, cmd := range cmds {
|
|
cmd.Wait()
|
|
}
|
|
|
|
time.Sleep(1 * time.Second)
|
|
traceme3()
|
|
|
|
case "child":
|
|
traceme2(os.Args[2])
|
|
|
|
case "spawn2":
|
|
cmd := exec.Command(os.Args[2])
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Start()
|
|
cmd.Wait()
|
|
|
|
}
|
|
}
|