Qt、Linux 与一切:调试 Qt WebAssembly

发布: (2025年12月10日 GMT+8 05:19)
3 min read

Source: Hacker News

介绍

开发者最繁琐的任务之一就是调试恼人的 bug。若是 Web 应用就更糟,若是 WebAssembly Web 应用则更糟。

调试 Qt WebAssembly 最简单的方法是使用 -g 参数或 CMAKE_BUILD_TYPE=Debug 配置构建。Emscripten 会在 wasm 二进制文件中嵌入 DWARF 符号。

注意: 使用 DWARF 调试 wasm 文件仅在 Chrome 浏览器并配合浏览器扩展时有效。

  • C/C++ DevTools 支持 (DWARF)浏览器扩展
    如果你使用 Safari 或 Firefox,或无法安装浏览器扩展,则需要生成 source map(将在后续文章中介绍)。

DWARF 调试

需要在浏览器开发者工具的设置中启用 DWARF。与 source map 不同的是,你不需要为源码目录创建符号链接,因为二进制文件已经嵌入了完整的目录路径。

Emscripten 默认在使用 -g 编译的二进制文件中嵌入 DWARF 符号,所以只需在调试模式下重新构建 Qt 或你的应用即可。

Qt 默认使用优化参数 -g2 构建调试库,这会生成较少的调试信息但链接速度更快。若想保留完整的调试符号,请使用 -g-g3 构建 Qt 调试版。这两种选项的效果相同。

使用 DWARF 调试器

  1. 打开已安装扩展的 Chrome 并打开 DevTools 控制台。
  2. 导航到需要调试的 Qt for WebAssembly Web 应用。
  3. 等待几秒钟,让所有符号和文件解析完成(调试 Qt 可能需要更长时间)。
  4. 控制台会列出源码文件路径。找到想要调试的文件并设置断点。
  5. 重新加载页面;当执行到断点时,程序会停止并在源码视图中高亮当前行,同时显示变量名和数值。
  6. 像调试桌面应用一样逐步执行代码。
Back to Blog

相关文章

阅读更多 »