// AM_DBG_WORKER_ADDR // AM_DBG_ADDR
package main import ( amtest amhelp am ssrpc ssdbg ) func main() { , := context.WithCancel(context.Background()) defer () // read env := os.Getenv(telemetry.EnvAmDbgAddr) := am.EnvLogLevel("") // test worker has its own flags := flag.String("server-addr", "", "Addr of the debugger server (opt)") := flag.String("worker-addr", amtest.WorkerRpcAddr, "Addr of the rpc worker") flag.Parse() // worker init os.Setenv(amhelp.EnvAmLogFile, "1") , := amtest.NewDbgWorker(true, debugger.Opts{ AddrRpc: *, }) if != nil { panic() } // server init , := rpc.NewServer(, *, "worker", .Mach, nil) if != nil { panic() } amhelp.MachDebug(.Mach, , , false, amhelp.SemConfig(true)) // tear down defer func() { if != "" { // cool off am-dbg and free the ports time.Sleep(100 * time.Millisecond) } }() // am-dbg server (used for testing live connections) if * != "" { go server.StartRpc(.Mach, *, nil, nil, false) } // start with a timeout , := context.WithTimeout(, 3*time.Second) defer () // server start .Start() select { case <-.Mach.WhenErr(): := .Mach.Err() if .Err() != nil { = .Err() } panic() case <-.Mach.When1(ssrpc.ServerStates.RpcReady, ): } // wait till the end select { case <-.Mach.WhenDisposed(): // user exit case <-.Mach.WhenNot1(ssdbg.Start, nil): .Dispose() } }