#include "src/trace_processor/importers/proto/heap_graph_module.h"
#include "src/trace_processor/importers/common/parser_types.h"
#include "src/trace_processor/importers/common/process_tracker.h"
#include "src/trace_processor/importers/proto/heap_graph_tracker.h"
#include "src/trace_processor/storage/trace_storage.h"
#include "src/trace_processor/types/trace_processor_context.h"
#include "src/trace_processor/util/profiler_util.h"
#include "protos/perfetto/trace/profiling/deobfuscation.pbzero.h"
#include "protos/perfetto/trace/profiling/heap_graph.pbzero.h"
#include "protos/perfetto/trace/profiling/profile_common.pbzero.h"
namespace perfetto {
namespace trace_processor {
namespace {
ClassTable;
ObjectTable;
ReferenceTable;
template <int32_t field_no, typename T, typename F>
bool ForEachVarInt(const T& decoder, F fn) { … }
}
TracePacket;
HeapGraphModule::HeapGraphModule(TraceProcessorContext* context)
: … { … }
void HeapGraphModule::ParseTracePacketData(
const protos::pbzero::TracePacket::Decoder& decoder,
int64_t ts,
const TracePacketData&,
uint32_t field_id) { … }
void HeapGraphModule::ParseHeapGraph(uint32_t seq_id,
int64_t ts,
protozero::ConstBytes blob) { … }
void HeapGraphModule::DeobfuscateClass(
std::optional<StringId> package_name_id,
StringId obfuscated_class_name_id,
const protos::pbzero::ObfuscatedClass::Decoder& cls) { … }
void HeapGraphModule::ParseDeobfuscationMapping(protozero::ConstBytes blob) { … }
void HeapGraphModule::NotifyEndOfFile() { … }
}
}