public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
From: Mark Wielaard <mark@klomp.org>
To: elfutils-devel@sourceware.org
Cc: Mark Wielaard <mark@klomp.org>
Subject: [PATCH] addr2line: Make --absolute the default, add --relative option.
Date: Fri, 11 Mar 2022 15:49:10 +0100	[thread overview]
Message-ID: <20220311144910.20892-1-mark@klomp.org> (raw)

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 <mark@klomp.org>
---
 ChangeLog       |  4 ++++
 NEWS            |  3 +++
 src/ChangeLog   |  7 +++++++
 src/addr2line.c | 14 +++++++++++---
 4 files changed, 25 insertions(+), 3 deletions(-)

https://code.wildebeest.org/git/user/mjw/elfutils/commit/?h=addr2line-relative

diff --git a/ChangeLog b/ChangeLog
index f00db17b..4035dffb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2021-03-11  Mark Wielaard  <mark@klomp.org>
+
+	* NEWS: Document new --relative option for addr2line.
+
 2021-12-04  Mark Wielaard  <mark@klomp.org>
 
 	* configure.ac: Add --enable-sanitize-address.
diff --git a/NEWS b/NEWS
index 6be58866..ea74c019 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 263e9faa..0e705b7d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2022-03-11  Mark Wielaard  <mark@klomp.org>
+
+	* 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  <mark@klomp.org>
 
 	* readelf.c (print_ehdr): Pass sizeof (buf) - 1 to strncpy.
diff --git a/src/addr2line.c b/src/addr2line.c
index 34945046..7c8d3a72 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 <mark@klomp.org>
    This file is part of elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 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;
-- 
2.18.4


             reply	other threads:[~2022-03-11 14:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-11 14:49 Mark Wielaard [this message]
2022-03-14 12:06 ` Mark Wielaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220311144910.20892-1-mark@klomp.org \
    --to=mark@klomp.org \
    --cc=elfutils-devel@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).