Re: Debug xcb_connect fail
Uli Schlachter <[email protected]> Tue, 4 Jan 2022 16:37:16 +0100
| Newsgroups | gmane.comp.freedesktop.xcb |
|---|---|
| Message-ID | <[email protected]> |
Hi, On 23.12.21 10:40, Edgar Mobile wrote: > I have to debug an EGL app on Ubuntu where xcb_connect occasionally fails for reasons unknown ( DISPLAY is set), With what error message? > but I don't have access to the libXCB sourcecode. See https://lmgtfy.app/?q=libxcb+source+code > Are there debug envionment falgs or similar that will give me a detailed reason for why it fails? All errors are printed to stderr. Well, all errors that are printed somewhere. One possible reason is that the X11 server rejects the connection. The code for that is here: https://gitlab.freedesktop.org/xorg/lib/libxcb/-/blob/43fbf03e549bf6da8d1d8522e0ceddc4d49c37c6/src/xcb_conn.c#L193-211 Another possible reason is that no socket to the X11 server can be opened. There are several possible places in xcb_util.c for this and which one is the "real error" depends on how you usually connect to the X11 server. Hm, this case does not actually print anything. I guess when xcb_connect() fails with XCB_CONN_ERROR, you'd have to look at errno and hope that the last connection failure is the important one. https://gitlab.freedesktop.org/xorg/lib/libxcb/-/blob/43fbf03e549bf6da8d1d8522e0ceddc4d49c37c6/src/xcb_util.c#L522 Depending on what your usual transport is, you might have some luck with only restricting connection attempts to that transport to get the real errno value in this case. For example, DISPLAY=:0 becomes DISPLAY=unix/:0 to force the unix transport and DISPLAY=tcp/:0 for tcp. Cheers, Uli -- Who needs a ~/.signature anyway?