Hi Chris, Pavel, I've got a problem launching the hexagon simulator from lldb. It's launched the same way that debugserver/lldb-server is launched, with reverse connect on a TCP socket. The user can modify the simulator command line (using target.run-args), and can easily give a set of options that the simulator can't handle. In this case the simulator quits before connecting to lldb, and lldb will wait forever for the connection, since TCPSocket::Accept has no timeout.
Currently I have a select call before the accept, to make sure there is activity on the socket. This doesn't feel right with the new changes using MainLoop, so I wanted to see what the list thinks. I believe it will happen any time that debugserver/lldb-server quits or crashes before connecting. That should be easy to test. This is what I use, right before the call to accept_loop.Run in TCPSocket::Accept: NativeSocket accept_socket = -1; fd_set readset; FD_ZERO(&readset); for (auto socket : m_listen_sockets) { auto fd = socket.first; FD_SET(fd, &readset); if (fd > accept_socket) accept_socket = fd; } struct timeval timeout = {10, 0}; int result = ::select(accept_socket + 1, &readset, NULL, NULL, &timeout); if (result == 0) { printf("error: timeout waiting for remote server to connect!\n"); error.SetErrorString("timeout waiting for remote server to connect"); return error; } else if (result < 0) { printf("error: remote server does not exist!\n"); SetLastError(error); return error; } Any thoughts this issue? Ted -- Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev