Qt, Linux and everything: Debugging Qt WebAssembly
Posted by speckx 7 days ago
Comments
Comment by N_Lens 6 days ago
What makes this particularly interesting is the technology stack: Emscripten embeds DWARF debugging symbols (the same format used for native Linux binaries) directly into WebAssembly binaries. A Chrome browser extension then reads these embedded symbols and reconstructs the original C++ source code view in the DevTools, mapping the compiled WebAssembly back to your Qt C++ source with full directory paths intact.
All of this would have seemed impossible not long ago.
Comment by nottorp 6 days ago
So it doesn't work in any other browser? More incentive for those web 4.0 or 5.0, i lost count, "experts" to only support Chrome?
Comment by pjmlp 6 days ago
It has stopped being the Web long time ago.
Comment by flohofwoe 6 days ago
Comment by flohofwoe 6 days ago
It still requires some tinkering with launch.json to glue a couple of VSCode extensions together though, but the result is that I can simply press F5 in VSCode to step into my C/C++ code with the debuggee running remotely in Chrome - e.g. exactly the same workflow like a native debug session:
Comment by em3rgent0rdr 6 days ago
Comment by bionsystem 6 days ago
This is the kind of thing that I feel is very nice and terrible at the same time. Yes it is convenient but it is also such a complex piece of software, it's sad that it is required to run gui apps. Ok, it may not be required yet per say, but I have mixed feelings about this direction.
Comment by irishcoffee 6 days ago
Debugging wasm qt apps is not hard at all. Yes, as the article says, you need to build the code in debug mode, this isn’t unusual.
If you use qtcreator, it’s, and I hate this word, trivial. Most of the work comes from setting up the qt kit in qtcreator… which takes about 5 minutes.
Breakpoints just work. Debugging just works. Everything… works.
Comment by N_Lens 6 days ago
Comment by nottorp 6 days ago
Comment by pjmlp 6 days ago
Comment by irishcoffee 6 days ago
Comment by flohofwoe 6 days ago
...and you're actually debugging the WASM executable which runs in a browser and not a native version of the application?
Not that it matters most of the time, I also do 99% of my debugging session on the native target. But for debugging problems that only happen in the WASM version actually debugging the WASM version makes a lot of sense, and that was anything but trivial not too long ago (if QtCreator can actually pull off a remote debugging session where the debuggee runs in Chrome then kudos to QtCreator).
Comment by irishcoffee 5 days ago
I’m not a professional webdev, I was just messing around with qt+wasm for a few weeks a little while ago.
Comment by fransje26 6 days ago
And as QtCreator is first-class citizen for everything related to Qt, you'll have all the Qt types correctly resolved/unrolled/displayed/annotated by gdb, which makes your debugging experience a lot, lot more convenient.
Comment by irishcoffee 6 days ago
Comment by LeSaucy 6 days ago
Comment by oblio 6 days ago
Comment by torarnv 6 days ago
We've tweaked our styles to take the new design metrics into account, and fixed or worked around issues where we've seen them. We don't integrate with NSGlassEffectView and friends yet. If you find any issues in recently released version of Qt 6.10, 6.8 or 6.5, please report them upstream, thanks!
Comment by oblio 6 days ago
Thank you for replying, glad to hear that Qt is staying on top of the game, I know it's a tough job.
Comment by rubymamis 6 days ago
Comment by kevmuhuri 6 days ago
This indie dev (uses Qt) shows the process for updating icons to the latest UI refresh https://successfulsoftware.net/2025/09/26/updating-applicati...