int InterpreterDBG::receiveCmd() { if(clientsock < 0) { return CMDContinue; } string cmd = receiveIncomingData(); int ret; if(cmd == "step_into") { ret = CMDStepInto; } else if(cmd == "step_over") { ret = CMDStepOver; } else if(cmd == "step_out") { ret = CMDStepOut; } else if(cmd == "continue") { ret = CMDContinue; } else if(cmd.find("breakpoint") != string::npos) { processBreakpointCMD(cmd); ret = receiveCmd(); } else { //cerr << PACKAGE << ": comando desconhecido: \"" << cmd << "\"" << endl; ret = CMDStepInto; } return ret; }
void wait_4_command_thread() { uint8_t *v1; // r4@3 unsigned int v2; // r6@3 bool v3; // cf@3 bool v4; // zf@3 uint8_t *v5; // r6@3 int v6; // r2@6 int *v7; // r3@15 int rcvLen; // r2@19 const char *v9; // r1@11 int result; // r0@34 struct pollfd fds[2]; // [sp+4h] [bp-4Ch]@12 int v13; // [sp+Ch] [bp-44h]@12 int v14; // [sp+10h] [bp-40h]@12 int v15; int v11 = 16; struct sockaddr addr; socklen_t peer_addr_size = 16; struct pollfd fds[2]={}; struct sockaddr_un peer_addr; socklen_t peer_addr_size = sizeof(struct sockaddr_un); listen(hservSocket, 1); while ( true ) { LABEL_31: if ( bExit ) { LABEL_10: if ( btif_trace_level > iLevelMessages ) { v9 = "wait_4_command_thread exit\n"; goto LABEL_33; } goto LABEL_34; } if ( hservSocket <= 0 ) goto LABEL_34; if ( btif_trace_level > iLevelMessages) LogMsg(1283, "TCP server accept ...\n"); clientfd = accept(hservSocket, (struct sockaddr *) &peer_addr, &peer_addr_size); if ( btif_trace_level > iLevelMessages ) LogMsg(1283, "TCP server accept clientfd (%d)\n", clientfd); if ( clientfd != -1 ) break; if ( bExit ) goto LABEL_10; } do { fds[0].events = 73; fds[0].revents = 0; fds[0].fd = clientfd; fds[1].events = 73; fds[1].revents = 0; fds[1].fd = 0; if ( poll(fds, 2, -1) == -1 ) { if ( btif_trace_level > iLevelMessages ) LogMsg(1283, "poll failed\n"); v7 = &clientfd; LABEL_27: *v7 = -1; goto LABEL_31; } if ( btif_trace_level > iLevelMessages ) LogMsg( 1283, "poll result : fds[0].revents(0x%4x), fds[1].revents(0x%4x)\n", fds[0].revents, fds[1].revents); if ( fds[0].revents & 1 ) { rcvLen = receiveIncomingData(clientfd); if ( rcvLen <= 0 ) { if ( btif_trace_level > iLevelMessages ) LogMsg(1283, "rcvLen = %d\n", rcvLen); v7 = &clientfd; goto LABEL_27; } } if ( fds[0].revents & 0x10 ) { if ( btif_trace_level > iLevelMessages ) LogMsg(1283, "fds[0].revents & POLLHUP"); v7 = &clientfd; goto LABEL_27; } } while ( !(fds[1].revents & 1) ); if ( btif_trace_level > iLevelMessages ) { v9 = "terminate thread from socket pair\n"; LABEL_33: LogMsg(1283, v9); } LABEL_34: return; }