[PATCH weston 1/8] libweston: add weston_debug API and implementation

Pekka Paalanen ppaalanen at gmail.com
Wed Aug 30 12:24:55 UTC 2017


On Thu, 24 Aug 2017 16:16:15 +0200
Maniraj Devadoss <external.mdevadoss at de.adit-jv.com> wrote:

> weston_debug is both a libweston API for relaying debugging messages,
> and the compositor-debug wayland protocol implementation for accessing those
> debug messages from a Wayland client.
> 
> weston_debug_compositor_{create,destroy}() are private API, hence not
> exported.
> 
> Signed-off-by: Pekka Paalanen <pq at iki.fi>
> 
> use the compositor-debug protocol from wayland-protocols

Hi,

you forgot to mention the changes I point out below.

There should also be a note that this patch depends on an unreleased
version of wayland-protocols. I think we might want a wayland-protocols
release before merging this patch upstream, so that we can bump the
wayland-protocols version requirement in this patch.

> 
> Signed-off-by: Maniraj Devadoss <external.mdevadoss at de.adit-jv.com>
> ---
>  Makefile.am              |   6 +
>  libweston/compositor.c   |   5 +
>  libweston/compositor.h   |   8 +
>  libweston/weston-debug.c | 755 +++++++++++++++++++++++++++++++++++++++++++++++
>  libweston/weston-debug.h | 107 +++++++
>  5 files changed, 881 insertions(+)
>  create mode 100644 libweston/weston-debug.c
>  create mode 100644 libweston/weston-debug.h
> 


> diff --git a/libweston/weston-debug.c b/libweston/weston-debug.c
> new file mode 100644
> index 0000000..d7a026b
> --- /dev/null
> +++ b/libweston/weston-debug.c

> +/** Format current time as a string
> + * and append the debug scope name to it
> + *
> + * \param scope[in] debug scope.
> + * \param buf[out] Buffer to store the string.
> + * \param len Available size in the buffer in bytes.
> + * \return \c buf

As can be seen from this left-over documentation, the previous version
of this function returned the argument 'buf' as is. You said that using
the return value from this function instead of the passed-in argument
in the callers causes a crash. I would really like to understand why
that is before accepting this change. I cannot find a reason for it to
fail.

> + *
> + * Reads the current local wall-clock time and formats it into a string.
> + * and append the debug scope name to it.
> + * The string is nul-terminated, even if truncated.
> + */
> +WL_EXPORT void
> +weston_debug_scope_timestamp(struct weston_debug_scope *scope,
> +			     char *buf, size_t len)

Adding the scope name here is a fine change, but is another thing
forgotten from the commit message.

> +{
> +	struct timeval tv;
> +	struct tm *bdt;
> +	char string[128];
> +	size_t ret = 0;
> +
> +	gettimeofday(&tv, NULL);
> +
> +	bdt = localtime(&tv.tv_sec);
> +	if (bdt)
> +		ret = strftime(string, sizeof string,
> +			       "%Y-%m-%d %H:%M:%S", bdt);
> +
> +	if (ret > 0)
> +		snprintf(buf, len, "[%s.%03ld][%s]", string,
> +			 tv.tv_usec / 1000, scope->name);
> +	else
> +		snprintf(buf, len, "[?][%s]", scope->name);
> +
> +	return buf;

This produces a warning:

/home/pq/git/weston/libweston/weston-debug.c: In function ‘weston_debug_scope_timestamp’:
/home/pq/git/weston/libweston/weston-debug.c:754:2: warning: ‘return’ with a value, in function returning void

Introducing a compiler warning is considered a regression.

> +}

Other than the issues mentioned, the changes look good.


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20170830/aa5b1616/attachment.sig>


More information about the wayland-devel mailing list