Commit ed44cec5 authored by Oystein Eftevaag's avatar Oystein Eftevaag Committed by Commit Bot

Fix memlog JSON export when Perfetto is enabled

Added a switch to force JSON-backed TracedValue writer mode and
switch memlog to use it.

R=erikchen@chromium.org,ssid@chromium.org

Bug: 839084
Change-Id: I456b4a225112205993299ad98b39c75b55d59ca3
Reviewed-on: https://chromium-review.googlesource.com/c/1480825Reviewed-by: default avatarssid <ssid@chromium.org>
Reviewed-by: default avatarErik Chen <erikchen@chromium.org>
Commit-Queue: oysteine <oysteine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634323}
parent ae2cbb8c
......@@ -456,10 +456,11 @@ void TracedValue::SetWriterFactoryCallback(WriterFactoryCallback callback) {
TracedValue::TracedValue() : TracedValue(0) {}
TracedValue::TracedValue(size_t capacity) {
TracedValue::TracedValue(size_t capacity, bool force_json) {
DEBUG_PUSH_CONTAINER(kStackTypeDict);
writer_ = CreateWriter(capacity);
writer_ = force_json ? std::make_unique<PickleWriter>(capacity)
: CreateWriter(capacity);
}
TracedValue::~TracedValue() {
......
......@@ -25,7 +25,7 @@ namespace trace_event {
class BASE_EXPORT TracedValue : public ConvertableToTraceFormat {
public:
TracedValue();
explicit TracedValue(size_t capacity);
explicit TracedValue(size_t capacity, bool force_json = false);
~TracedValue() override;
void EndDictionary();
......
......@@ -160,7 +160,7 @@ void WriteHeapsV2Footer(std::ostream& out) {
}
void WriteMemoryMaps(const ExportParams& params, std::ostream& out) {
base::trace_event::TracedValue traced_value;
base::trace_event::TracedValue traced_value(0, /*force_json=*/true);
memory_instrumentation::TracingObserver::MemoryMapsAsValueInto(
params.maps, &traced_value, params.strip_path_from_mapped_files);
out << "\"process_mmaps\":" << traced_value.ToString();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment