No problem and thanks for your pull request with adding proper timeout handling to the telnet target.
We have added a new ITargetWithRawPipes interface to VisualGDBExtensibility.dll that should be implemented by the telnet target:
public interface ITargetWithRawPipes : ICustomRemoteTarget
{
Stream OpenPipeForReading(string path);
}
VisualGDB will call the OpenPipeForReading() method, supplying it the full path of the pipe on the Linux machine (e.g. /tmp/pipe). The target should open it and return a readable stream that VisualGDB will read from a background thread.
Note that the pipe output can contain arbitrary bytes and not just printable characters, so the target may need special handling to escape/unescape them properly. We highly advise testing it by reading a test file containing all possible 256 byte values.