Wayland入门教程08.01:调试工具
系列索引地址:Wayland入门教程索引
本文译自wayland extras的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=client
或WAYLAND_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
一种用于Qt应用程序的软件审查工具,包括一个用于QtWayland合成器的模块。利用libwayland-server审查API和QtWayland API,它允许根据资源的类型查看当前连接的客户端列表、它们的资源和相关信息,以及客户端和合成器之间的协议流。
- wlhax
一个类似于Wayland代理的终端UI应用程序。它监视并显示Wayland连接状态,如当前表面(surface)树。
运行工具
- Xephyr
开发的Wayland程序如果需要运行可能会遇到服务已运行的情况。那就只能进入TTY再运行程序。
Xephyr提供一种在已有X/Wayland服务运行的情况下,新运行一个X/Wayland服务的机制。这样就不用进入TTY中运行开发的程序了。
后续会用到这种机制。