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 <ame...@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