On 11/21/22 01:18, Jürgen Spitzmüller wrote:
Am Sonntag, dem 20.11.2022 um 18:43 -0500 schrieb Richard Kimberly
Heck:
If I remember correctly, there are little crashing programs in the Qt
and GCC bug reports. Can you try compiling those and see if they
crash?
Not full programs AFAICS.

That at least will help pinpoint where the problem is. I guess I'm
wondering if the problem is still in Qt itself somehow.
I still think it is due to the way we use QFuture(Watcher).

Here's the program to check:

#define _GLIBCXX_DEBUG 1
#include <unordered_set>

int main()
{
  std::unordered_set<int>::iterator it{};
  it == it;
}

That's what was crashing in GCC.

I did notice, too, though in the Qt report that it says:


In general, from the LyX bug report, it looks like they're building LyX but not Qt with debug iterators enabled.

That is a bad idea. libstdc++ debug mode breaks ABI. I don't think we ever return any QMap in Qt across its library boundary, but if we did, they couldn't use it.

If you want to turn on debug mode globally, you need to rebuild any 3rd party dependency with it. Of course there are the containers in the debug namespace, but I haven't found a good solution to use them at large in a project. I've tried to isolate them in a local namespace, but people won't use MyNS::vector (which is either std::vector or stddebug::vector), they'll just use std::vector.


So, maybe the problem is very specific to --enable-stdlib-debug and has to do with the way we use external libraries.

Riki


--
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to