Hi Jan-Benedict,

On Tue, Oct 05, 2021 at 05:36:40PM +0200, Jan-Benedict Glaw wrote:
> 
> My last email had a wrong subject, though the patch was correct.
> Here's a second patch, this time *actally* for tests/show-die-info.c:
> 
> diff --git a/tests/show-die-info.c b/tests/show-die-info.c
> index 34e27a3b..0823cc60 100644
> --- a/tests/show-die-info.c
> +++ b/tests/show-die-info.c
> @@ -97,7 +97,7 @@ handle (Dwarf *dbg, Dwarf_Die *die, int n)
>    printf ("%*s Attrs     :", n * 5, "");
>    for (cnt = 0; cnt < 0xffff; ++cnt)
>      if (dwarf_hasattr (die, cnt))
> -      printf (" %s", dwarf_attr_string (cnt));
> +      printf (" %s", (dwarf_attr_string (cnt)? dwarf_attr_string (cnt): ""));
>    puts ("");
>  
>    if (dwarf_hasattr (die, DW_AT_low_pc) && dwarf_lowpc (die, &addr) == 0)

This can be fixed in a shorter way using dwarf_attr_string ?: "<unknown>".
Which is what I pushed (see attached).

Thanks,

Mark


>From 47b0ebe9033daa7ac9c732b25c85520b97f9635a Mon Sep 17 00:00:00 2001
From: Mark Wielaard <m...@klomp.org>
Date: Wed, 6 Oct 2021 23:53:34 +0200
Subject: [PATCH] tests: Handle dwarf_attr_string returning NULL in
 show-die-info.c

Reported-by: Jan-Benedict Glaw <jbg...@lug-owl.de>
Signed-off-by: Mark Wielaard <m...@klomp.org>
---
 tests/ChangeLog       | 4 ++++
 tests/show-die-info.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/ChangeLog b/tests/ChangeLog
index d289b27c..07e018b0 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,7 @@
+2021-10-06  Mark Wielaard  <m...@klomp.org>
+
+	* show-die-info.c (handle): Handle dwarf_attr_string returning NULL.
+
 2021-10-06  Di Chen <dic...@redhat.com>
 
 	PR28242
diff --git a/tests/show-die-info.c b/tests/show-die-info.c
index 34e27a3b..1a3191cd 100644
--- a/tests/show-die-info.c
+++ b/tests/show-die-info.c
@@ -97,7 +97,7 @@ handle (Dwarf *dbg, Dwarf_Die *die, int n)
   printf ("%*s Attrs     :", n * 5, "");
   for (cnt = 0; cnt < 0xffff; ++cnt)
     if (dwarf_hasattr (die, cnt))
-      printf (" %s", dwarf_attr_string (cnt));
+      printf (" %s", dwarf_attr_string (cnt) ?: "<unknown>");
   puts ("");
 
   if (dwarf_hasattr (die, DW_AT_low_pc) && dwarf_lowpc (die, &addr) == 0)
-- 
2.32.0

Reply via email to