chromium/third_party/perfetto/src/trace_processor/importers/proto/stack_profile_sequence_state.cc

/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "src/trace_processor/importers/proto/stack_profile_sequence_state.h"

#include <cstdint>
#include <optional>
#include <utility>
#include <vector>

#include "perfetto/base/logging.h"
#include "perfetto/ext/base/string_utils.h"
#include "perfetto/ext/base/string_view.h"
#include "protos/perfetto/trace/interned_data/interned_data.pbzero.h"
#include "protos/perfetto/trace/profiling/profile_common.pbzero.h"
#include "src/trace_processor/importers/common/address_range.h"
#include "src/trace_processor/importers/common/mapping_tracker.h"
#include "src/trace_processor/importers/common/process_tracker.h"
#include "src/trace_processor/importers/common/stack_profile_tracker.h"
#include "src/trace_processor/importers/proto/packet_sequence_state_generation.h"
#include "src/trace_processor/importers/proto/profile_packet_utils.h"
#include "src/trace_processor/storage/stats.h"
#include "src/trace_processor/storage/trace_storage.h"
#include "src/trace_processor/types/trace_processor_context.h"
#include "src/trace_processor/util/build_id.h"

namespace perfetto {
namespace trace_processor {
namespace {
base::StringView ToStringView(protozero::ConstBytes bytes) {}

// Determine wether this is the magical kernel mapping created in
// `perfetto::::profiling::Unwinder::SymbolizeKernelCallchain`
bool IsMagicalKernelMapping(const CreateMappingParams& params) {}

}  // namespace

StackProfileSequenceState::StackProfileSequenceState(
    TraceProcessorContext* context)
    :{}

StackProfileSequenceState::~StackProfileSequenceState() = default;

VirtualMemoryMapping* StackProfileSequenceState::FindOrInsertMapping(
    uint64_t iid) {}

VirtualMemoryMapping* StackProfileSequenceState::FindOrInsertMappingImpl(
    std::optional<UniquePid> upid,
    uint64_t iid) {}

std::optional<base::StringView>
StackProfileSequenceState::LookupInternedBuildId(uint64_t iid) {}

std::optional<base::StringView>
StackProfileSequenceState::LookupInternedMappingPath(uint64_t iid) {}

std::optional<CallsiteId> StackProfileSequenceState::FindOrInsertCallstack(
    UniquePid upid,
    uint64_t iid) {}

std::optional<FrameId> StackProfileSequenceState::FindOrInsertFrame(
    UniquePid upid,
    uint64_t iid) {}

std::optional<base::StringView>
StackProfileSequenceState::LookupInternedFunctionName(uint64_t iid) {}

}  // namespace trace_processor
}  // namespace perfetto