알 수 없는 에러를 만났습니다.

kyh1026의 이미지

Qt를 이용하여 창을 만들고,

그 창이 바탕화면역할을 하게끔 하려고 Desktop객체의 생성자에다 코드를 구성하였습니다.

Desktop::Desktop(QWidget *parent, Qt::WFlags f) : QMainWindow(parent, f|Qt::FramelessWindowHint)//제목표시줄 없애기
{

Atom atom;

atom = XInternAtom(QX11Info::display (),"_NET_WM_WINDOW_TYPE_DESKTOP", FALSE);

XChangeProperty(QX11Info::display () , QX11Info::appRootWindow(),
XInternAtom(NULL, "_NET_WM_WINDOW_TYPE", FALSE),
XA_ATOM, 32, PropModeReplace, (unsigned char *)&atom, 1);
}

컴파일 에러는 없었는데 실행을 뭔가 깜박이고 종료가 되버리던데요.....

그래서 tail -f /var/log/messages에서 확인을 해봤더니

May 22 01:48:51 localhost kernel: Desktop[5111]: segfault at 000004d0 eip 05665328 esp bfd72b50 error 4

메세지를 확인할 수 있었는데........ 무슨소린지...... 잘 모르겠습니다.

최피디의 이미지

의심가는 부분에 한 줄씩 넘겨가면서 어느 함수에서 죽는지 먼저 확인을 해야겠지요.

죽는 함수를 찾으면, 그 때 넘겨주는 파라미터가 적절한지 확인해보는게 필요하겠습니다. (포인터에 적절한 주소가 들어가 있는지 같은것)

KT하이텔, 앱스 개발자