在最近的一次更新(Xorg 和其他更新)之后,GTK 应用程序在我的 kde4 中停止运行。我有一个 Debian 不稳定版本,大约在 4 月 22 日更新。当我尝试运行它们时,我收到以下错误:
ga@grzes:~$ iceweasel
The program 'firefox-bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadName (named color or font does not exist)'.
(Details: serial 888 error_code 15 request_code 45 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
ga@grzes:~$ gimp The program 'gimp' received an X Window
System error.
This probably reflects a bug in the program.
The error was 'BadName (named color or font does not exist)'.
(Details: serial 6955 error_code 15 request_code 45 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
(script-fu:4643): LibGimpBase-WARNING **: script-fu: gimp_wire_read():
error
我必须手动重新启动字体服务器才能修复它:
ga@grzes:~$ su
Password:
grzes:/home/ga# /etc/init.d/xfs restart
Stopping X font server: xfs.
Setting up X font server socket directory /tmp/.font-unix...done.
Starting X font server: xfs.
有什么想法可能出错了吗?是配置问题吗?我的系统在过去 7 年里一直在更新,所以我可以保留一些旧设置。
编辑:如果有人能指出我相关的讨论列表或 Bugzilla 网站,我将不胜感激,因为我被这个问题困扰了。
答案1
据我所知,x11 字体服务器现在几乎被弃用,取而代之的是客户端字体。Ubuntu 肯定不再使用 xfs(除非您专门安装它),而且我怀疑 Debian Unstable 也不会默认安装它。
启动后,不要重新启动 xfs,而是尝试停止它。如果一切继续按预期工作,则只需卸载它。
答案2
听起来这可能是 Xorg 1.5 中的已知错误:
如果有人能给我指出相关的讨论列表或 Bugzilla 网站,我将不胜感激,因为我被这个问题困扰了。
Xorg 漏洞:http://bugs.freedesktop.org- 使用产品“xorg”
Xorg 邮件列表:http://lists.freedesktop.org/mailman/listinfo/xorg
答案3
尝试在重启xlsfonts
前后运行xfs
,并比较结果。差异可能非常明显!
答案4
找到您可以运行但会出现此错误的最简单的程序,然后在 ltrace 下运行它以缩小导致问题的确切调用范围。