XWayland开发入门系列5:调试工具

系列索引地址:X11/Wayland开发入门系列教程索引

上一篇:XWayland开发入门系列4:XServer

本文译自https://wayland.freedesktop.org/extras.html的2021.09.27版本。

本页描述了wayland特有的调试工具。

合成器特性

运行wayland-info将列出所有由合成器提供的所有通用接口。它还将提供关于它所知道的和要报告的接口的其他信息,如监视器的制造和模型、wl_seat功能和wl_shm像素格式。wayland-info来自wayland-utils,可以用于任何合成器。

OpenGL特性

Wayland下的OpenGL(所有特性)功能可以通过Waffle提供的wflinfo进行查询。只需要使用wayland参数-p。

waffle

Waffle是一个跨平台的C库,它允许人们将OpenGL API和窗口系统的选择推迟到运行时。例如,在Linux上,Waffle允许应用程序选择X11/EGL搭配OpenGL3.3 core、具有OpenGL ES2的Wayland,以及其他窗口系统/API组合。

Waffle的直接目标是使Piglit,Mesa的OpenGL测试套件能够以跨平台的方式测试多种OpenGL特性。然而,Waffle的设计并不排除它对其他项目有用。

协议导出(Protocol dumpers)

当使用export WAYLAND_DEBUG=1(或WAYLAND_DEBUG=clientWAYLAND_DEBUG=server)不够时,以下工具可能会有所帮助。

  • wayland-tracker

一个Wayland协议调试器,MIT许可,用Haskell编写,生成二进制、文本和JSON格式的输出。作为一个独立client的中间人运行。

  • wayland-tracer

一个Wayland协议调试器,MIT许可,用C编写,生成二进制和人类可读的输出。可以作为单个client的中间人运行,或者作为wayland服务器的中间人运行。

  • wlanalyzer/wldump

一个Wayland协议调试器,MIT许可,用C++编写,产生人类可读的输出。作为一个独立client的中间人运行。

  • wldbg

一个Wayland连接处理器,MIT许可,用c编写。在服务器和客户端之间传递的消息上运行给定的函数,或以类似gdb的模式工作。可以监听到合成器的新连接并接管它们。作为单个/多个客户的中间人运行。

审查工具

  • GammaRay

gammaray

一种用于Qt应用程序的软件审查工具,包括一个用于QtWayland合成器的模块。利用libwayland-server审查API和QtWayland API,它允许根据资源的类型查看当前连接的客户端列表、它们的资源和相关信息,以及客户端和合成器之间的协议流。

  • wlhax

一个类似于Wayland代理的终端UI应用程序。它监视并显示Wayland连接状态,如当前表面(surface)树。

运行工具

  • Xephyr

开发的Wayland程序如果需要运行可能会遇到服务已运行的情况。那就只能进入TTY再运行程序。

Xephyr提供一种在已有X/Wayland服务运行的情况下,新运行一个X/Wayland服务的机制。这样就不用进入TTY中运行开发的程序了。

后续会用到这种机制。

下一篇:XWayland开发入门系列6:hello world