Disclosure Statement: This site contains affiliate links, which means that I may receive a commission if you make a purchase using these links. As an eBay Partner, I earn from qualifying purchases.

How to report a CEF4Delphi issue

Post Reply
User avatar
salvadordf
Posts: 4016
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

How to report a CEF4Delphi issue

Post by salvadordf »

To report an issue it’s necessary to provide all the information and code needed to reproduce it in other computers.

This includes :
  • Windows information : version, 32/64bits, etc. Don’t forget to mention if you run it inside a virtual machine or a real PC.
  • Delphi or Lazarus/FPC information : version, 32/64bits.
  • The name of the demo used to reproduce the error or a minimal new application where it’s possible to reproduce the error.
  • A step-by-step guide to reproduce the error. Normally you would only need to write a text description of the steps and only include screenshots or videos if it’s impossible to describe something without them.
If you’re sure it’s a CEF4Delphi error then create a new “issue” at GitHub with all that information :
https://github.com/salvadordf/CEF4Delphi/issues/new

If Delphi or Lazarus shows you that the location of the code that caused the error is inside the CEF libraries then you can use WinDbg or Visual Studio to get a symbolized call stack trace. That trace shows all the function names and code lines executed just before the error occurred.

If you don’t want to install Visual Studio then install the Windows SDK, which includes WinDbg.

The Windows SDK installer is available here :
https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/

Run the SDK installer and select all the installation options.

In order to create a symbolized call stack WinDbg will use PDB files located in a local directory.

Usually, that local directory is “c:\symbols” and you have to configure WinDbg to use that directory. Run WinDbg and go to the menu “File -> Symbol file path” and type this :

Code: Select all

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

It’s also necessary to set a Windows environment variable.
  • In Search, search for and then select: System (Control Panel)
  • Click the Advanced system settings link.
  • Click Environment Variables.
Create a new system variable called _NT_SYMBOL_PATH and set it with this value :

Code: Select all

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Create the c:\symbols directory and reboot Windows.

Now you need to download the official CEF “Sample Application”, the “Standard Distribution” and the “Debug Symbols” packages from Spotify :
http://opensource.spotify.com/cefbuilds/index.html

All those packages must be the same CEF version (build) and CPU target (32 bits / 64 bits) as the application you used to find this error.

For example, if your application uses CEF 105.3.38 and it’s built in 64 bits then you should download these files :
https://cef-builds.spotifycdn.com/cef_binary_105.3.38%2Bg2a6a54b%2Bchromium-105.0.5195.102_windows64.tar.bz2
https://cef-builds.spotifycdn.com/cef_binary_105.3.38%2Bg2a6a54b%2Bchromium-105.0.5195.102_windows64_client.tar.bz2
https://cef-builds.spotifycdn.com/cef_binary_105.3.38%2Bg2a6a54b%2Bchromium-105.0.5195.102_windows64_debug_symbols.tar.bz2

Click on the “Show more builds” link if you don’t see the CEF version you need.

Decompress all those files and you’ll see that the Sample Application is inside a directory called “Release”. To make things easier, rename that directory to “cef” and move it to “c:\

As you can see, the “Sample Application” is using the “release” libraries instead of the “debug” libraries. In this case we need the debug libraries so we will have to move the contents of the “Debug” directory in the “Standard Distribution” package to c:\cef. This will replace some files like the libcef.dll, chrome_elf.dll, etc.

Now we have the “Sample Application” with the debug libraries inside the c:\cef directory but we still need to move the PDB file found inside the “Debug Symbols” package to the right subdirectory inside c:\symbols.

Run the 64 bits version of WinDbg, go to the “File->Open executable” menu option and select “c:\cef\cefclient.exe”. A new window with debug information has been created where you can type commands in the bottom Edit box. It has text similar to this :

Code: Select all

Microsoft (R) Windows Debugger Version 10.0.18362.1 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: C:\cef\cefclient.exe

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: 
ModLoad: 00007ff6`76ae0000 00007ff6`76ca4000   cefclient.exe
ModLoad: 00007ff8`e88e0000 00007ff8`e8ad0000   ntdll.dll
ModLoad: 00007ff8`e87e0000 00007ff8`e8892000   C:\WINDOWS\System32\KERNEL32.DLL
ModLoad: 00007ff8`e6440000 00007ff8`e66e3000   C:\WINDOWS\System32\KERNELBASE.dll
ModLoad: 00007ff8`e6bb0000 00007ff8`e6bde000   C:\WINDOWS\System32\IMM32.dll
ModLoad: 00007ff8`e2e70000 00007ff8`e30cb000   C:\WINDOWS\SYSTEM32\d3d11.dll
ModLoad: 00007ff8`e7cd0000 00007ff8`e7e64000   C:\WINDOWS\System32\USER32.dll
ModLoad: 00007ff8`e5a70000 00007ff8`e5a91000   C:\WINDOWS\System32\win32u.dll
ModLoad: 00007ff8`e7bd0000 00007ff8`e7c6e000   C:\WINDOWS\System32\msvcrt.dll
ModLoad: 00007ff8`e7fa0000 00007ff8`e7fc6000   C:\WINDOWS\System32\GDI32.dll
ModLoad: 00007ff8`e57c0000 00007ff8`e57d1000   C:\WINDOWS\System32\kernel.appcore.dll
ModLoad: 00007ff8`e6220000 00007ff8`e63b4000   C:\WINDOWS\System32\gdi32full.dll
ModLoad: 00007ff8`e6c50000 00007ff8`e6d70000   C:\WINDOWS\System32\RPCRT4.dll
ModLoad: 00007ff8`e44b0000 00007ff8`e459b000   C:\WINDOWS\SYSTEM32\dxgi.dll
ModLoad: 00007ff8`e68a0000 00007ff8`e693e000   C:\WINDOWS\System32\msvcp_win.dll
ModLoad: 00007ff8`e66f0000 00007ff8`e67ea000   C:\WINDOWS\System32\ucrtbase.dll
ModLoad: 00007ff8`e69a0000 00007ff8`e6a70000   C:\WINDOWS\System32\COMDLG32.dll
ModLoad: 00007ff8`e8030000 00007ff8`e8366000   C:\WINDOWS\System32\combase.dll
ModLoad: 00007ff8`e4420000 00007ff8`e4440000   C:\WINDOWS\SYSTEM32\dxcore.dll
ModLoad: 00007ff8`d9eb0000 00007ff8`d9f15000   C:\WINDOWS\SYSTEM32\OLEACC.dll
ModLoad: 00007ff8`e58a0000 00007ff8`e5920000   C:\WINDOWS\System32\bcryptPrimitives.dll
ModLoad: 00007ff8`e6940000 00007ff8`e698a000   C:\WINDOWS\System32\cfgmgr32.dll
ModLoad: 00007ff8`e7e70000 00007ff8`e7f19000   C:\WINDOWS\System32\shcore.dll
ModLoad: 00007ff8`e7fd0000 00007ff8`e8022000   C:\WINDOWS\System32\SHLWAPI.dll
ModLoad: 00007ff8`e6d80000 00007ff8`e7465000   C:\WINDOWS\System32\SHELL32.dll
ModLoad: 00007ff8`d9fb0000 00007ff8`da235000   C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.476_none_e6c4b11b130f2595\COMCTL32.dll
ModLoad: 00007ff8`e5aa0000 00007ff8`e621e000   C:\WINDOWS\System32\windows.storage.dll
ModLoad: 00007ff8`e75b0000 00007ff8`e7647000   C:\WINDOWS\System32\sechost.dll
ModLoad: 00007ff8`e7ab0000 00007ff8`e7b53000   C:\WINDOWS\System32\advapi32.dll
ModLoad: 00007ff8`e5850000 00007ff8`e586f000   C:\WINDOWS\System32\profapi.dll
ModLoad: 00007ff8`e57e0000 00007ff8`e582a000   C:\WINDOWS\System32\powrprof.dll
ModLoad: 00007ff8`e57b0000 00007ff8`e57c0000   C:\WINDOWS\System32\UMPDC.dll
ModLoad: 00007ff8`e63c0000 00007ff8`e63d7000   C:\WINDOWS\System32\cryptsp.dll
ModLoad: 00007ff8`e6ae0000 00007ff8`e6ba4000   C:\WINDOWS\System32\OLEAUT32.dll
ModLoad: 00007ff8`b8670000 00007ff8`b87c6000   C:\WINDOWS\SYSTEM32\OPENGL32.dll
ModLoad: 00007ff8`e3760000 00007ff8`e3784000   C:\WINDOWS\SYSTEM32\WINMM.dll
ModLoad: 00007ff8`e3730000 00007ff8`e375d000   C:\WINDOWS\SYSTEM32\WINMMBASE.dll
ModLoad: 0000017b`10600000 0000017b`1062d000   C:\WINDOWS\SYSTEM32\winmmbase.dll
ModLoad: 00007ff8`cbfa0000 00007ff8`cbfcc000   C:\WINDOWS\SYSTEM32\GLU32.dll
ModLoad: 00007ff8`ab160000 00007ff8`b4612000   C:\cef\libcef.dll
ModLoad: 00007ff8`e6be0000 00007ff8`e6c4f000   C:\WINDOWS\System32\WS2_32.dll
ModLoad: 00007ff8`e63e0000 00007ff8`e643c000   C:\WINDOWS\System32\WINTRUST.dll
ModLoad: 00007ff8`e4cd0000 00007ff8`e4d0a000   C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
ModLoad: 00007ff8`d5130000 00007ff8`d513c000   C:\WINDOWS\SYSTEM32\Secur32.dll
ModLoad: 00007ff8`e5830000 00007ff8`e5842000   C:\WINDOWS\System32\MSASN1.dll
ModLoad: 00007ff8`e56a0000 00007ff8`e56c5000   C:\WINDOWS\SYSTEM32\USERENV.dll
ModLoad: 00007ff8`e5920000 00007ff8`e5a69000   C:\WINDOWS\System32\CRYPT32.dll
ModLoad: 00007ff8`d8b90000 00007ff8`d8ba7000   C:\WINDOWS\SYSTEM32\NETAPI32.dll
ModLoad: 00007ff8`e22c0000 00007ff8`e22d3000   C:\WINDOWS\SYSTEM32\WTSAPI32.dll
ModLoad: 00007ff8`c8150000 00007ff8`c83c0000   C:\WINDOWS\SYSTEM32\UIAutomationCore.DLL
ModLoad: 00007ff8`e43c0000 00007ff8`e43ce000   C:\WINDOWS\SYSTEM32\HID.DLL
ModLoad: 00007ff8`e0cc0000 00007ff8`e0cca000   C:\WINDOWS\SYSTEM32\VERSION.dll
ModLoad: 00007ff8`e2010000 00007ff8`e20ff000   C:\WINDOWS\SYSTEM32\PROPSYS.dll
ModLoad: 00007ff8`ce0d0000 00007ff8`ce3ce000   C:\WINDOWS\SYSTEM32\DWrite.dll
ModLoad: 00007ff8`e4060000 00007ff8`e408d000   C:\WINDOWS\SYSTEM32\dwmapi.dll
ModLoad: 00007ff8`d9f20000 00007ff8`d9fa9000   C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
ModLoad: 00007ff8`d4c00000 00007ff8`d4df4000   C:\WINDOWS\SYSTEM32\dbghelp.dll
ModLoad: 00007ff8`e5870000 00007ff8`e5896000   C:\WINDOWS\System32\bcrypt.dll
ModLoad: 00007ff8`e3b30000 00007ff8`e3bc9000   C:\WINDOWS\SYSTEM32\UxTheme.dll
ModLoad: 00007ff8`cbd30000 00007ff8`cbd49000   C:\WINDOWS\SYSTEM32\USP10.dll
ModLoad: 00007ff8`de4a0000 00007ff8`de667000   C:\WINDOWS\SYSTEM32\d3d9.dll
ModLoad: 00007ff8`cb420000 00007ff8`cb443000   C:\WINDOWS\SYSTEM32\dxva2.dll
ModLoad: 00007ff8`da960000 00007ff8`dab36000   C:\WINDOWS\SYSTEM32\urlmon.dll
ModLoad: 00007ff8`d8b50000 00007ff8`d8b61000   C:\WINDOWS\SYSTEM32\credui.dll
ModLoad: 00007ff8`de910000 00007ff8`dea00000   C:\WINDOWS\SYSTEM32\WINHTTP.dll
ModLoad: 00007ff8`c2fb0000 00007ff8`c2ffb000   C:\WINDOWS\SYSTEM32\CRYPTUI.dll
ModLoad: 00007ff8`e52f0000 00007ff8`e5316000   C:\WINDOWS\SYSTEM32\ncrypt.dll
ModLoad: 00007ff8`e03a0000 00007ff8`e03bc000   C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
ModLoad: 00007ff8`e6d70000 00007ff8`e6d78000   C:\WINDOWS\System32\NSI.dll
ModLoad: 00007ff8`d6da0000 00007ff8`d7276000   C:\WINDOWS\SYSTEM32\WININET.dll
ModLoad: 00007ff8`d86e0000 00007ff8`d8a05000   C:\WINDOWS\SYSTEM32\ESENT.dll
ModLoad: 00007ff8`da460000 00007ff8`da706000   C:\WINDOWS\SYSTEM32\iertutil.dll
ModLoad: 00007ff8`e52b0000 00007ff8`e52eb000   C:\WINDOWS\SYSTEM32\NTASN1.dll
ModLoad: 00007ff8`e51f0000 00007ff8`e51fc000   C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
ModLoad: 00007ff8`b8560000 00007ff8`b8670000   C:\cef\chrome_elf.dll
ModLoad: 00007ff8`e56d0000 00007ff8`e56ff000   C:\WINDOWS\SYSTEM32\SSPICLI.DLL
ModLoad: 00007ff8`e4de0000 00007ff8`e4dec000   C:\WINDOWS\SYSTEM32\NETUTILS.DLL
ModLoad: 00007ff8`e19e0000 00007ff8`e19f7000   C:\WINDOWS\SYSTEM32\WKSCLI.DLL
ModLoad: 00007ff8`e0a60000 00007ff8`e0a78000   C:\WINDOWS\SYSTEM32\SAMCLI.DLL
(1508.233c): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00007ff8`e89b11dc cc              int     3
Type this command in the edit box and press ENTER :

Code: Select all

!sym noisy


Now type this command in the same edit box and press ENTER :

Code: Select all

.reload /f libcef.dll


You will see text like this :

Code: Select all

0:000> !sym noisy
noisy mode - symbol prompts on
0:000> .reload /f libcef.dll
SYMSRV:  BYINDEX: 0x2
         c:\symbols*http://msdl.microsoft.com/download/symbols
         libcef.dll.pdb
         80A04123C6A8BA2F4C4C44205044422E1
SYMSRV:  UNC: c:\symbols\libcef.dll.pdb\80A04123C6A8BA2F4C4C44205044422E1\libcef.dll.pdb - path not found
SYMSRV:  UNC: c:\symbols\libcef.dll.pdb\80A04123C6A8BA2F4C4C44205044422E1\libcef.dll.pd_ - path not found
SYMSRV:  UNC: c:\symbols\libcef.dll.pdb\80A04123C6A8BA2F4C4C44205044422E1\file.ptr - path not found
SYMSRV:  HTTPGET: /download/symbols/index2.txt
SYMSRV:  HttpQueryInfo: 80190190 - HTTP_STATUS_BAD_REQUEST
SYMSRV:  HTTPGET: /download/symbols/libcef.dll.pdb/80A04123C6A8BA2F4C4C44205044422E1/libcef.dll.pdb
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/libcef.dll.pdb/80A04123C6A8BA2F4C4C44205044422E1/libcef.dll.pd_
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/libcef.dll.pdb/80A04123C6A8BA2F4C4C44205044422E1/file.ptr
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  RESULT: 0x80190194
DBGHELP: C:\cef\libcef.dll.pdb - file not found
DBGHELP: libcef.dll.pdb - file not found
*** WARNING: Unable to verify checksum for C:\cef\libcef.dll
DBGHELP: libcef - export symbols

************* Symbol Loading Error Summary **************
Module name            Error
libcef                 The system cannot find the file specified
				The SYMSRV client failed to find a file in the UNC store, or there
				is an invalid UNC store (an invalid path or the pingme.txt file is
				not present in the root directory), or the file is present in the
				symbol server exclusion list.
As you can see, WinDbg tried to load the PDB file from a subdirectory inside c:\symbols, in this case the command window has this line :

Code: Select all

SYMSRV:  UNC: c:\symbols\libcef.dll.pdb\80A04123C6A8BA2F4C4C44205044422E1\libcef.dll.pdb - path not found


Create the directory c:\symbols\libcef.dll.pdb\80A04123C6A8BA2F4C4C44205044422E1\ and move the libcef.dll.pdb file from the “Debug Symbols” package to that directory.

Each version of the CEF libraries needs a different directory inside c:\symbols\libcef.dll.pdb\ and we will have to repeat all these steps every time we use a different libcef.dll file.

Now close WinDbg, open Delphi or Lazarus and open your app’s project.

Open the DPR file or the pascal unit where you initialize GlobalCEFApp and add these lines to use the CEF libraries in c:\cef

Code: Select all

  GlobalCEFApp.FrameworkDirPath     := 'c:\cef';
  GlobalCEFApp.ResourcesDirPath     := 'c:\cef';
  GlobalCEFApp.LocalesDirPath       := 'c:\cef\locales';
Build your application and, in case you use a different EXE for the subprocesses, add the same GlobalCEFApp properties to the subprocess and build it too.

Close Delphi or Lazarus, run WinDbg, go to the “File->Open executable” menu option and select your app’s EXE file.

Type the following command and press ENTER :

Code: Select all

!sym noisy
Go to the "Debug -> Go" menu option or press F5 to start debugging your application and repeat the steps to reproduce the crash.

When the application crashes you will see a description text in the command window inside WinDbg.

Go to the "View -> Call Stack" menu option to see the call stack and press the "Source", "Addrs" and "More" buttons to get more information.

As an example, this is a call stack I got for some old issue :

Code: Select all

000000ce`9a5fd9e0 00007ffc`d1dd5bbb libcef!logging::LogMessage::~LogMessage+0x48c [Y:\work\CEF3_git\chromium\src\base\logging.cc @ 944] 
000000ce`9a5fdeb0 00007ffc`d24d0593 libcef!ChromeBrowserProcessStub::system_network_context_manager+0x63 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\chrome_browser_process_stub.cc @ 138] 
000000ce`9a5fe020 00007ffc`d24d03a9 libcef!ProfileNetworkContextService::CreateNetworkContextParams+0x63 [Y:\work\CEF3_git\chromium\src\chrome\browser\net\profile_network_context_service.cc @ 411] 
000000ce`9a5fe250 00007ffc`d166d444 libcef!ProfileNetworkContextService::CreateNetworkContext+0x5f [Y:\work\CEF3_git\chromium\src\chrome\browser\net\profile_network_context_service.cc @ 221] 
000000ce`9a5fe340 00007ffc`d1de9491 libcef!Profile::CreateNetworkContext+0x26 [Y:\work\CEF3_git\chromium\src\chrome\browser\profiles\profile.cc @ 279] 
000000ce`9a5fe380 00007ffc`cf3e188e libcef!CefContentBrowserClient::CreateNetworkContext+0x31 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\content_browser_client.cc @ 1358] 
000000ce`9a5fe3d0 00007ffc`ce21dac2 libcef!content::StoragePartitionImpl::InitNetworkContext+0x58 [Y:\work\CEF3_git\chromium\src\content\browser\storage_partition_impl.cc @ 1767] 
000000ce`9a5fe610 00007ffc`d10045f3 libcef!base::OnceCallback<void ()>::Run+0x34 [Y:\work\CEF3_git\chromium\src\base\callback.h @ 99] 
000000ce`9a5fe650 00007ffc`d1008f09 libcef!mojo::InterfaceEndpointClient::NotifyError+0xfb [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc @ 386] 
000000ce`9a5fe7f0 00007ffc`d1007110 libcef!mojo::internal::MultiplexRouter::ProcessNotifyErrorTask+0x199 [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\multiplex_router.cc @ 798] 
000000ce`9a5fe980 00007ffc`d100607d libcef!mojo::internal::MultiplexRouter::ProcessTasks+0xfa [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\multiplex_router.cc @ 708] 
000000ce`9a5feb60 00007ffc`ce21dac2 libcef!mojo::internal::MultiplexRouter::OnPipeConnectionError+0x285 [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\multiplex_router.cc @ 682] 
000000ce`9a5fed20 00007ffc`d1000086 libcef!base::OnceCallback<void ()>::Run+0x34 [Y:\work\CEF3_git\chromium\src\base\callback.h @ 99] 
000000ce`9a5fed60 00007ffc`d1001193 libcef!mojo::Connector::HandleError+0x12e [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\connector.cc @ 665] 
000000ce`9a5fedc0 00007ffc`d1016aec libcef!mojo::Connector::OnHandleReadyInternal+0x9d [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\connector.cc @ 0] 
(Inline Function) --------`-------- libcef!base::RepeatingCallback<void (unsigned int, const mojo::HandleSignalsState &)>::Run+0x13 [Y:\work\CEF3_git\chromium\src\base\callback.h @ 132] 
000000ce`9a5fef40 00007ffc`d0f75772 libcef!mojo::SimpleWatcher::OnHandleReady+0x120 [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\system\simple_watcher.cc @ 293] 
(Inline Function) --------`-------- libcef!base::OnceCallback<void ()>::Run+0x61 [Y:\work\CEF3_git\chromium\src\base\callback.h @ 98] 
000000ce`9a5ff120 00007ffc`d1e2d5b6 libcef!base::TaskAnnotator::RunTask+0x182 [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.cc @ 142] 
000000ce`9a5ff350 00007ffc`d1e2d261 libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl+0x216 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 366] 
000000ce`9a5ff630 00007ffc`d0f38783 libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork+0x61 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 221] 
000000ce`9a5ff6c0 00007ffc`d0f37bf4 libcef!base::MessagePumpForUI::DoRunLoop+0x143 [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc @ 219] 
000000ce`9a5ff880 00007ffc`d1e2dfaf libcef!base::MessagePumpWin::Run+0xa4 [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc @ 77] 
000000ce`9a5ffa00 00007ffc`d0f5af3b libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run+0x10f [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 467] 
000000ce`9a5ffba0 00007ffc`d1dd366b libcef!base::RunLoop::RunWithTimeout+0x30b [Y:\work\CEF3_git\chromium\src\base\run_loop.cc @ 159] 
000000ce`9a5ffd90 00007ffc`d0f8afac libcef!CefUIThread::ThreadMain+0x77 [Y:\work\CEF3_git\chromium\src\cef\libcef\common\main_delegate.cc @ 372] 
000000ce`9a5ffe20 00007ffd`0f547bd4 libcef!base::`anonymous namespace'::ThreadFunc+0xcc [Y:\work\CEF3_git\chromium\src\base\threading\platform_thread_win.cc @ 101] 
000000ce`9a5ffea0 00007ffd`104cced1 KERNEL32!BaseThreadInitThunk+0x14
000000ce`9a5ffed0 00000000`00000000 ntdll!RtlUserThreadStart+0x21
Now go to the "Edit -> Copy Window Text To Clipboard" menu option to copy the call stack to the clipboard and paste that text in this forum.

NOTE : I'm not a WinDbg expert and some of you can probably improve this guide. Feel free to make suggestions! :D
NOTE 2 : I couldn't load the PDB file in Windows 7 (64 bits) and I had to use Windows 10 (64 bits) to use WinDbg.
User avatar
salvadordf
Posts: 4016
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Re: How to report a CEF4Delphi issue

Post by salvadordf »

There's a known issue in the CEF libraries that can crash the application using the debug libraries.

If you enable verbose logging you will see this text :
Check failed: !g_blocking_disallowed.Get().Get(). Function marked as blocking was called from a scope that disallows blocking! If this task is running inside the ThreadPool, it needs to have MayBlock() in its TaskTraits. Otherwise, consider making this blocking work asynchronous or, as a last resort, you may use ScopedAllowBlocking (see its documentation for best practices).
It was reported in the official CEF forum :
https://magpcss.org/ceforum/viewtopic.php?f=6&t=17075

And the issue in the CEF project is here :
https://bitbucket.org/chromiumembedded/ ... eck-failed

In my case, I was using Windows 10 with a 1080 monitor when I saw this error. The workaround was to add this code line before the GlobalCEFApp.StartMainProcess call in the DPR file :

Code: Select all

GlobalCEFApp.EnableHighDPISupport := True;
User avatar
salvadordf
Posts: 4016
Joined: Thu Feb 02, 2017 12:24 pm
Location: Spain
Contact:

Re: How to report a CEF4Delphi issue

Post by salvadordf »

I updated the links of the main post to the new CEF binaries server.
Post Reply