崩溃监控
1. 在业务项目中添加如下内存访问异常的代码。
{int a = 0x1234;int* p = (int*)a;*p = 2;}
2. 上述代码触发执行以后,观察会不会弹出如下窗口,然后单击确定。

3. 您可以在 崩溃 页面检查上报是否成功。

自定义错误
上报自定义错误,这种错误不是 crash,而是业务定义的一些错误,例如业务集成了 Lua 捕获的 Lua 错误、JS 错误等。下面是一个简单的 dart 错误上报示例:
/// <summary>/// 上报自定义错误,这种错误不是 crash,而是业务定义的一些错误,例如业务集成了 lua 捕获的 lua 错误、js 错误等/// </summary>void CustomErrorTest() {std::string addr ="#0 _MyHomePageState._incrementCounter.<anonymous closure> (package:flutter_application_1/main.dart:81:33)";std::string message = "type 'double' is not a subtype of type 'int' in type cast";std::string name = "_CastError(Serious)";std::string thread_name = "main";std::string call_stack ="#0 _MyHomePageState._incrementCounter.<anonymous closure> ""(package:flutter_application_1/main.dart:81:33)\\n#1 State.setState ""(package:flutter/src/widgets/framework.dart:1088:30)\\n#2 _MyHomePageState._incrementCounter ""(package:flutter_application_1/main.dart:73:5)\\n#3 _InkResponseState._handleTap ""(package:flutter/src/material/ink_well.dart:989:21)\\n#4 GestureRecognizer.invokeCallback ""(package:flutter/src/gestures/recognizer.dart:193:24)\\n#5 TapGestureRecognizer.handleTapUp ""(package:flutter/src/gestures/tap.dart:608:11)\\n#6 BaseTapGestureRecognizer._checkUp ""(package:flutter/src/gestures/tap.dart:296:5)\\n#7 BaseTapGestureRecognizer.acceptGesture ""(package:flutter/src/gestures/tap.dart:267:7)\\n#8 GestureArenaManager.sweep ""(package:flutter/src/gestures/arena.dart:157:27)\\n#9 GestureBinding.handleEvent ""(package:flutter/src/gestures/binding.dart:444:20)\\n#10 GestureBinding.dispatchEvent ""(package:flutter/src/gestures/binding.dart:420:22)\\n#11 RendererBinding.dispatchEvent ""(package:flutter/src/rendering/binding.dart:278:11)\\n#12 GestureBinding._handlePointerEventImmediately ""(package:flutter/src/gestures/binding.dart:374:7)\\n#13 GestureBinding.handlePointerEvent ""(package:flutter/src/gestures/binding.dart:338:5)\\n#14 GestureBinding._flushPointerEventQueue ""(package:flutter/src/gestures/binding.dart:296:7)\\n#15 GestureBinding._handlePointerDataPacket ""(package:flutter/src/gestures/binding.dart:279:7)\\n#16 _rootRunUnary (dart:async/zone.dart:1444:13)\\n#17 "" _CustomZone.runUnary (dart:async/zone.dart:1335:19)\\n#18 _CustomZone.runUnaryGuarded ""(dart:async/zone.dart:1244:7)\\n#19 _invoke1 (dart:ui/hooks.dart:185:10)\\n#20 ""PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293:7)\\n#21 ""_dispatchPointerDataPacket (dart:ui/hooks.dart:98:31)\\n";IBuglyAgent* pBugly = nullptr;CreateBuglyAgent(&pBugly);if (nullptr == pBugly) {return;}/// 设置自定义字段pBugly->SetCustomField("custom field1", "1234");pBugly->SetCustomField("custom field1", "");pBugly->SetCustomField("custom field2", "hodxiang");pBugly->SetCustomField("custom field3", nullptr);pBugly->SetCustomField("", nullptr);/// 上报自定义错误pBugly->ReportCommonCustomError(addr.c_str(), message.c_str(), name.c_str(), call_stack.c_str(), thread_name.c_str());}
