anchor.diff:      debugger.console.print('${name} = ${value}');
     }
   
  -  static Future _setSaneAsyncStacks(debugger, name, value) async {
  +  static Future _setCausalAsyncStacks(debugger, name, value) async {
       if (value == 'true') {
  -      debugger.saneAsyncStacks = true;
  +      debugger.causalAsyncStacks = true;
       } else {
  -      debugger.saneAsyncStacks = false;
  +      debugger.causalAsyncStacks = false;
       }
       debugger.refreshStack();
       debugger.console.print('${name} = ${value}');
  +  }
  +
  +  static Future _setAwaiterStacks(debugger, name, value) async {
  +    debugger.awaiterStacks = (value == 'true');
  +    debugger.refreshStack();
  +    debugger.console.print('${name} == ${value}');
     }
   
     Future run(List<String> args) async {
  
positive.code: 
    bool _upIsDown;
  
    bool get saneAsyncStacks => _saneAsyncStacks;
    void set saneAsyncStacks(bool value) {
      settings.set('causal-async-stacks', value);
      _saneAsyncStacks = value;
    }
  
    bool _saneAsyncStacks;
  
    static const String kAsyncCausalStackFrames = 'asyncCausalFrames';
    static const String kStackFrames = 'frames';
  
  
negative.code:   void updateStackFrames(S.ServiceMap newStack) {
      List frameElements = _frameList.children;
      List newFrames;
      if (_debugger.awaiterStacks &&
          (newStack[ObservatoryDebugger.kAwaiterStackFrames] != null)) {
        newFrames = newStack[ObservatoryDebugger.kAwaiterStackFrames];
      } else if (_debugger.causalAsyncStacks &&
          (newStack[ObservatoryDebugger.kAsyncCausalStackFrames] != null)) {
        newFrames = newStack[ObservatoryDebugger.kAsyncCausalStackFrames];
      } else {
  