[RFC weston 0/9] weston-debug protocol, API, and tool
ppaalanen at gmail.com
Sat Jun 3 11:57:02 UTC 2017
From: Pekka Paalanen <pq at iki.fi>
this is a little something I wrote while being stuck off-line in a hot place
and not having to care about anyone's priorities one bit.
Debug printing has usually been ad hoc weston_log() or even fprintf() calls,
often guarded by #ifdefs which require recompiling if you want to enable them.
Once enabled, you needed to recompile again to disable them. That works for
developers somewhat, but becomes a PITA when you need a user to get you that
debug information. I have experienced that particularly with XWM debugs.
Here's an alternative proposal: let a Wayland client give Weston an open file
descriptor, and Weston will write the debug prints into it on demand. Of
course, this is a risky move, and should not usually be allowed - I added a
command line option to control it.
As we have different things to debug, and just enabling everything would be a
massive flood, let's introduce "debug scopes" to, well, give some scope to the
prints. A client can subsribe to any number of scopes, and only those it is
This patch series adds the protocol extension, the libweston implementation,
Weston command line option to enable it all, and a command line tool to
subscribe to the debug messages.
This patch series also adds debug scopes for XWM, Weston logs, and Wayland
protocol dumps. We could add a lot more, too: window manager actions, input
events, KMS debugging, timeline/wesgr, etc.
This is an RFC because it is still missing some bits I noted in the commit
messages, but I wanted to send it out now because I have no idea when I might
be able to finish it. If someone else wants to take over, that would be cool.
Pekka Paalanen (9):
protocol: add weston-debug.xml
libweston: add weston_debug API and implementation
compositor: add option to enable weston_debug
clients: add weston-debug WIP
compositor: offer logs via weston-debug
xwm: dump_property() to use FILE internally
xwm: move FILE to the callers of dump_property()
xwm: convert WM_DEBUG into a weston-debug scope
compositor: protocol logger WIP
Makefile.am | 18 +-
clients/weston-debug.c | 378 +++++++++++++++++++++++
compositor/main.c | 77 +++++
libweston/compositor.c | 5 +
libweston/compositor.h | 8 +
libweston/weston-debug.c | 750 ++++++++++++++++++++++++++++++++++++++++++++++
libweston/weston-debug.h | 106 +++++++
man/weston.man | 15 +-
protocol/weston-debug.xml | 128 ++++++++
xwayland/launcher.c | 7 +
xwayland/selection.c | 39 ++-
xwayland/window-manager.c | 230 +++++++-------
xwayland/xwayland.h | 6 +-
13 files changed, 1650 insertions(+), 117 deletions(-)
create mode 100644 clients/weston-debug.c
create mode 100644 libweston/weston-debug.c
create mode 100644 libweston/weston-debug.h
create mode 100644 protocol/weston-debug.xml
More information about the wayland-devel