Fix Linux debugging on NVIDIA + X11#770
Open
andreymlv wants to merge 8 commits intoEpicGamesExt:devfrom
Open
Conversation
cf59dc1 to
ddfda21
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hit several issues debugging on Arch + NVIDIA 595 + X11.
X11 window used CopyFromParent visual, mismatching EGL/GLX framebuffer config: GLX BadMatch crash, EGL silent black window. Renderer now publishes its chosen visual + colormap.
eglCreateContext got a null EGLConfig; NVIDIA lacks EGL_KHR_no_config_context, so the context silently no-op'd and all draws hit GL_INVALID_OPERATION. Pass the config; bind a pbuffer at init.
dmn_lnx_rdebug_vaddr_from_memory SIGILL'd on the GNU_HASH branch (NotImplemented). Modern toolchains link --hash-style=gnu only. Symbol count now derived from GNU_HASH.
Breakpoints didn't bind: rdi_from_dwarf built source paths from
dir_table[dir_idx]+ file->path without prependingdir_table[0], so build/main.c became /build/main.c. DWARFv5 6.2.4: relative dir entries append to entry 0.Memory view SIGILL'd on unimplemented eval ops at -Og/-O2. Implemented Swap; soft-fail BadOp for CallSiteValue (entry_value needs caller-frame regs, not plumbed); no-op for piece markers.
RDI cache redirected to ~/raddbg/rdi-cache when the binary lives under /usr, /lib, etc. - writes for libc.so/ld.so were failing.
Tested on ArchLinux + NVIDIA 595.58.03 + X11(dwm). Not tested on Mesa or Wayland.