XLib의 XCreateColormap
에 대한 내 전화로 인해 세그먼트 오류가 발생합니다. 재미있는 점은 내가 사용한 코드의 대부분이 XLib 및 GLX를 사용하여 창과 OpenGL 컨텍스트를 만드는 방법을 보여주는 그물에서 본 코드와 거의 동일하다는 것입니다.XCreateColormap을 호출하여 세그먼트 화 오류가 발생합니다.
자세한 내용은 OVI_UnixDisplayData
이라는 구조체가 있습니다.이 구조체는 기본적으로 창을 만들고 컨텍스트를 지정하는 데 사용되는 모든 관련 X Window/GLX 데이터의 컨테이너 역할을합니다. 나는 처음에는 문맥을 만들고 그 데이터 구조체에 대한 포인터를 반환하도록 설계된 함수를 가지고있다. 해당 구조체는 단지 dat
(데이터 용)이라고합니다. 그게 문제가되지 않을 수
Occurance는 segfault
dat->fbConfigs = glXChooseFBConfig(dat->display, DefaultScreen(dat->display), visualAttr, &dat->framebuffCount);
if (!dat->fbConfigs || dat->framebuffCount < 1)
{
puts(OVI_ERR_GLX_FRAME_BUF_CFG);
exit(1);
}
printf(OVI_STAT_GLX_FRAME_BUFF_CFG_COUNT, dat->framebuffCount);
dat->visualinfo = glXGetVisualFromFBConfig(dat->display, dat->fbConfigs[ dat->fbCountId ]);
printf(OVI_STAT_GLX_FRAME_BUFF_VIS_ID, dat->visualinfo->visualid);
puts(OVI_STAT_X_COLORMAP_CREATE);
dat->setwinatt->colormap = XCreateColormap(
dat->display,
RootWindow(dat->display, dat->visualinfo->screen),
dat->visualinfo->visual, AllocNone);
의 나는, 1.4로 반환되는 있습니다 GLX 내 자신의 버전을 확인했습니다. 그것의 Ontop 내 디버거에서 나는 dat->visualinfo->visual->ext_data
0x0의 값을 보유하고, 그래서 그걸로 뭔가 관련이있다 놀라지 않을 것이라고 알고 있습니다. 문제는 내가 어떻게 (모든 경우) 모르겠다. 어떤 함수를 호출해야하는지 모르겠다. 이 초기화되었는데, 그 동작이 C와 유사한 구현물 인 것으로 보인다. 연결된 목록.
누군가가이 문제에 대해 밝힐 수 있습니까? 정보가 필요합니다. Google 검색에서이 함수 호출로 인해 seg-faults를 경험 한 다른 사람들에 대한 결과를 얻었지만 그 중 아무도 이런 일이 일어난 이유와 비슷한 이유가 없었습니다. 그것이 무엇을 의미하는 경우
, 내가 GLX 1.4 및 OpenGL 4.2
디버거에서 실행 해 보셨습니까? 그러면 충돌이 발생한 곳을 정확하게 볼 수 있고 변수를 검사 할 수 있습니다. 유닉스/리눅스 시스템에서 가장 일반적인 디버거를 사용하는 법을 배우기 위해'gdb tutorials '에 대한 Google 검색을 수행하십시오. –
[SSCCE] (http://sscce.org/)를 제공하십시오. –
@JoachimPileborg 예, 전체 내용을 읽으면 이미 내 디버거가 실행되었음을 알 수 있습니다. – zeboidlund