All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH dwarves] btf_encoder: log libbpf errors when they cause encoding errors
@ 2024-07-25  7:55 Alan Maguire
  2024-07-25 12:48 ` Jiri Olsa
  2024-07-26 12:31 ` Arnaldo Carvalho de Melo
  0 siblings, 2 replies; 3+ messages in thread
From: Alan Maguire @ 2024-07-25  7:55 UTC (permalink / raw)
  To: acme; +Cc: cavok, jolsa, ben, dwarves, bpf, Alan Maguire

libbpf returns a negative error code when adding types fails.
Pass it into btf__log_err() and display the libbpf error when
negative.  Nearly all use cases of btf__log_err() happen as a
result of a libbpf-returned error, pass 0 for the exceptions.

Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
---
 btf_encoder.c | 45 +++++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 20 deletions(-)

diff --git a/btf_encoder.c b/btf_encoder.c
index c2df2bc..adc38c3 100644
--- a/btf_encoder.c
+++ b/btf_encoder.c
@@ -237,9 +237,9 @@ static const char * btf__int_encoding_str(uint8_t encoding)
 		return "UNKN";
 }
 
-__attribute ((format (printf, 5, 6)))
+__attribute ((format (printf, 6, 7)))
 static void btf__log_err(const struct btf *btf, int kind, const char *name,
-			 bool output_cr, const char *fmt, ...)
+			 bool output_cr, int libbpf_err, const char *fmt, ...)
 {
 	fprintf(stderr, "[%u] %s %s", btf__type_cnt(btf),
 		btf_kind_str[kind], name ?: "(anon)");
@@ -253,6 +253,9 @@ static void btf__log_err(const struct btf *btf, int kind, const char *name,
 		va_end(ap);
 	}
 
+	if (libbpf_err < 0)
+		fprintf(stderr, " (libbpf error %d)", libbpf_err);
+
 	if (output_cr)
 		fprintf(stderr, "\n");
 }
@@ -355,7 +358,8 @@ static int32_t btf_encoder__add_float(struct btf_encoder *encoder, const struct
 	int32_t id = btf__add_float(encoder->btf, name, BITS_ROUNDUP_BYTES(bt->bit_size));
 
 	if (id < 0) {
-		btf__log_err(encoder->btf, BTF_KIND_FLOAT, name, true, "Error emitting BTF type");
+		btf__log_err(encoder->btf, BTF_KIND_FLOAT, name, true, id,
+			     "Error emitting BTF type");
 	} else {
 		const struct btf_type *t;
 
@@ -429,7 +433,7 @@ static int32_t btf_encoder__add_base_type(struct btf_encoder *encoder, const str
 
 	id = btf__add_int(encoder->btf, name, byte_sz, encoding);
 	if (id < 0) {
-		btf__log_err(encoder->btf, BTF_KIND_INT, name, true, "Error emitting BTF type");
+		btf__log_err(encoder->btf, BTF_KIND_INT, name, true, id, "Error emitting BTF type");
 	} else {
 		t = btf__type_by_id(encoder->btf, id);
 		btf_encoder__log_type(encoder, t, false, true, "size=%u nr_bits=%u encoding=%s%s",
@@ -473,7 +477,7 @@ static int32_t btf_encoder__add_ref_type(struct btf_encoder *encoder, uint16_t k
 		id = btf__add_func(btf, name, BTF_FUNC_STATIC, type);
 		break;
 	default:
-		btf__log_err(btf, kind, name, true, "Unexpected kind for reference");
+		btf__log_err(btf, kind, name, true, 0, "Unexpected kind for reference");
 		return -1;
 	}
 
@@ -484,7 +488,7 @@ static int32_t btf_encoder__add_ref_type(struct btf_encoder *encoder, uint16_t k
 		else
 			btf_encoder__log_type(encoder, t, false, true, "type_id=%u", t->type);
 	} else {
-		btf__log_err(btf, kind, name, true, "Error emitting BTF type");
+		btf__log_err(btf, kind, name, true, id, "Error emitting BTF type");
 	}
 	return id;
 }
@@ -503,7 +507,7 @@ static int32_t btf_encoder__add_array(struct btf_encoder *encoder, uint32_t type
 		btf_encoder__log_type(encoder, t, false, true, "type_id=%u index_type_id=%u nr_elems=%u",
 				      array->type, array->index_type, array->nelems);
 	} else {
-		btf__log_err(btf, BTF_KIND_ARRAY, NULL, true,
+		btf__log_err(btf, BTF_KIND_ARRAY, NULL, true, id,
 			      "type_id=%u index_type_id=%u nr_elems=%u Error emitting BTF type",
 			      type, index_type, nelems);
 	}
@@ -545,12 +549,12 @@ static int32_t btf_encoder__add_struct(struct btf_encoder *encoder, uint8_t kind
 		id = btf__add_union(btf, name, size);
 		break;
 	default:
-		btf__log_err(btf, kind, name, true, "Unexpected kind of struct");
+		btf__log_err(btf, kind, name, true, 0, "Unexpected kind of struct");
 		return -1;
 	}
 
 	if (id < 0) {
-		btf__log_err(btf, kind, name, true, "Error emitting BTF type");
+		btf__log_err(btf, kind, name, true, id, "Error emitting BTF type");
 	} else {
 		t = btf__type_by_id(btf, id);
 		btf_encoder__log_type(encoder, t, false, true, "size=%u", t->size);
@@ -600,7 +604,7 @@ static int32_t btf_encoder__add_enum(struct btf_encoder *encoder, const char *na
 		t = btf__type_by_id(btf, id);
 		btf_encoder__log_type(encoder, t, false, true, "size=%u", t->size);
 	} else {
-		btf__log_err(btf, is_enum32 ? BTF_KIND_ENUM : BTF_KIND_ENUM64, name, true,
+		btf__log_err(btf, is_enum32 ? BTF_KIND_ENUM : BTF_KIND_ENUM64, name, true, id,
 			      "size=%u Error emitting BTF type", size);
 	}
 	return id;
@@ -682,9 +686,9 @@ static int32_t btf_encoder__add_func_proto(struct btf_encoder *encoder, struct f
 		t = btf__type_by_id(btf, id);
 		btf_encoder__log_type(encoder, t, false, false, "return=%u args=(%s", t->type, !nr_params ? "void)\n" : "");
 	} else {
-		btf__log_err(btf, BTF_KIND_FUNC_PROTO, NULL, true,
-			      "return=%u vlen=%u Error emitting BTF type",
-			      type_id, nr_params);
+		btf__log_err(btf, BTF_KIND_FUNC_PROTO, NULL, true, id,
+			     "return=%u vlen=%u Error emitting BTF type",
+			     type_id, nr_params);
 		return id;
 	}
 
@@ -718,9 +722,9 @@ static int32_t btf_encoder__add_var(struct btf_encoder *encoder, uint32_t type,
 		t = btf__type_by_id(btf, id);
 		btf_encoder__log_type(encoder, t, false, true, "type=%u linkage=%u", t->type, btf_var(t)->linkage);
 	} else {
-		btf__log_err(btf, BTF_KIND_VAR, name, true,
-			      "type=%u linkage=%u Error emitting BTF type",
-			      type, linkage);
+		btf__log_err(btf, BTF_KIND_VAR, name, true, id,
+			     "type=%u linkage=%u Error emitting BTF type",
+			     type, linkage);
 	}
 	return id;
 }
@@ -781,9 +785,9 @@ static int32_t btf_encoder__add_datasec(struct btf_encoder *encoder, const char
 
 	id = btf__add_datasec(btf, section_name, datasec_sz);
 	if (id < 0) {
-		btf__log_err(btf, BTF_KIND_DATASEC, section_name, true,
-				 "size=%u vlen=%u Error emitting BTF type",
-				 datasec_sz, nr_var_secinfo);
+		btf__log_err(btf, BTF_KIND_DATASEC, section_name, true, id,
+			     "size=%u vlen=%u Error emitting BTF type",
+			     datasec_sz, nr_var_secinfo);
 	} else {
 		t = btf__type_by_id(btf, id);
 		btf_encoder__log_type(encoder, t, false, true, "size=%u vlen=%u", t->size, nr_var_secinfo);
@@ -819,7 +823,8 @@ static int32_t btf_encoder__add_decl_tag(struct btf_encoder *encoder, const char
 		btf_encoder__log_type(encoder, t, false, true, "type_id=%u component_idx=%d",
 				      t->type, component_idx);
 	} else {
-		btf__log_err(btf, BTF_KIND_DECL_TAG, value, true, "component_idx=%d Error emitting BTF type",
+		btf__log_err(btf, BTF_KIND_DECL_TAG, value, true, id,
+			     "component_idx=%d Error emitting BTF type",
 			     component_idx);
 	}
 
-- 
2.43.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH dwarves] btf_encoder: log libbpf errors when they cause encoding errors
  2024-07-25  7:55 [PATCH dwarves] btf_encoder: log libbpf errors when they cause encoding errors Alan Maguire
@ 2024-07-25 12:48 ` Jiri Olsa
  2024-07-26 12:31 ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 3+ messages in thread
From: Jiri Olsa @ 2024-07-25 12:48 UTC (permalink / raw)
  To: Alan Maguire; +Cc: acme, cavok, ben, dwarves, bpf

On Thu, Jul 25, 2024 at 08:55:20AM +0100, Alan Maguire wrote:
> libbpf returns a negative error code when adding types fails.
> Pass it into btf__log_err() and display the libbpf error when
> negative.  Nearly all use cases of btf__log_err() happen as a
> result of a libbpf-returned error, pass 0 for the exceptions.

the more info the better ;-) lgtm

Reviewed-by: Jiri Olsa <jolsa@kernel.org>

jirka

> 
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
> ---
>  btf_encoder.c | 45 +++++++++++++++++++++++++--------------------
>  1 file changed, 25 insertions(+), 20 deletions(-)
> 
> diff --git a/btf_encoder.c b/btf_encoder.c
> index c2df2bc..adc38c3 100644
> --- a/btf_encoder.c
> +++ b/btf_encoder.c
> @@ -237,9 +237,9 @@ static const char * btf__int_encoding_str(uint8_t encoding)
>  		return "UNKN";
>  }
>  
> -__attribute ((format (printf, 5, 6)))
> +__attribute ((format (printf, 6, 7)))
>  static void btf__log_err(const struct btf *btf, int kind, const char *name,
> -			 bool output_cr, const char *fmt, ...)
> +			 bool output_cr, int libbpf_err, const char *fmt, ...)
>  {
>  	fprintf(stderr, "[%u] %s %s", btf__type_cnt(btf),
>  		btf_kind_str[kind], name ?: "(anon)");
> @@ -253,6 +253,9 @@ static void btf__log_err(const struct btf *btf, int kind, const char *name,
>  		va_end(ap);
>  	}
>  
> +	if (libbpf_err < 0)
> +		fprintf(stderr, " (libbpf error %d)", libbpf_err);
> +
>  	if (output_cr)
>  		fprintf(stderr, "\n");
>  }
> @@ -355,7 +358,8 @@ static int32_t btf_encoder__add_float(struct btf_encoder *encoder, const struct
>  	int32_t id = btf__add_float(encoder->btf, name, BITS_ROUNDUP_BYTES(bt->bit_size));
>  
>  	if (id < 0) {
> -		btf__log_err(encoder->btf, BTF_KIND_FLOAT, name, true, "Error emitting BTF type");
> +		btf__log_err(encoder->btf, BTF_KIND_FLOAT, name, true, id,
> +			     "Error emitting BTF type");
>  	} else {
>  		const struct btf_type *t;
>  
> @@ -429,7 +433,7 @@ static int32_t btf_encoder__add_base_type(struct btf_encoder *encoder, const str
>  
>  	id = btf__add_int(encoder->btf, name, byte_sz, encoding);
>  	if (id < 0) {
> -		btf__log_err(encoder->btf, BTF_KIND_INT, name, true, "Error emitting BTF type");
> +		btf__log_err(encoder->btf, BTF_KIND_INT, name, true, id, "Error emitting BTF type");
>  	} else {
>  		t = btf__type_by_id(encoder->btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u nr_bits=%u encoding=%s%s",
> @@ -473,7 +477,7 @@ static int32_t btf_encoder__add_ref_type(struct btf_encoder *encoder, uint16_t k
>  		id = btf__add_func(btf, name, BTF_FUNC_STATIC, type);
>  		break;
>  	default:
> -		btf__log_err(btf, kind, name, true, "Unexpected kind for reference");
> +		btf__log_err(btf, kind, name, true, 0, "Unexpected kind for reference");
>  		return -1;
>  	}
>  
> @@ -484,7 +488,7 @@ static int32_t btf_encoder__add_ref_type(struct btf_encoder *encoder, uint16_t k
>  		else
>  			btf_encoder__log_type(encoder, t, false, true, "type_id=%u", t->type);
>  	} else {
> -		btf__log_err(btf, kind, name, true, "Error emitting BTF type");
> +		btf__log_err(btf, kind, name, true, id, "Error emitting BTF type");
>  	}
>  	return id;
>  }
> @@ -503,7 +507,7 @@ static int32_t btf_encoder__add_array(struct btf_encoder *encoder, uint32_t type
>  		btf_encoder__log_type(encoder, t, false, true, "type_id=%u index_type_id=%u nr_elems=%u",
>  				      array->type, array->index_type, array->nelems);
>  	} else {
> -		btf__log_err(btf, BTF_KIND_ARRAY, NULL, true,
> +		btf__log_err(btf, BTF_KIND_ARRAY, NULL, true, id,
>  			      "type_id=%u index_type_id=%u nr_elems=%u Error emitting BTF type",
>  			      type, index_type, nelems);
>  	}
> @@ -545,12 +549,12 @@ static int32_t btf_encoder__add_struct(struct btf_encoder *encoder, uint8_t kind
>  		id = btf__add_union(btf, name, size);
>  		break;
>  	default:
> -		btf__log_err(btf, kind, name, true, "Unexpected kind of struct");
> +		btf__log_err(btf, kind, name, true, 0, "Unexpected kind of struct");
>  		return -1;
>  	}
>  
>  	if (id < 0) {
> -		btf__log_err(btf, kind, name, true, "Error emitting BTF type");
> +		btf__log_err(btf, kind, name, true, id, "Error emitting BTF type");
>  	} else {
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u", t->size);
> @@ -600,7 +604,7 @@ static int32_t btf_encoder__add_enum(struct btf_encoder *encoder, const char *na
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u", t->size);
>  	} else {
> -		btf__log_err(btf, is_enum32 ? BTF_KIND_ENUM : BTF_KIND_ENUM64, name, true,
> +		btf__log_err(btf, is_enum32 ? BTF_KIND_ENUM : BTF_KIND_ENUM64, name, true, id,
>  			      "size=%u Error emitting BTF type", size);
>  	}
>  	return id;
> @@ -682,9 +686,9 @@ static int32_t btf_encoder__add_func_proto(struct btf_encoder *encoder, struct f
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, false, "return=%u args=(%s", t->type, !nr_params ? "void)\n" : "");
>  	} else {
> -		btf__log_err(btf, BTF_KIND_FUNC_PROTO, NULL, true,
> -			      "return=%u vlen=%u Error emitting BTF type",
> -			      type_id, nr_params);
> +		btf__log_err(btf, BTF_KIND_FUNC_PROTO, NULL, true, id,
> +			     "return=%u vlen=%u Error emitting BTF type",
> +			     type_id, nr_params);
>  		return id;
>  	}
>  
> @@ -718,9 +722,9 @@ static int32_t btf_encoder__add_var(struct btf_encoder *encoder, uint32_t type,
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "type=%u linkage=%u", t->type, btf_var(t)->linkage);
>  	} else {
> -		btf__log_err(btf, BTF_KIND_VAR, name, true,
> -			      "type=%u linkage=%u Error emitting BTF type",
> -			      type, linkage);
> +		btf__log_err(btf, BTF_KIND_VAR, name, true, id,
> +			     "type=%u linkage=%u Error emitting BTF type",
> +			     type, linkage);
>  	}
>  	return id;
>  }
> @@ -781,9 +785,9 @@ static int32_t btf_encoder__add_datasec(struct btf_encoder *encoder, const char
>  
>  	id = btf__add_datasec(btf, section_name, datasec_sz);
>  	if (id < 0) {
> -		btf__log_err(btf, BTF_KIND_DATASEC, section_name, true,
> -				 "size=%u vlen=%u Error emitting BTF type",
> -				 datasec_sz, nr_var_secinfo);
> +		btf__log_err(btf, BTF_KIND_DATASEC, section_name, true, id,
> +			     "size=%u vlen=%u Error emitting BTF type",
> +			     datasec_sz, nr_var_secinfo);
>  	} else {
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u vlen=%u", t->size, nr_var_secinfo);
> @@ -819,7 +823,8 @@ static int32_t btf_encoder__add_decl_tag(struct btf_encoder *encoder, const char
>  		btf_encoder__log_type(encoder, t, false, true, "type_id=%u component_idx=%d",
>  				      t->type, component_idx);
>  	} else {
> -		btf__log_err(btf, BTF_KIND_DECL_TAG, value, true, "component_idx=%d Error emitting BTF type",
> +		btf__log_err(btf, BTF_KIND_DECL_TAG, value, true, id,
> +			     "component_idx=%d Error emitting BTF type",
>  			     component_idx);
>  	}
>  
> -- 
> 2.43.5
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH dwarves] btf_encoder: log libbpf errors when they cause encoding errors
  2024-07-25  7:55 [PATCH dwarves] btf_encoder: log libbpf errors when they cause encoding errors Alan Maguire
  2024-07-25 12:48 ` Jiri Olsa
@ 2024-07-26 12:31 ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2024-07-26 12:31 UTC (permalink / raw)
  To: Alan Maguire; +Cc: cavok, jolsa, ben, dwarves, bpf

On Thu, Jul 25, 2024 at 08:55:20AM +0100, Alan Maguire wrote:
> libbpf returns a negative error code when adding types fails.
> Pass it into btf__log_err() and display the libbpf error when
> negative.  Nearly all use cases of btf__log_err() happen as a
> result of a libbpf-returned error, pass 0 for the exceptions.

Thanks, applied.

- Arnaldo
 
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
> ---
>  btf_encoder.c | 45 +++++++++++++++++++++++++--------------------
>  1 file changed, 25 insertions(+), 20 deletions(-)
> 
> diff --git a/btf_encoder.c b/btf_encoder.c
> index c2df2bc..adc38c3 100644
> --- a/btf_encoder.c
> +++ b/btf_encoder.c
> @@ -237,9 +237,9 @@ static const char * btf__int_encoding_str(uint8_t encoding)
>  		return "UNKN";
>  }
>  
> -__attribute ((format (printf, 5, 6)))
> +__attribute ((format (printf, 6, 7)))
>  static void btf__log_err(const struct btf *btf, int kind, const char *name,
> -			 bool output_cr, const char *fmt, ...)
> +			 bool output_cr, int libbpf_err, const char *fmt, ...)
>  {
>  	fprintf(stderr, "[%u] %s %s", btf__type_cnt(btf),
>  		btf_kind_str[kind], name ?: "(anon)");
> @@ -253,6 +253,9 @@ static void btf__log_err(const struct btf *btf, int kind, const char *name,
>  		va_end(ap);
>  	}
>  
> +	if (libbpf_err < 0)
> +		fprintf(stderr, " (libbpf error %d)", libbpf_err);
> +
>  	if (output_cr)
>  		fprintf(stderr, "\n");
>  }
> @@ -355,7 +358,8 @@ static int32_t btf_encoder__add_float(struct btf_encoder *encoder, const struct
>  	int32_t id = btf__add_float(encoder->btf, name, BITS_ROUNDUP_BYTES(bt->bit_size));
>  
>  	if (id < 0) {
> -		btf__log_err(encoder->btf, BTF_KIND_FLOAT, name, true, "Error emitting BTF type");
> +		btf__log_err(encoder->btf, BTF_KIND_FLOAT, name, true, id,
> +			     "Error emitting BTF type");
>  	} else {
>  		const struct btf_type *t;
>  
> @@ -429,7 +433,7 @@ static int32_t btf_encoder__add_base_type(struct btf_encoder *encoder, const str
>  
>  	id = btf__add_int(encoder->btf, name, byte_sz, encoding);
>  	if (id < 0) {
> -		btf__log_err(encoder->btf, BTF_KIND_INT, name, true, "Error emitting BTF type");
> +		btf__log_err(encoder->btf, BTF_KIND_INT, name, true, id, "Error emitting BTF type");
>  	} else {
>  		t = btf__type_by_id(encoder->btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u nr_bits=%u encoding=%s%s",
> @@ -473,7 +477,7 @@ static int32_t btf_encoder__add_ref_type(struct btf_encoder *encoder, uint16_t k
>  		id = btf__add_func(btf, name, BTF_FUNC_STATIC, type);
>  		break;
>  	default:
> -		btf__log_err(btf, kind, name, true, "Unexpected kind for reference");
> +		btf__log_err(btf, kind, name, true, 0, "Unexpected kind for reference");
>  		return -1;
>  	}
>  
> @@ -484,7 +488,7 @@ static int32_t btf_encoder__add_ref_type(struct btf_encoder *encoder, uint16_t k
>  		else
>  			btf_encoder__log_type(encoder, t, false, true, "type_id=%u", t->type);
>  	} else {
> -		btf__log_err(btf, kind, name, true, "Error emitting BTF type");
> +		btf__log_err(btf, kind, name, true, id, "Error emitting BTF type");
>  	}
>  	return id;
>  }
> @@ -503,7 +507,7 @@ static int32_t btf_encoder__add_array(struct btf_encoder *encoder, uint32_t type
>  		btf_encoder__log_type(encoder, t, false, true, "type_id=%u index_type_id=%u nr_elems=%u",
>  				      array->type, array->index_type, array->nelems);
>  	} else {
> -		btf__log_err(btf, BTF_KIND_ARRAY, NULL, true,
> +		btf__log_err(btf, BTF_KIND_ARRAY, NULL, true, id,
>  			      "type_id=%u index_type_id=%u nr_elems=%u Error emitting BTF type",
>  			      type, index_type, nelems);
>  	}
> @@ -545,12 +549,12 @@ static int32_t btf_encoder__add_struct(struct btf_encoder *encoder, uint8_t kind
>  		id = btf__add_union(btf, name, size);
>  		break;
>  	default:
> -		btf__log_err(btf, kind, name, true, "Unexpected kind of struct");
> +		btf__log_err(btf, kind, name, true, 0, "Unexpected kind of struct");
>  		return -1;
>  	}
>  
>  	if (id < 0) {
> -		btf__log_err(btf, kind, name, true, "Error emitting BTF type");
> +		btf__log_err(btf, kind, name, true, id, "Error emitting BTF type");
>  	} else {
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u", t->size);
> @@ -600,7 +604,7 @@ static int32_t btf_encoder__add_enum(struct btf_encoder *encoder, const char *na
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u", t->size);
>  	} else {
> -		btf__log_err(btf, is_enum32 ? BTF_KIND_ENUM : BTF_KIND_ENUM64, name, true,
> +		btf__log_err(btf, is_enum32 ? BTF_KIND_ENUM : BTF_KIND_ENUM64, name, true, id,
>  			      "size=%u Error emitting BTF type", size);
>  	}
>  	return id;
> @@ -682,9 +686,9 @@ static int32_t btf_encoder__add_func_proto(struct btf_encoder *encoder, struct f
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, false, "return=%u args=(%s", t->type, !nr_params ? "void)\n" : "");
>  	} else {
> -		btf__log_err(btf, BTF_KIND_FUNC_PROTO, NULL, true,
> -			      "return=%u vlen=%u Error emitting BTF type",
> -			      type_id, nr_params);
> +		btf__log_err(btf, BTF_KIND_FUNC_PROTO, NULL, true, id,
> +			     "return=%u vlen=%u Error emitting BTF type",
> +			     type_id, nr_params);
>  		return id;
>  	}
>  
> @@ -718,9 +722,9 @@ static int32_t btf_encoder__add_var(struct btf_encoder *encoder, uint32_t type,
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "type=%u linkage=%u", t->type, btf_var(t)->linkage);
>  	} else {
> -		btf__log_err(btf, BTF_KIND_VAR, name, true,
> -			      "type=%u linkage=%u Error emitting BTF type",
> -			      type, linkage);
> +		btf__log_err(btf, BTF_KIND_VAR, name, true, id,
> +			     "type=%u linkage=%u Error emitting BTF type",
> +			     type, linkage);
>  	}
>  	return id;
>  }
> @@ -781,9 +785,9 @@ static int32_t btf_encoder__add_datasec(struct btf_encoder *encoder, const char
>  
>  	id = btf__add_datasec(btf, section_name, datasec_sz);
>  	if (id < 0) {
> -		btf__log_err(btf, BTF_KIND_DATASEC, section_name, true,
> -				 "size=%u vlen=%u Error emitting BTF type",
> -				 datasec_sz, nr_var_secinfo);
> +		btf__log_err(btf, BTF_KIND_DATASEC, section_name, true, id,
> +			     "size=%u vlen=%u Error emitting BTF type",
> +			     datasec_sz, nr_var_secinfo);
>  	} else {
>  		t = btf__type_by_id(btf, id);
>  		btf_encoder__log_type(encoder, t, false, true, "size=%u vlen=%u", t->size, nr_var_secinfo);
> @@ -819,7 +823,8 @@ static int32_t btf_encoder__add_decl_tag(struct btf_encoder *encoder, const char
>  		btf_encoder__log_type(encoder, t, false, true, "type_id=%u component_idx=%d",
>  				      t->type, component_idx);
>  	} else {
> -		btf__log_err(btf, BTF_KIND_DECL_TAG, value, true, "component_idx=%d Error emitting BTF type",
> +		btf__log_err(btf, BTF_KIND_DECL_TAG, value, true, id,
> +			     "component_idx=%d Error emitting BTF type",
>  			     component_idx);
>  	}
>  
> -- 
> 2.43.5

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-07-26 12:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-25  7:55 [PATCH dwarves] btf_encoder: log libbpf errors when they cause encoding errors Alan Maguire
2024-07-25 12:48 ` Jiri Olsa
2024-07-26 12:31 ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.