Flutter Engine
The Flutter Engine
Classes | Namespaces | Functions | Variables
profiler.cc File Reference
#include "vm/profiler.h"
#include "platform/address_sanitizer.h"
#include "platform/atomic.h"
#include "platform/memory_sanitizer.h"
#include "platform/utils.h"
#include "vm/allocation.h"
#include "vm/code_patcher.h"
#include "vm/compiler/compiler_state.h"
#include "vm/debugger.h"
#include "vm/instructions.h"
#include "vm/isolate.h"
#include "vm/json_stream.h"
#include "vm/lockers.h"
#include "vm/message_handler.h"
#include "vm/native_symbol.h"
#include "vm/object.h"
#include "vm/os.h"
#include "vm/profiler_service.h"
#include "vm/reusable_handles.h"
#include "vm/signal_handler.h"
#include "vm/simulator.h"
#include "vm/stack_frame.h"
#include "vm/timeline.h"
#include "vm/version.h"

Go to the source code of this file.

Classes

class  dart::ProfilerStackWalker
 
class  dart::ProfilerNativeStackWalker
 
class  dart::SampleBlockCleanupVisitor
 
class  dart::ReturnAddressLocator
 
class  dart::ProfilerDartStackWalker
 
class  dart::CodeLookupTableBuilder
 
class  dart::StreamableSampleFilter
 

Namespaces

namespace  dart
 

Functions

 dart::DEFINE_FLAG (bool, trace_profiled_isolates, false, "Trace profiled isolates.")
 
 dart::DEFINE_FLAG (int, profile_period, 1000, "Time between profiler samples in microseconds. Minimum 50.")
 
 dart::DEFINE_FLAG (int, max_profile_depth, Sample::kPCArraySizeInWords *kMaxSamplesPerTick, "Maximum number stack frames walked. Minimum 1. Maximum 255.")
 
 dart::DEFINE_FLAG (bool, profile_vm, false, "Always collect native stack traces.")
 
 dart::DEFINE_FLAG (bool, profile_vm_allocation, false, "Collect native stack traces when tracing Dart allocations.")
 
 dart::DEFINE_FLAG (int, sample_buffer_duration, 0, "Defines the size of the profiler sample buffer to contain at least " "N seconds of samples at a given sample rate. If not provided, the " "default is ~4 seconds. Large values will greatly increase memory " "consumption.")
 
static void dart::DumpStackFrame (uword pc, uword fp, const char *name, uword offset)
 
void dart::DumpStackFrame (intptr_t frame_index, uword pc, uword fp)
 
static bool dart::ValidateThreadStackBounds (uintptr_t fp, uintptr_t sp, uword stack_lower, uword stack_upper)
 
static bool dart::GetAndValidateThreadStackBounds (OSThread *os_thread, Thread *thread, uintptr_t fp, uintptr_t sp, uword *stack_lower, uword *stack_upper)
 
static bool dart::GetAndValidateCurrentThreadStackBounds (uintptr_t fp, uintptr_t sp, uword *stack_lower, uword *stack_upper)
 
static void dart::DumpCompilerState (Thread *thread)
 
static intptr_t dart::SamplesPerSecond ()
 
static void dart::FlushSampleBlocks (Isolate *isolate)
 
static void dart::CopyStackBuffer (Sample *sample, uword sp_addr)
 
static void dart::CollectSample (Isolate *isolate, bool exited_dart_code, bool in_dart_code, Sample *sample, ProfilerNativeStackWalker *native_stack_walker, ProfilerDartStackWalker *dart_stack_walker, uword pc, uword fp, uword sp, ProfilerCounters *counters)
 
static Sampledart::SetupSample (Thread *thread, bool allocation_sample, ThreadId tid)
 
static bool dart::CheckIsolate (Isolate *isolate)
 

Variables

static constexpr intptr_t dart::kMaxSamplesPerTick = 4