Skip to content

[iOS] App crashes when clipboard set data with null  #101234

@stonega

Description

@stonega

Steps to Reproduce

  1. Execute flutter run on the code sample
    void copy() { Clipboard.setData(const ClipboardData(text: null)); }
  2. Tap the copy button

Expected results:
do nothing

Actual results:
app crashes

Code sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  void _copy() {
    Clipboard.setData(const ClipboardData(text: null));
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextButton(onPressed: _copy, child: const Text('Copy')) 
          ],
        ),
      ),
    );
  }
}
Logs
"threads" : [{"triggered":true,"id":40951947,"threadState":{"r13":{"value":206158430216},"rax":{"value":0},"rflags":{"value":582},"cpu":{"value":0},"r14":{"value":6},"rsi":{"value":6},"r8":{"value":140701897873872},"cr2":{"value":140735341017040},"rdx":{"value":0},"r10":{"value":0},"r9":{"value":140733732721749},"r15":{"value":22},"rbx":{"value":4512110080,"symbolLocation":0,"symbol":"_main_thread"},"trap":{"value":133},"err":{"value":33554760},"r11":{"value":582},"rip":{"value":140735032439042,"matchesCrashFrame":1},"rbp":{"value":140701897874224},"rsp":{"value":140701897874184},"r12":{"value":259},"rcx":{"value":140701897874184},"flavor":"x86_THREAD_STATE","rdi":{"value":259}},"queue":"com.apple.main-thread","frames":[{"imageOffset":28930,"symbol":"__pthread_kill","symbolLocation":10,"imageIndex":0},{"imageOffset":25108,"symbol":"pthread_kill","symbolLocation":263,"imageIndex":1},{"imageOffset":509572,"symbol":"abort","symbolLocation":123,"imageIndex":2},{"imageOffset":67010,"symbol":"abort_message","symbolLocation":241,"imageIndex":3},{"imageOffset":5997,"symbol":"demangling_terminate_handler()","symbolLocation":266,"imageIndex":3},{"imageOffset":23579,"symbol":"_objc_terminate()","symbolLocation":96,"imageIndex":4},{"imageOffset":63975,"symbol":"std::__terminate(void (*)())","symbolLocation":8,"imageIndex":3},{"imageOffset":74324,"symbol":"__cxa_rethrow","symbolLocation":99,"imageIndex":3},{"imageOffset":130374,"symbol":"objc_exception_rethrow","symbolLocation":37,"imageIndex":4},{"imageOffset":500249,"symbol":"CFRunLoopRunSpecific","symbolLocation":861,"imageIndex":5},{"imageOffset":15571,"symbol":"GSEventRunModal","symbolLocation":139,"imageIndex":6},{"imageOffset":13426498,"symbol":"-[UIApplication _run]","symbolLocation":928,"imageIndex":7},{"imageOffset":13445982,"symbol":"UIApplicationMain","symbolLocation":101,"imageIndex":7},{"imageOffset":19423,"sourceLine":5,"sourceFile":"AppDelegate.swift","symbol":"main","imageIndex":8,"symbolLocation":63},{"imageOffset":7913,"symbol":"start_sim","symbolLocation":10,"imageIndex":9},{"imageOffset":21758,"symbol":"start","symbolLocation":462,"imageIndex":10}]},{"id":40951956,"name":"com.apple.uikit.eventfetch-thread","frames":[{"imageOffset":2730,"symbol":"mach_msg_trap","symbolLocation":10,"imageIndex":0},{"imageOffset":3611,"symbol":"mach_msg","symbolLocation":59,"imageIndex":0},{"imageOffset":525376,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":319,"imageIndex":5},{"imageOffset":502499,"symbol":"__CFRunLoopRun","symbolLocation":1293,"imageIndex":5},{"imageOffset":499955,"symbol":"CFRunLoopRunSpecific","symbolLocation":567,"imageIndex":5},{"imageOffset":1189716,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":213,"imageIndex":11},{"imageOffset":1190347,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":72,"imageIndex":11},{"imageOffset":14213841,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":491,"imageIndex":7},{"imageOffset":1357136,"symbol":"__NSThread__start__","symbolLocation":1025,"imageIndex":11},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951992,"name":"io.flutter.1.ui","frames":[{"imageOffset":5966341,"symbol":"dart::Utf8::DecodeToLatin1(unsigned char const*, long, unsigned char*, long)","symbolLocation":101,"imageIndex":12},{"imageOffset":6976151,"symbol":"dart::String::FromUTF8(unsigned char const*, long, dart::Heap::Space)","symbolLocation":231,"imageIndex":12},{"imageOffset":9015192,"symbol":"dart::kernel::TranslationHelper::DartSetterName(dart::kernel::NameIndex, dart::kernel::StringIndex)","symbolLocation":216,"imageIndex":12},{"imageOffset":8877327,"symbol":"dart::kernel::StreamingFlowGraphBuilder::BuildInstanceSet(dart::TokenPosition*)","symbolLocation":623,"imageIndex":12},{"imageOffset":8865930,"symbol":"dart::kernel::StreamingFlowGraphBuilder::BuildStatement(dart::TokenPosition*)","symbolLocation":154,"imageIndex":12},{"imageOffset":8899434,"symbol":"dart::kernel::StreamingFlowGraphBuilder::BuildBlock(dart::TokenPosition*)","symbolLocation":138,"imageIndex":12},{"imageOffset":8870044,"symbol":"dart::kernel::StreamingFlowGraphBuilder::BuildFunctionBody(dart::Function const&, dart::LocalVariable*, bool)","symbolLocation":252,"imageIndex":12},{"imageOffset":8871708,"symbol":"dart::kernel::StreamingFlowGraphBuilder::BuildGraphOfFunction(bool)","symbolLocation":748,"imageIndex":12},{"imageOffset":8872982,"symbol":"dart::kernel::StreamingFlowGraphBuilder::BuildGraph()","symbolLocation":358,"imageIndex":12},{"imageOffset":8940227,"symbol":"dart::kernel::FlowGraphBuilder::BuildGraph()","symbolLocation":99,"imageIndex":12},{"imageOffset":7785232,"symbol":"dart::DartCompilationPipeline::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool)","symbolLocation":64,"imageIndex":12},{"imageOffset":7789205,"symbol":"dart::CompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)","symbolLocation":1013,"imageIndex":12},{"imageOffset":7792733,"symbol":"dart::CompileFunctionHelper(dart::CompilationPipeline*, dart::Function const&, bool, long)","symbolLocation":1101,"imageIndex":12},{"imageOffset":7791585,"symbol":"dart::Compiler::CompileFunction(dart::Thread*, dart::Function const&)","symbolLocation":513,"imageIndex":12},{"imageOffset":6842052,"symbol":"dart::Function::EnsureHasCode() const","symbolLocation":100,"imageIndex":12},{"imageOffset":7786173,"symbol":"dart::DRT_CompileFunction(dart::NativeArguments)","symbolLocation":365,"imageIndex":12},{"imageOffset":4593821027,"imageIndex":13},{"imageOffset":4593821124,"imageIndex":13},{"imageOffset":4609657415,"imageIndex":13},{"imageOffset":4609656798,"imageIndex":13},{"imageOffset":4598645396,"imageIndex":13},{"imageOffset":4595052591,"imageIndex":13},{"imageOffset":4595052212,"imageIndex":13},{"imageOffset":4595050429,"imageIndex":13},{"imageOffset":4598032381,"imageIndex":13},{"imageOffset":4598032132,"imageIndex":13},{"imageOffset":4595052893,"imageIndex":13},{"imageOffset":4595052212,"imageIndex":13},{"imageOffset":4595050429,"imageIndex":13},{"imageOffset":4598718634,"imageIndex":13},{"imageOffset":4598644813,"imageIndex":13},{"imageOffset":4595013544,"imageIndex":13},{"imageOffset":4598642188,"imageIndex":13},{"imageOffset":4598634688,"imageIndex":13},{"imageOffset":4598633949,"imageIndex":13},{"imageOffset":4595013544,"imageIndex":13},{"imageOffset":4595011614,"imageIndex":13},{"imageOffset":4593822133,"imageIndex":13},{"imageOffset":6246584,"symbol":"dart::DartEntry::InvokeCode(dart::Code const&, unsigned long, dart::Array const&, dart::Array const&, dart::Thread*)","symbolLocation":296,"imageIndex":12},{"imageOffset":6246180,"symbol":"dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)","symbolLocation":324,"imageIndex":12},{"imageOffset":6255250,"symbol":"dart::DartLibraryCalls::HandleMessage(long long, dart::Instance const&)","symbolLocation":354,"imageIndex":12},{"imageOffset":6393494,"symbol":"dart::IsolateMessageHandler::HandleMessage(std::__1::unique_ptr<dart::Message, std::__1::default_delete<dart::Message> >)","symbolLocation":966,"imageIndex":12},{"imageOffset":6562099,"symbol":"dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)","symbolLocation":291,"imageIndex":12},{"imageOffset":6562512,"symbol":"dart::MessageHandler::HandleNextMessage()","symbolLocation":64,"imageIndex":12},{"imageOffset":9446160,"symbol":"Dart_HandleMessage","symbolLocation":256,"imageIndex":12},{"imageOffset":4757357,"symbol":"tonic::DartMessageHandler::OnHandleMessage(tonic::DartState*)","symbolLocation":183,"imageIndex":12},{"imageOffset":4758184,"symbol":"std::__1::__function::__func<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0, std::__1::allocator<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0>, void ()>::operator()()","symbolLocation":50,"imageIndex":12},{"imageOffset":5888115,"symbol":"std::__1::__function::__func<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3::operator()(std::__1::function<void ()>) const::'lambda'(), std::__1::allocator<flutter::DartIsolate::SetMessageHandlingTaskRunner(fml::RefPtr<fml::TaskRunner>)::$_3::operator()(std::__1::function<void ()>) const::'lambda'()>, void ()>::operator()()","symbolLocation":43,"imageIndex":12},{"imageOffset":3661552,"symbol":"fml::MessageLoopImpl::FlushTasks(fml::FlushType)","symbolLocation":164,"imageIndex":12},{"imageOffset":3687204,"symbol":"fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)","symbolLocation":26,"imageIndex":12},{"imageOffset":530102,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__","symbolLocation":20,"imageIndex":5},{"imageOffset":528818,"symbol":"__CFRunLoopDoTimer","symbolLocation":923,"imageIndex":5},{"imageOffset":526193,"symbol":"__CFRunLoopDoTimers","symbolLocation":265,"imageIndex":5},{"imageOffset":503216,"symbol":"__CFRunLoopRun","symbolLocation":2010,"imageIndex":5},{"imageOffset":499955,"symbol":"CFRunLoopRunSpecific","symbolLocation":567,"imageIndex":5},{"imageOffset":3687521,"symbol":"fml::MessageLoopDarwin::Run()","symbolLocation":65,"imageIndex":12},{"imageOffset":3661312,"symbol":"fml::MessageLoopImpl::DoRun()","symbolLocation":22,"imageIndex":12},{"imageOffset":3682026,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)","symbolLocation":170,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951993,"name":"io.flutter.1.raster","frames":[{"imageOffset":2730,"symbol":"mach_msg_trap","symbolLocation":10,"imageIndex":0},{"imageOffset":3611,"symbol":"mach_msg","symbolLocation":59,"imageIndex":0},{"imageOffset":525376,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":319,"imageIndex":5},{"imageOffset":502499,"symbol":"__CFRunLoopRun","symbolLocation":1293,"imageIndex":5},{"imageOffset":499955,"symbol":"CFRunLoopRunSpecific","symbolLocation":567,"imageIndex":5},{"imageOffset":3687521,"symbol":"fml::MessageLoopDarwin::Run()","symbolLocation":65,"imageIndex":12},{"imageOffset":3661312,"symbol":"fml::MessageLoopImpl::DoRun()","symbolLocation":22,"imageIndex":12},{"imageOffset":3682026,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)","symbolLocation":170,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951994,"name":"io.flutter.1.io","frames":[{"imageOffset":2730,"symbol":"mach_msg_trap","symbolLocation":10,"imageIndex":0},{"imageOffset":3611,"symbol":"mach_msg","symbolLocation":59,"imageIndex":0},{"imageOffset":525376,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":319,"imageIndex":5},{"imageOffset":502499,"symbol":"__CFRunLoopRun","symbolLocation":1293,"imageIndex":5},{"imageOffset":499955,"symbol":"CFRunLoopRunSpecific","symbolLocation":567,"imageIndex":5},{"imageOffset":3687521,"symbol":"fml::MessageLoopDarwin::Run()","symbolLocation":65,"imageIndex":12},{"imageOffset":3661312,"symbol":"fml::MessageLoopImpl::DoRun()","symbolLocation":22,"imageIndex":12},{"imageOffset":3682026,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)","symbolLocation":170,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951995,"name":"io.flutter.1.profiler","frames":[{"imageOffset":2730,"symbol":"mach_msg_trap","symbolLocation":10,"imageIndex":0},{"imageOffset":3611,"symbol":"mach_msg","symbolLocation":59,"imageIndex":0},{"imageOffset":525376,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":319,"imageIndex":5},{"imageOffset":502499,"symbol":"__CFRunLoopRun","symbolLocation":1293,"imageIndex":5},{"imageOffset":499955,"symbol":"CFRunLoopRunSpecific","symbolLocation":567,"imageIndex":5},{"imageOffset":3687521,"symbol":"fml::MessageLoopDarwin::Run()","symbolLocation":65,"imageIndex":12},{"imageOffset":3661312,"symbol":"fml::MessageLoopImpl::DoRun()","symbolLocation":22,"imageIndex":12},{"imageOffset":3682026,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)","symbolLocation":170,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951996,"name":"io.worker.1","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27241,"symbol":"_pthread_cond_wait","symbolLocation":1224,"imageIndex":1},{"imageOffset":35298,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":18,"imageIndex":14},{"imageOffset":3649933,"symbol":"fml::ConcurrentMessageLoop::WorkerMain()","symbolLocation":187,"imageIndex":12},{"imageOffset":3651536,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0> >(void*)","symbolLocation":155,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951997,"name":"io.worker.2","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27241,"symbol":"_pthread_cond_wait","symbolLocation":1224,"imageIndex":1},{"imageOffset":35298,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":18,"imageIndex":14},{"imageOffset":3649933,"symbol":"fml::ConcurrentMessageLoop::WorkerMain()","symbolLocation":187,"imageIndex":12},{"imageOffset":3651536,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0> >(void*)","symbolLocation":155,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951998,"name":"io.worker.3","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27241,"symbol":"_pthread_cond_wait","symbolLocation":1224,"imageIndex":1},{"imageOffset":35298,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":18,"imageIndex":14},{"imageOffset":3649933,"symbol":"fml::ConcurrentMessageLoop::WorkerMain()","symbolLocation":187,"imageIndex":12},{"imageOffset":3651536,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0> >(void*)","symbolLocation":155,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40951999,"name":"io.worker.4","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27241,"symbol":"_pthread_cond_wait","symbolLocation":1224,"imageIndex":1},{"imageOffset":35298,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":18,"imageIndex":14},{"imageOffset":3649933,"symbol":"fml::ConcurrentMessageLoop::WorkerMain()","symbolLocation":187,"imageIndex":12},{"imageOffset":3651536,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0> >(void*)","symbolLocation":155,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40952000,"name":"dart:io EventHandler","frames":[{"imageOffset":21582,"symbol":"kevent","symbolLocation":10,"imageIndex":0},{"imageOffset":5739112,"symbol":"dart::bin::EventHandlerImplementation::EventHandlerEntry(unsigned long)","symbolLocation":312,"imageIndex":12},{"imageOffset":5864584,"symbol":"dart::bin::ThreadStart(void*)","symbolLocation":40,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40952001,"name":"Dart Profiler ThreadInterrupter","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27295,"symbol":"_pthread_cond_wait","symbolLocation":1278,"imageIndex":1},{"imageOffset":7203206,"symbol":"dart::Monitor::WaitMicros(long long)","symbolLocation":134,"imageIndex":12},{"imageOffset":7728639,"symbol":"dart::ThreadInterrupter::ThreadMain(unsigned long)","symbolLocation":447,"imageIndex":12},{"imageOffset":7200623,"symbol":"dart::ThreadStart(void*)","symbolLocation":159,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40952002,"name":"Dart Profiler SampleBlockProcessor","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27295,"symbol":"_pthread_cond_wait","symbolLocation":1278,"imageIndex":1},{"imageOffset":7203206,"symbol":"dart::Monitor::WaitMicros(long long)","symbolLocation":134,"imageIndex":12},{"imageOffset":7226341,"symbol":"dart::SampleBlockProcessor::ThreadMain(unsigned long)","symbolLocation":181,"imageIndex":12},{"imageOffset":7200623,"symbol":"dart::ThreadStart(void*)","symbolLocation":159,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40952008,"name":"JavaScriptCore bmalloc scavenger","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27241,"symbol":"_pthread_cond_wait","symbolLocation":1224,"imageIndex":1},{"imageOffset":35298,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":18,"imageIndex":14},{"imageOffset":18784549,"symbol":"void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::unique_lock<bmalloc::Mutex>&)","symbolLocation":85,"imageIndex":15},{"imageOffset":18803515,"symbol":"bmalloc::Scavenger::threadRunLoop()","symbolLocation":443,"imageIndex":15},{"imageOffset":18801689,"symbol":"bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*)","symbolLocation":9,"imageIndex":15},{"imageOffset":18808087,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*)","symbolLocation":39,"imageIndex":15},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40954310,"frames":[{"imageOffset":8172,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":40954429,"name":"DartWorker","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27295,"symbol":"_pthread_cond_wait","symbolLocation":1278,"imageIndex":1},{"imageOffset":7203206,"symbol":"dart::Monitor::WaitMicros(long long)","symbolLocation":134,"imageIndex":12},{"imageOffset":7732143,"symbol":"dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)","symbolLocation":559,"imageIndex":12},{"imageOffset":7732685,"symbol":"dart::ThreadPool::Worker::Main(unsigned long)","symbolLocation":93,"imageIndex":12},{"imageOffset":7200623,"symbol":"dart::ThreadStart(void*)","symbolLocation":159,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40954430,"name":"DartWorker","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27295,"symbol":"_pthread_cond_wait","symbolLocation":1278,"imageIndex":1},{"imageOffset":7203206,"symbol":"dart::Monitor::WaitMicros(long long)","symbolLocation":134,"imageIndex":12},{"imageOffset":7732143,"symbol":"dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)","symbolLocation":559,"imageIndex":12},{"imageOffset":7732685,"symbol":"dart::ThreadPool::Worker::Main(unsigned long)","symbolLocation":93,"imageIndex":12},{"imageOffset":7200623,"symbol":"dart::ThreadStart(void*)","symbolLocation":159,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]},{"id":40954431,"name":"DartWorker","frames":[{"imageOffset":13558,"symbol":"__psynch_cvwait","symbolLocation":10,"imageIndex":0},{"imageOffset":27295,"symbol":"_pthread_cond_wait","symbolLocation":1278,"imageIndex":1},{"imageOffset":7203206,"symbol":"dart::Monitor::WaitMicros(long long)","symbolLocation":134,"imageIndex":12},{"imageOffset":6374095,"symbol":"dart::MutatorThreadPool::OnEnterIdleLocked(dart::MonitorLocker*)","symbolLocation":207,"imageIndex":12},{"imageOffset":7732221,"symbol":"dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)","symbolLocation":637,"imageIndex":12},{"imageOffset":7732685,"symbol":"dart::ThreadPool::Worker::Main(unsigned long)","symbolLocation":93,"imageIndex":12},{"imageOffset":7200623,"symbol":"dart::ThreadStart(void*)","symbolLocation":159,"imageIndex":12},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]}],

Flutter doctor

[✓] Flutter (Channel stable, 2.10.3, on macOS 12.2 21D5025f darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.10.3 at /Users/js/Project/Flutter/SDK/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7e9793dee1 (4 weeks ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/js/Library/Android/sdk
    • Platform android-31, build-tools 30.0.3
    • Java binary at: /Volumes/Macintosh HD/Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Volumes/Macintosh HD/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.65.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.36.0

[✓] VS Code (version 1.61.1)
    • VS Code at /Volumes/Macintosh HD/Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.36.0

[!] Proxy Configuration
    • HTTP_PROXY is set
    • NO_PROXY is 127.0.0.1,localhost
    • NO_PROXY contains localhost
    • NO_PROXY contains 127.0.0.1
    ! NO_PROXY does not contain ::1

[✓] Connected device (4 available)
    • Stone的iPhone (mobile)  • 00008020-001E506E2651002E            • ios            • iOS 15.2.1 19C63
    • iPhone 12 Pro (mobile) • A2E1A7EA-A772-446B-8267-2EF080255230 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • macOS (desktop)        • macos                                • darwin-x64     • macOS 12.2 21D5025f darwin-x64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 99.0.4844.84

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

Notice:
The issue only occurs on IOS devices, no crash on Android device.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work lista: text inputEntering text in a text field or keyboard related problemsc: crashStack traces logged to the consolec: fatal crashCrashes that terminate the processengineflutter/engine related. See also e: labels.found in release: 2.10Found to occur in 2.10found in release: 2.13Found to occur in 2.13has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyr: fixedIssue is closed as already fixed in a newer version

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions