| Index: runtime/vm/profiler.cc
 | 
| diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
 | 
| index e597260ef88b15c17687e3eff6636eebd15e189c..2f1ae378005907a8bb16aa5418f4c3c9a08c7313 100644
 | 
| --- a/runtime/vm/profiler.cc
 | 
| +++ b/runtime/vm/profiler.cc
 | 
| @@ -290,6 +290,11 @@ bool ReturnAddressLocator::LocateReturnAddress(uword* return_address) {
 | 
|    ASSERT(return_address != NULL);
 | 
|    return false;
 | 
|  }
 | 
| +#elif defined(TARGET_ARCH_DBC)
 | 
| +bool ReturnAddressLocator::LocateReturnAddress(uword* return_address) {
 | 
| +  ASSERT(return_address != NULL);
 | 
| +  return false;
 | 
| +}
 | 
|  #else
 | 
|  #error ReturnAddressLocator implementation missing for this architecture.
 | 
|  #endif
 | 
| @@ -839,7 +844,7 @@ static Sample* SetupSample(Thread* thread,
 | 
|    Sample* sample = sample_buffer->ReserveSample();
 | 
|    sample->Init(isolate, OS::GetCurrentMonotonicMicros(), tid);
 | 
|    uword vm_tag = thread->vm_tag();
 | 
| -#if defined(USING_SIMULATOR)
 | 
| +#if defined(USING_SIMULATOR) && !defined(TARGET_ARCH_DBC)
 | 
|    // When running in the simulator, the runtime entry function address
 | 
|    // (stored as the vm tag) is the address of a redirect function.
 | 
|    // Attempt to find the real runtime entry function address and use that.
 | 
| @@ -973,6 +978,11 @@ void Profiler::SampleThreadSingleFrame(Thread* thread, uintptr_t pc) {
 | 
|  
 | 
|  void Profiler::SampleThread(Thread* thread,
 | 
|                              const InterruptedThreadState& state) {
 | 
| +#if defined(TARGET_ARCH_DBC)
 | 
| +  // TODO(vegorov) implement simulator stack sampling.
 | 
| +  return;
 | 
| +#endif
 | 
| +
 | 
|    ASSERT(thread != NULL);
 | 
|    OSThread* os_thread = thread->os_thread();
 | 
|    ASSERT(os_thread != NULL);
 | 
| @@ -996,13 +1006,15 @@ void Profiler::SampleThread(Thread* thread,
 | 
|    uintptr_t sp = 0;
 | 
|    uintptr_t fp = state.fp;
 | 
|    uintptr_t pc = state.pc;
 | 
| -#if defined(USING_SIMULATOR)
 | 
| +#if defined(USING_SIMULATOR) && !defined(TARGET_ARCH_DBC)
 | 
|    Simulator* simulator = NULL;
 | 
|  #endif
 | 
|  
 | 
|    if (in_dart_code) {
 | 
|      // If we're in Dart code, use the Dart stack pointer.
 | 
| -#if defined(USING_SIMULATOR)
 | 
| +#if defined(TARGET_ARCH_DBC)
 | 
| +    UNIMPLEMENTED();
 | 
| +#elif defined(USING_SIMULATOR)
 | 
|      simulator = isolate->simulator();
 | 
|      sp = simulator->get_register(SPREG);
 | 
|      fp = simulator->get_register(FPREG);
 | 
| 
 |