[PATCH] libdwfl/argp-std.c: Set offline_next_address for a.out default
Aaron Merey
amerey@redhat.com
Tue Jan 21 00:38:09 GMT 2025
If none of -e, -p or -k is given as a command line option, libdwfl
parse_opt will use '-e a.out' as the default.
When handling -e, parse_opt will set dwfl->offline_next_address
to 0. However when handling the default '-e a.out',
dwfl->offline_next_address is not set to 0. This can result in
eu-addr2line failing to correctly output the line information for a
given address.
Fix this by setting dwfl->offline_next_address to 0 when setting up
the default '-e a.out' dwfl.
https://sourceware.org/bugzilla/show_bug.cgi?id=32538
Signed-off-by: Aaron Merey <amerey@redhat.com>
---
libdwfl/argp-std.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libdwfl/argp-std.c b/libdwfl/argp-std.c
index 1605fbfe..55e98715 100644
--- a/libdwfl/argp-std.c
+++ b/libdwfl/argp-std.c
@@ -268,6 +268,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
/* Default if no -e, -p, or -k, is "-e a.out". */
arg = "a.out";
dwfl = INTUSE(dwfl_begin) (&offline_callbacks);
+
+ if (dwfl != NULL)
+ dwfl->offline_next_address = 0;
if (INTUSE(dwfl_report_offline) (dwfl, "", arg, -1) == NULL)
return fail (dwfl, -1, arg, state);
opt->dwfl = dwfl;
--
2.47.1
More information about the Elfutils-devel
mailing list