libctf: improve handling of type dumping errors

When dumping a type fails with an error, we want to emit a warning noting
this: a warning because it's not fatal and we can continue.  But warnings
don't automatically print out the ctf_errno (because not all cases causing
warnings set the errno at all), so we must do it at warning-emission time or
lose track of what's gone wrong.

libctf/

	* ctf-dump.c (ctf_dump_format_type): Dump the underlying error on
	type dump failure.
This commit is contained in:
Nick Alcock
2024-04-02 13:48:13 +01:00
parent eb244227d8
commit 0ebf1bdeed

View File

@@ -239,7 +239,8 @@ ctf_dump_format_type (ctf_dict_t *fp, ctf_id_t id, int flag)
oom:
ctf_set_errno (fp, errno);
err:
ctf_err_warn (fp, 1, 0, _("cannot format name dumping type 0x%lx"), id);
ctf_err_warn (fp, 1, ctf_errno (fp), _("cannot format name dumping type 0x%lx"),
id);
free (buf);
free (str);
free (bit);