XCreateIC()
{
ic = (*im->methods->create_ic)(im, args);
}
The XIM object passed to XCreateIC is invalid.
GDB inspection:
(gdb) p im->methods
= 0xdc70ec6e
(gdb) p *im->methods
create_ic = 0x0
(gdb) p im->methods->create_ic
= 0x0
Inspecting the XIM structure shows that it no longer contains a valid XIM object.
Instead, many fields contain ASCII-like garbage, indicating the memory has already been reused.
Example:
display = 0x70747468
rdb = 0x2f2f3a73
This strongly suggests that Steam/SDL is passing a stale (freed) XIM object into XCreateIC after the theme switch.
Expected behavior
Steam should recreate or refresh the XIM after the theme changes, instead of using a stale pointer.
Your system information
Please describe your issue in as much detail as possible:
Steam crashes every time the GTK/Qt theme is switched using Dank Material Shell.
The Steam window briefly disappears, reappears with a loading spinner, then crashes with SIGSEGV.
This issue is fully reproducible.
Steps for reproducing this issue:
Workaround
Launching Steam with
completely avoids the crash.
This disables XIM input, so Chinese input no longer works.
GDB Analysis
#1 XCreateIC()
#2 libSDL3.so
#3 steamui.so
The crash occurs inside:
The XIM object passed to XCreateIC is invalid.
GDB inspection:
Inspecting the XIM structure shows that it no longer contains a valid XIM object.
Instead, many fields contain ASCII-like garbage, indicating the memory has already been reused.
Example:
This strongly suggests that Steam/SDL is passing a stale (freed) XIM object into XCreateIC after the theme switch.
Expected behavior
Steam should recreate or refresh the XIM after the theme changes, instead of using a stale pointer.