You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何输出Windows原生C++端日志并捕获应用崩溃信息

Windows C++ 侧 Flutter 插件崩溃日志查看方案

系统原生工具捕获(无需修改代码)

  • 事件查看器查询崩溃记录:按下 Win+R 输入 eventvwr 回车打开事件查看器,依次展开 Windows 日志>应用程序,在来源列筛选你的 Flutter 应用 exe 名称,错误级别的事件条目会记录崩溃模块、内存偏移地址、异常错误码等 C++ 侧崩溃核心上下文。
  • 实时生成进程转储文件:应用崩溃弹窗出现后先不要关闭弹窗,打开任务管理器找到对应应用进程,右键选择 创建转储文件,生成的 dmp 转储文件路径会自动弹出,使用 Visual Studio 或 WinDbg 打开即可查看完整 C++ 侧调用栈、异常触发位置。

开发阶段嵌入捕获逻辑方案

  • 全局异常捕获自动生成转储:在 C++ 插件初始化时调用 LPTOP_LEVEL_EXCEPTION_FILTER 注册全局异常过滤器,异常触发时调用 Windows 原生 MiniDumpWriteDump API 自动将崩溃转储文件写入应用公共目录,无需手动操作即可留存崩溃现场。
  • 调试器附加定位:启动 Flutter 应用后,在 Visual Studio 中打开 C++ 插件项目,点击 调试>附加到进程 选择对应 Flutter 应用进程,勾选本机调试选项,崩溃时调试器会直接停在异常触发位置,自动展示调用栈、变量值、错误原因。
  • C++ 日志输出配置:Flutter Windows 官方模板默认不会将 C++ 侧标准输出打印到 Flutter 控制台,可在 C++ 代码中调用 OutputDebugString API 输出日志,配合 DebugView 工具即可实时查看 C++ 侧运行日志,也可自行实现文件日志写入逻辑留存历史日志。

崩溃定位注意事项

  • 编译 C++ 插件时必须保留对应 pdb 符号文件,崩溃转储文件必须和编译时的 pdb 匹配才能解析出准确的函数名、代码行号信息,发布版本不要关闭调试符号生成选项。
  • 优先排查 C++ 侧空指针访问、内存越界、资源重复释放等常见问题,Flutter 与 C++ 通道传递自定义结构体、指针类型参数时,需严格管控生命周期,避免 Flutter 侧已释放的资源被 C++ 侧继续访问。

内容的提问来源于stack exchange,提问作者Khamidjon Khamidov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:18:02