I have a python script that automatically launches a simulator and connects
to it with gdb-remote. Everything works fine on Linux. But when I issue the
"kill" command on Windows, LLDB crashes.

 

This only happens if I launch the simulator (or any external program) using
python. I'm using subprocess.Popen, but I've also tried os.spawnl. I've
traced the problem down to reading errno in Error::SetErrorToErrno(). In
this case, errno is 0, so no error is reported, and the -1 that recv returns
is used as a buffer size and LLDB crashes. If I don't launch a program using
Popen, errno is 2, and everything is handled correctly.

 

Stepping into the errno access, GetLastError() is correctly set to
WSAECONNRESET, but ptd->_terrno, which errno is set to, is 0. This seems
like a Visual Studio 2012 runtime bug.

 

I think maybe we shouldn't rely on errno on Windows, but call GetLastError()
and convert their error numbers to POSIX error values.

 

Ted

 

_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to