Author Topic: Qt6 Development  (Read 210814 times)

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #555 on: February 06, 2023, 09:14:50 pm »

Tom

  • Full Member
  • ***
  • Posts: 194
  • Karma: +5/-0
    • View Profile

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: Qt6 Development
« Reply #557 on: February 07, 2023, 03:32:32 am »
Disabling netlabs-rel worked to install Python3. Seems every time I've installed it, the procedure has changed.
Building with your configure line and ninja, the build dies here,
Code: [Select]
[1114/23544] COPY gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js resources/inspector/third_party/acorn/acorn.js
FAILED: resources/inspector/third_party/acorn/acorn.js
ln -f gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js
 resources/inspector/third_party/acorn/acorn.js 2>/dev/null || (rm -rf resources/inspector/third_party/acorn/acorn.js && cp -af gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js resources/inspector/third_party/acorn/acorn.js)
cp: cannot stat 'gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js': No such file or directory

I find 3 acorn.js in my tree, at 204KB,
Code: [Select]
L:/work/qt6/qt6-webengine-os2/src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/acorn/package/dist/acorn.js
at 200KB,
Code: [Select]
L:/work/qt6/qt6-webengine-os2/src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/acorn/dist/acorn.js
and a 993 byte one at,
Code: [Select]
L:/work/qt6/qt6-webengine-os2/src/3rdparty/chromium/third_party/devtools-frontend/src/node_modules/recast/parsers/acorn.js

Not sure where it is supposed to copy, no res/ that I see here.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #558 on: February 07, 2023, 04:47:29 am »
Hey Dave,

I saw something similar - if you wade back far enough in this thread, you'll seen me talking about it. My theory is that something isn't quite right in our nodejs port, so these files aren't getting created.

I ended up creating stubs of the missing files (which was very tedious) - I should go back and copy them over from a linux build of qtwebengine 6.2.4.

Try unzipping https://smedley.id.au/tmp/tmp/gen.zip into build/src/core/release/i386

Cheers,

Paul

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: Qt6 Development
« Reply #559 on: February 07, 2023, 05:08:46 am »
Didn't like the 0 byte acorn.js. Guess try to do the unzip earlier in the build, unless your zip didn't capture the symlinks.
Code: [Select]
[11/22435] COPY gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js resources/inspector/third_party/acorn/acorn.js
FAILED: resources/inspector/third_party/acorn/acorn.js
ln -f gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js resources/inspector/third_party/acorn/acorn.js 2>/dev/null || (rm -rf resources/inspector/third_party/acorn/acorn.js && cp -af gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js resources/inspector/third_party/acorn/acorn.js)
cp: cannot stat 'gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js': No such file or directory

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #560 on: February 07, 2023, 09:05:49 am »
that's weird... I was able to unzip gen.zip to an empty dir, and execute 'cp -af gen/third_party/devtools-frontend/src/front_end/third_party/acorn/acorn.js resources/inspector/third_party/acorn/acorn.js'' and provided I had an already created resources/inspector/third_party/acorn - it worked ok....

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #561 on: February 08, 2023, 09:23:36 pm »
Hey all, Steven suggested that the reason we don't get dumps when the browser exits, is that some code within the webengine is calling exit(). Thanks to another suggestion from him, I've built a custom libcn0.dll that should generate a dump file whenever exit() or _exit() are called. I'm hoping that some time today I can see if this works, and generates some useful information about where in the code the exit() is coming from, and what may be causing it. This approach may even work for Qt5 (assuming the silent exits are for a similar reason), but I won't be investigating those...

Not really planning on sharing the special libcn0.dll (as it's really only suitable for investigating silent exits, and I'll only be testing with LIBPATHSTRICT set), but if anyone has a burning desire to try and generate .TRP files, let me know :)

More here once I've done some testing.

roberto

  • Hero Member
  • *****
  • Posts: 810
  • Karma: +3/-6
    • View Profile
Re: Qt6 Development
« Reply #562 on: February 09, 2023, 05:19:45 pm »
, but if anyone has a burning desire to try and generate .TRP files, let me know :)

I attach a zip with several Sigtrap, from 01-22-2023 and 01-24-2023 with two DLLs:
13/01/23  8:41    257.356.880      0 a---  Qt6WebEe-stop.dll
14/01/23 19:56    257.357.263      0 a---  Qt6WebEe.dll
saludos

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #563 on: February 09, 2023, 09:32:33 pm »
, but if anyone has a burning desire to try and generate .TRP files, let me know :)

I attach a zip with several Sigtrap, from 01-22-2023 and 01-24-2023 with two DLLs:
13/01/23  8:41    257.356.880      0 a---  Qt6WebEe-stop.dll
14/01/23 19:56    257.357.263      0 a---  Qt6WebEe.dll
saludos

Thanks, but these are probably the same as https://github.com/psmedley/qt6-webengine-os2/issues/7

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #564 on: February 10, 2023, 09:51:35 am »
Not really planning on sharing the special libcn0.dll (as it's really only suitable for investigating silent exits, and I'll only be testing with LIBPATHSTRICT set), but if anyone has a burning desire to try
and generate .TRP files, let me know :)

More here once I've done some testing.

Unfortunately, my self built libcn0.dll isn't working with dooble - it does work with other apps, but with dooble, it's giving:
Code: [Select]
PID 0045 TID 01: LIBCx Assertion failed at shared.c:898:get_file_desc_ex: path

===== LIBCx resource usage =====
Reserved memory size:  2097152 bytes
Committed memory size: 65536 bytes
Heap size total:       65120 bytes
Heap size used now:    1760 bytes
ProcDesc structs used now:       3
FileDesc structs used now:       0
SharedFileDesc structs used now: 0
===== LIBCx global mutex info =====
mutex handle: 800100c9
owner state:  alive
owner PID:    0045 (69) <current>
owner TID:    1 <current>
request #:    1
===== LIBCx stats end =====

Killed by SIGTRAP
pid=0x0045 ppid=0x003f tid=0x0001 slot=0x004a pri=0x0200 mc=0x0001 ps=0x0010
U:\DOOBLE\DOOBLE.EXE
LIBCX0 0:00011d16
cs:eip=0382:1e221d16      ss:esp=0000:00000000      ebp=78300053
 ds=0000      es=0000      fs=0030      gs=0000     efl=1e4e4bec
eax=00baf0a8 ebx=1ffc9d7c ecx=00baf0bc edx=00baf0e0 edi=00000000 esi=00baff8c
Creating 0045_01.TRP
Moved 0045_01.TRP to C:\var\log\app\63e52181-0045_01-DOOBLE-exceptq.txt

<sigh>

Rich Walsh

  • Sr. Member
  • ****
  • Posts: 331
  • Karma: +23/-0
  • ONU! (OS/2 is NOT Unix!)
    • View Profile
Re: Qt6 Development
« Reply #565 on: February 10, 2023, 06:43:20 pm »
I've built a custom libcn0.dll that should generate a dump file whenever exit() or _exit() are called.

Wouldn't it be far easier to find an appropriate top-level '.h' file where you could redefine 'exit()'?.
For example, this will create an Exceptq report in the current directory, then exit:

Code: [Select]
#define exit(x) { \
EXCEPTIONREPORTRECORD err = { EXCEPTQ_DEBUG_EXCEPTION, EH_NONCONTINUABLE, 0, 0, 0, {0,0,0,0}}; \
DosRaiseException(&err); }


Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #566 on: February 10, 2023, 11:55:38 pm »
Hi Rich,

The downside to your approach is that I'd 1st have to identify a common header, and 2nd that a rebuild of QtWebEngine takes a LONG time - 12+ hours.

I found the problem - the combination of dooble + libcn0 + libcx0 don't like LIBPATHSTRICT=T

Once I added u:\dooble to the front of libpath and rebooted - the modified DLL does what it was asked to do and generated the attached for a website known to cause Dooble to exit (https://www.netbank.com.au)

I'll try analyse it today, but frankly not feeling like doing too much. I caught my toe on the edge of a door almost 3 weeks ago - and it hurt a lot - hobbled around for 10 days then thought I should go see a Doctor - turns out I busted two bones in my left foot - the 5th toe, and the metacarpil bone of the 4th toe, so I'm in a moon boot until at least 2nd March. It's still quite sore, so minimal time has been spent on anything OS/2 related in the last couple of weeks.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #567 on: February 11, 2023, 06:34:35 am »
OK, the above TRP (with some decoding from Steven) has given me some ideas... unfortunately, I ended up modifying a .gn file, which triggered a bit of a rebuild, so it will be a few hours before I know if it really helped.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6 Development
« Reply #568 on: February 11, 2023, 10:06:52 am »
Seems to help - going to https://www.netbank.com.au doesn't result in an immediate crash now :) New DLL at https://smedley.id.au/tmp/qt6webee-20230211.zip

I'll commit the fix shortly.

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: Qt6 Development
« Reply #569 on: February 11, 2023, 01:47:56 pm »
 Thanks, Paul... https://html5test.com works now - Nice detective work! Oddly, the QT6 version of Dooble gives a slightly lower score than the QT5 one...

Regards,