blob: 52a41d65a781a3761ba33f34268f75d30e493827 [file] [log] [blame]
// Copyright (c) 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/tracing/common/trace_to_console.h"
#include <string>
#include "base/command_line.h"
#include "components/tracing/common/tracing_switches.h"
namespace tracing {
namespace {
// These categories will cause deadlock when ECHO_TO_CONSOLE. crbug.com/325575.
const char kEchoToConsoleCategoryFilter[] = "-ipc,-toplevel";
} // namespace
base::trace_event::TraceConfig GetConfigForTraceToConsole() {
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
DCHECK(command_line.HasSwitch(switches::kTraceToConsole));
std::string filter = command_line.GetSwitchValueASCII(
switches::kTraceToConsole);
if (filter.empty()) {
filter = kEchoToConsoleCategoryFilter;
} else {
filter.append(",");
filter.append(kEchoToConsoleCategoryFilter);
}
return base::trace_event::TraceConfig(
filter, base::trace_event::ECHO_TO_CONSOLE);
}
} // namespace tracing