Skip to content

Commit

Permalink
[Sanitizer Common] Show command used to launch symbolizer process at …
Browse files Browse the repository at this point in the history
…high verbosity level.

Summary:
In preparation for writing a test for a bug fix we need to be able to
see the command used to launch the symbolizer process. This feature
will likely be useful for debugging how the Sanitizers use the
symbolizer in general.

This patch causes the command line used to launch the process to be
shown at verbosity level 3 and higher.

A small test case is included.

Reviewers: kubamracek, yln, vitalybuka, eugenis, kcc

Subscribers: #sanitizers, llvm-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D77622
  • Loading branch information
delcypher committed Apr 13, 2020
1 parent bb0e6cc commit 2169568
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,16 @@ bool SymbolizerProcess::StartSymbolizerSubprocess() {
GetArgV(path_, argv);
pid_t pid;

// Report how symbolizer is being launched for debugging purposes.
if (Verbosity() >= 3) {
// Only use `Report` for first line so subsequent prints don't get prefixed
// with current PID.
Report("Launching Symbolizer process: ");
for (unsigned index = 0; index < kArgVMax && argv[index]; ++index)
Printf("%s ", argv[index]);
Printf("\n");
}

if (use_posix_spawn_) {
#if SANITIZER_MAC
fd_t fd = internal_spawn(argv, const_cast<const char **>(GetEnvP()), &pid);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// RUN: %clangxx %s -g -o %t
// RUN: %env_tool_opts=verbosity=3 %run %t 2>&1 | FileCheck %s
#include <sanitizer/common_interface_defs.h>

int main(int argc, char **argv) {
// CHECK: Launching Symbolizer process: {{.+}}
__sanitizer_print_stack_trace();
return 0;
}

0 comments on commit 2169568

Please sign in to comment.