“默认处理程序的操作是打印解释性消息并退出。” (link)
此类消息的示例:
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 12 (X_ConfigureWindow)
Resource id in failed request: 0xc0007a
Serial number of failed request: 140
Current serial number in output stream: 141
如果我设置(XSetErrorHandler)我自己的“忽略一切”错误处理程序,“解释性消息”就会消失。
如何使Xlib忽略错误,但仍然会打印错误消息?
答案 0 :(得分:1)
如果您实际上想要这些错误消息,则几乎可以有两个选择:
_XPrintDefaultError
中抽出XlibInt.c
以及一些专用标头(使用库专用定义的所有注意事项)。exit()
,使其在_XDefautError
调用时不退出。两者都不是特别漂亮,两者都可能破坏并降低您的便携性,但是它们确实有效。
答案 1 :(得分:0)
您必须格式化自己的讯息。消息的内容是XErrorEvent结构的内容:
http://tronche.com/gui/x/xlib/event-handling/protocol-errors/default-handlers.html