From: Mark Wielaard Date: Fri, 11 Mar 2022 14:44:21 +0000 (+0100) Subject: addr2line: Make --absolute the default, add --relative option. X-Git-Tag: elfutils-0.187~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e39d31c4ec1c8f7eb16886f8b7fd04c0a4f2462;p=thirdparty%2Felfutils.git addr2line: Make --absolute the default, add --relative option. Make --absolute (including the compilation directory in file names) the default and add a new option --relative to get the previous default behavior. https://www.sourceware.org/bugzilla/show_bug.cgi?id=28951 Signed-off-by: Mark Wielaard --- diff --git a/ChangeLog b/ChangeLog index bfa666c05..f0ea04be2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2021-03-11 Mark Wielaard + + * NEWS: Document new --relative option for addr2line. + 2022-03-10 Mark Wielaard * configure.ac: Move AC_PROG_CXX earlier. Check for both diff --git a/NEWS b/NEWS index 6be58866f..ea74c019f 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ Version 0.187 after 0.186 debuginfod: Support -C option for connection thread pooling. +addr2line: The -A, --absolute option, which shows file names including + the full compilation directory is now the default. To get the + old behavior use the new option --relative. Version 0.186 diff --git a/src/ChangeLog b/src/ChangeLog index 263e9faaf..0e705b7dc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2022-03-11 Mark Wielaard + + * addr2line.c (OPT_RELATIVE): New constant. + (options): Add --relative. + (use_comp_dir): Initialize to true. + (parse_opt): Handle OPT_RELATIVE. + 2021-12-04 Mark Wielaard * readelf.c (print_ehdr): Pass sizeof (buf) - 1 to strncpy. diff --git a/src/addr2line.c b/src/addr2line.c index 349450469..7c8d3a726 100644 --- a/src/addr2line.c +++ b/src/addr2line.c @@ -1,5 +1,6 @@ /* Locate source files and line information for given addresses Copyright (C) 2005-2010, 2012, 2013, 2015 Red Hat, Inc. + Copyright (C) 2022 Mark J. Wielaard This file is part of elfutils. Written by Ulrich Drepper , 2005. @@ -49,7 +50,8 @@ ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT; /* Values for the parameters which have no short form. */ #define OPT_DEMANGLER 0x100 -#define OPT_PRETTY 0x101 /* 'p' is already used to select the process. */ +#define OPT_PRETTY 0x101 /* 'p' is already used to select the process. */ +#define OPT_RELATIVE 0x102 /* 'r' is something else in binutils addr2line. */ /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = @@ -62,7 +64,7 @@ static const struct argp_option options[] = { "addresses", 'a', NULL, 0, N_("Print address before each entry"), 0 }, { "basenames", 's', NULL, 0, N_("Show only base names of source files"), 0 }, { "absolute", 'A', NULL, 0, - N_("Show absolute file names using compilation directory"), 0 }, + N_("Show absolute file names using compilation directory (default)"), 0 }, { "functions", 'f', NULL, 0, N_("Also show function names"), 0 }, { "symbols", 'S', NULL, 0, N_("Also show symbol or section names"), 0 }, { "symbols-sections", 'x', NULL, 0, N_("Also show symbol and the section names"), 0 }, @@ -74,6 +76,8 @@ static const struct argp_option options[] = N_("Show demangled symbols (ARG is always ignored)"), 0 }, { "pretty-print", OPT_PRETTY, NULL, 0, N_("Print all information on one line, and indent inlines"), 0 }, + { "relative", OPT_RELATIVE, NULL, 0, + N_("Show relative file names without compilation directory"), 0 }, { NULL, 0, NULL, 0, N_("Miscellaneous:"), 0 }, /* Unsupported options. */ @@ -111,7 +115,7 @@ static bool print_addresses; static bool only_basenames; /* True if absolute file names based on DW_AT_comp_dir should be shown. */ -static bool use_comp_dir; +static bool use_comp_dir = true; /* True if line flags should be shown. */ static bool show_flags; @@ -236,6 +240,10 @@ parse_opt (int key, char *arg, struct argp_state *state) use_comp_dir = true; break; + case OPT_RELATIVE: + use_comp_dir = false; + break; + case 'f': show_functions = true; break;