1

“默认处理程序的操作是打印解释性消息并退出。” (关联)

此类消息的示例:

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 忽略错误,但仍然打印错误消息?

4

2 回答 2

2

如果您真的想要这些错误消息,您几乎有两种选择:

  • 连同一些私有头文件一起_XPrintDefaultError退出(XlibInt.c以及使用库私有定义的所有注意事项)。
  • 重新定义在调用它exit()时不实际退出。_XDefautError

两者都不是特别漂亮,两者都可能破坏并降低您的便携性,但它们确实有效。

于 2018-08-10T16:55:49.803 回答
0

您必须格式化自己的消息。消息的内容是 XErrorEvent 结构的内容:

http://tronche.com/gui/x/xlib/event-handling/protocol-errors/default-handlers.html

于 2013-01-20T12:58:06.957 回答