#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) { … }
bool IsMagicalKernelMapping(const CreateMappingParams& params) { … }
}
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) { … }
}
}