X11 오류: BadValue(작동 범위 밖의 정수 인수)

X11 오류: BadValue(작동 범위 밖의 정수 인수)

이것은 어떤 근본적인 문제를 의미합니까? 어떤 정수 매개변수가 범위를 벗어났나요? 소스코드의 어느 부분인가요? 가장 중요한 것은 이 문제를 어떻게 해결합니까?

[vo/opengl/x11] X11 error: BadValue (integer parameter out of range for operation)
[vo/opengl/x11] Type: 0, display: 0x7f264c43f950, resourceid: 0, serial: 3f
[vo/opengl/x11] Error code: 2, request code: 9a, minor code: 3

답변1

[vo/opengl/x11] Error code: 2, request code: 9a, minor code: 3

이 오류는 확장 요청에 의해 생성됩니다. 128보다 큰 모든 요청 코드는 확장용으로 예약되어 있습니다(0x9a = 154).

먼저 154 opcode를 사용하여 확장을 얻어야 합니다.

$ xdpyinfo -queryExtensions | grep 'opcode: 154'
    XFree86-VidModeExtension  (opcode: 154, base error: 175)

귀하의 Xserver는 opcode를 다르게 할당할 수 있습니다. XF86VidMode내 것과 같다고 가정하면 프로토콜 헤더(또는xcb xml 사양) 확장:

grep 'X_.*\<3\>' /usr/include/X11/extensions/xf86vmproto.h
#define X_XF86VidModeSwitchMode         3

이 경우에는 입니다 XF86VidModeSwitchMode(dpy, screen, zoom).

물론 이 프로그램을 작성한 사람이라면 그 쓰레기보다 더 나은 X11 오류 처리기를 설정할 수 있었을 것입니다 code: hex(최소한 최신 X11 라이브러리의 경우 기본 X11 오류 처리기가 훨씬 더 좋습니다). 그런데 그게 무슨 재미가 있나요?

관련 정보