2012-01-30 2 views
0

나는 서비스를 구축하려고 노력 중이다. 코드는 다음과 같습니다.gsoap copy의 Sigsegv

ArchivatorCoreService server; 
ArchivatorCoreService *tserver; 
int port = 8080; 
SOAP_SOCKET m, s; 
m = server.bind(NULL, port, 100); 
if (!soap_valid_socket(m)) 
{ 
     exit(1); 
} 
else 
{ 
    qDebug() << "Info: Bind: Succesfully socket connection: " << m << ". Port " << port 
} 
for (;;) 
{ 
    qDebug() << "waiting..."; 
    s = server.accept(); 

    if (!soap_valid_socket(s)) 
    { 
    if (server.errnum) 
    { 
     qDebug() << "1"; << "Error: Failed accept: " << messagec; 
     exit(1); 
    } 
    else 
    { 
    qDebug() << "Info: Thread " << i << " accepts socket " << s << " connection from IP " << ((server.ip >> 24)&0xFF) << "." << ((server.ip >> 16)&0xFF) << "." << ((server.ip >> 8)&0xFF) << "." << ((server.ip)&0xFF); 

} 
qDebug() << "2"; 
tserver = server.copy(); // make a safe copy 
qDebug() << "3"; 

라인 tserver = server.copy(); 오류 sigsegv.

ArchivatorCoreService soap의 heracly; 당신은 말을하지 않습니다

+0

"서버"변수가 선언되지 않고 초기화되지 않았습니다. 그것은 무작위로 쓰레기를 포함하고 있습니다. –

+0

C++ ArchivatorCoreService 서버에서; 기본 생성자를 호출, 안돼? – Jjreina

답변

0

매우

감사합니다 당신이 사용하고 gsoap의 버전; 그러나 2.8.5 이전의 버전은 생성 된 C++ 코드가있는 메모리 누수와 SIGSEGV에 문제가 있습니다. 좀 더 자세한 내용은 내 이전 대답 here을 참조하십시오.