[PATCH] D76733: New symbolizer option to print files relative to the compilation directory.
Sterling Augustine via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 24 15:06:46 PDT 2020
saugustine created this revision.
Herald added subscribers: llvm-commits, rupprecht, MaskRay.
Herald added a reviewer: jhenderson.
Herald added a project: LLVM.
New "--relative" option to allow printing files relative to the compilation directory.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D76733
Files:
llvm/test/tools/llvm-symbolizer/relativenames.s
llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
Index: llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
===================================================================
--- llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
+++ llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
@@ -77,6 +77,12 @@
static cl::alias ClBasenamesShort("s", cl::desc("Alias for -basenames"),
cl::NotHidden, cl::aliasopt(ClBasenames));
+// -relativenames, -r
+static cl::opt<bool> ClRelativenames("relativenames", cl::init(false),
+ cl::desc("Strip the compilation directory from paths"));
+static cl::alias ClRelativenamesShort("r", cl::desc("Alias for -relativenames"),
+ cl::NotHidden, cl::aliasopt(ClRelativenames));
+
// -demangle, -C, -no-demangle
static cl::opt<bool>
ClDemangle("demangle", cl::init(true), cl::desc("Demangle function names"));
@@ -310,8 +316,11 @@
Opts.DWPName = ClDwpName;
Opts.DebugFileDirectory = ClDebugFileDirectory;
Opts.PathStyle = DILineInfoSpecifier::FileLineInfoKind::AbsoluteFilePath;
- if (ClBasenames)
+ // If both --basenames and --relativenames are specified then pick the last one.
+ if (ClBasenames.getPosition() > ClRelativenames.getPosition())
Opts.PathStyle = DILineInfoSpecifier::FileLineInfoKind::BaseNameOnly;
+ else if (ClRelativenames)
+ Opts.PathStyle = DILineInfoSpecifier::FileLineInfoKind::RelativeFilePath;
for (const auto &hint : ClDsymHint) {
if (sys::path::extension(hint) == ".dSYM") {
Index: llvm/test/tools/llvm-symbolizer/relativenames.s
===================================================================
--- /dev/null
+++ llvm/test/tools/llvm-symbolizer/relativenames.s
@@ -0,0 +1,10 @@
+# REQUIRES: x86-registered-target
+
+foo:
+ nop
+
+# RUN: llvm-mc --filetype=obj --triple=x86_64-pc-linux %s -o %t.o -g
+# RUN: llvm-symbolizer 0 --relativenames --obj=%t.o | FileCheck %s -DDIR=%p
+# RUN: llvm-symbolizer 0 -r --obj=%t.o | FileCheck %s -DDIR=%p
+
+# CHECK: [[DIR]]{{\\|/}}relativenames.s:4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76733.252431.patch
Type: text/x-patch
Size: 2025 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200324/d1ea007c/attachment.bin>
More information about the llvm-commits
mailing list