问题:
之前在我的IDE中启动GDBServer,server监听的端口都是固定的默认端口2331,那么就 有一个问题,如果2331已经被别的服务占用了,我的GDBServer就会启动失败。
解决方法:
那么在我的程序中,我从6000到7999这个范围的端口做是否空闲测试,选择第一个没有被占用的端口号作为GDBServer监听的端口号,同时启动GDBServer;然后把这个端口号告诉gdb客户端,让gdb客户端用这个端口号连接GDBServer,这样就可以避免用了被占用的端口号导致GDBServer启动失败的问题。
附上测试端口空闲与否的代码:
unsigned short port = 2331;
for (unsigned short i = 6000 ; i < 8000; i++)
{
wxIPV4address ip;
ip.LocalHost();
ip.Service(i);
wxSocketServer server(ip);
if (server.IsOk())
{
Log("ok");
port = i;
break;
}
else
{
Log("no ok");
}
}