GNOME Bugzilla – Bug 797284
Cerbero Windows builds have unusable backtraces
Last modified: 2018-11-03 10:24:58 UTC
Since gstreamer core is built with Meson + MinGW, libffi is built with Autotools + MinGW, and Glib is built with Meson + MSVC, neither gdb nor Visual Studio can yield usable backtraces. This is a regression from 1.14 where at least you could get usable backtraces with gdb. The fix is to do one of the following: * Move gstreamer-1.0, gst-*-1.0 and libffi to Meson + MSVC or * Move all Meson + MSVC recipes to Meson + MinGW. As of this writing, that's: proxy-libintl, zlib, glib, glib-networking, pango, fribidi, json-glib.
I'm surprised this is a discovery for you and that it was not planned. In my opinion, mixed builds are always the wrong way. We should make a variant for MSVC or Mingw, and build a subset if one does not support everything.
I've been making progress on moving gst*-1.0 and libffi to Meson + MSVC at https://github.com/centricular/cerbero/tree/wip/meson. The main blocker for me is ensuring that the libffi Meson port works on all platforms. The main risk is that it uses a more recent revision from libffi upstream, and hence needs runtime testing on all platforms since libffi upstream doesn't have CI. (In reply to Nicolas Dufresne (ndufresne) from comment #1) > I'm surprised this is a discovery for you and that it was not planned. In my > opinion, mixed builds are always the wrong way. I expected the symbols to have gaps which would still workable and yield slightly degraded but usable backtraces, but the actual result is garbled backtraces with no symbols at all which was surprising. > We should make a variant for MSVC or Mingw, and build a subset if one does not support everything. There already is a variant called `visualstudio` which people can turn off to only use MinGW.
Then you are probably not yet aware that if you have a release libffi you'll get no usable backtrack. Libffi rewrites the stack, without the debug symbols the debugger stops at the first ffi call.
(In reply to Nicolas Dufresne (ndufresne) from comment #3) > Then you are probably not yet aware that if you have a release libffi you'll > get no usable backtrack. Libffi rewrites the stack, without the debug > symbols the debugger stops at the first ffi call. Thanks for the heads-up. We build with debugoptimized in cerbero, so it should be fine, but I'll test to make sure.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/cerbero/issues/77.