Page 1 of 1

cefclient 2785 x64 unable to load google

PostPosted: Wed Sep 28, 2016 11:33 pm
by amaitland
Testing cef_binary_3.2785.1482.g16e49fb_windows64_client on Windows 10 x64 Anniversary 14393.187

cefclient loads, the url just cycles through different Google ei= values in the query string. No error messages in Debug.log, it doesn't crash, just never loads a page successfully.

I've increased logging to Verbose and nothing stands out. Will test on another Windows 10 Pre Anniversary machine when I get home later.

Anyone have time to test on a different configuration to see what result they get? Windows 7/8?

Re: cefclient 2785 x64 unable to load google

PostPosted: Thu Sep 29, 2016 1:19 am
by fddima
Same windows - cefclient runs fine for me.

Re: cefclient 2785 x64 unable to load google

PostPosted: Thu Sep 29, 2016 1:34 am
by amaitland
Interesting thanks. Probably hardware related. I tried to disable GPU and it crashes, will load symbols later and see what else I can find out.

Re: cefclient 2785 x64 unable to load google

PostPosted: Thu Sep 29, 2016 7:47 pm
by amaitland
So with `--disable-gpu` I'm getting `Unhandled exception at 0x00007FFA1FB7055C (libcef.dll) in cefclient.exe: 0xC000001D: Illegal Instruction.`


Source file is `chromium\src\third_party\skia\src\opts\sknx_sse.h`

Code: Select all
libcef.dll!SkNx<4,float>::SkNx<4,float>(float a=-9.38888931, float b=-3.47674417, float c=-9.38888931, float d=-3.47674417) Line 73   C++
libcef.dll!SkMatrix::Scale_pts(const SkMatrix & m, SkPoint * dst, const SkPoint * src, int count) Line 960   C++
libcef.dll!SkMatrix::mapRect(SkRect * dst=0x0000017a822955dc, const SkRect & src={...}) Line 1105   C++
libcef.dll!SkCanvas::getClipBounds(SkRect * bounds=0x0000017a822955dc) Line 1855   C++
libcef.dll!SkCanvas::quickReject(const SkRect & rect={...}) Line 1813   C++
libcef.dll!SkCanvas::onDrawRect(const SkRect & r={...}, const SkPaint & paint={...}) Line 2139   C++
libcef.dll!cc::SoftwareRenderer::DrawSolidColorQuad(const cc::DirectRenderer::DrawingFrame * quad=0x0000017a822923c8, const cc::SolidColorDrawQuad *) Line 405   C++
libcef.dll!cc::SoftwareRenderer::DoDrawQuad(cc::DirectRenderer::DrawingFrame * frame=0x00000049d71ad200, const cc::DrawQuad * quad=0x0000017a822923c8, const gfx::QuadF * draw_region=0x0000000000000000) Line 311   C++
libcef.dll!cc::DirectRenderer::DrawRenderPass(cc::DirectRenderer::DrawingFrame * frame=0x00000049d71ad200, const cc::RenderPass * render_pass=0x0000017affd5b6c0) Line 499   C++
libcef.dll!cc::DirectRenderer::DrawRenderPassAndExecuteCopyRequests(cc::DirectRenderer::DrawingFrame * frame=0x00000049d71ad200, cc::RenderPass * render_pass=0x0000017affd5b6c0) Line 430   C++
libcef.dll!cc::DirectRenderer::DrawFrame(std::vector<std::unique_ptr<cc::RenderPass,std::default_delete<cc::RenderPass> >,std::allocator<std::unique_ptr<cc::RenderPass,std::default_delete<cc::RenderPass> > > > * render_passes_in_draw_order=0x0000017a82255358, float device_scale_factor, const gfx::ColorSpace & device_color_space={...}, const gfx::Rect & device_viewport_rect={...}, const gfx::Rect & device_clip_rect={...}, bool disable_picture_quad_image_filtering=false) Line 281   C++
libcef.dll!cc::Display::DrawAndSwap() Line 301   C++
libcef.dll!cc::DisplayScheduler::DrawAndSwap() Line 118   C++
libcef.dll!cc::DisplayScheduler::AttemptDrawAndSwap() Line 275   C++
libcef.dll!cc::DisplayScheduler::OnBeginFrameDeadline() Line 294   C++
libcef.dll!base::internal::Invoker<base::internal::BindState<base::internal::RunnableAdapter<void (__cdecl mojo::InterfaceEndpointClient::*)(void) __ptr64>,base::WeakPtr<mojo::InterfaceEndpointClient> & __ptr64>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 346   C++
libcef.dll!base::internal::Invoker<base::internal::BindState<base::internal::RunnableAdapter<void (__cdecl mojo::InterfaceEndpointClient::*)(void) __ptr64>,base::WeakPtr<mojo::InterfaceEndpointClient> & __ptr64>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 346   C++
libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function=0x00007ffa234867f0, const base::PendingTask & pending_task={...}) Line 53   C++
libcef.dll!base::MessageLoop::RunTask(const base::PendingTask & pending_task={...}) Line 491   C++
libcef.dll!base::MessageLoop::DoWork() Line 622   C++
libcef.dll!base::MessagePumpForUI::DoRunLoop() Line 263   C++
libcef.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 142   C++
libcef.dll!base::RunLoop::Run() Line 36   C++
libcef.dll!base::MessageLoop::Run() Line 290   C++
libcef.dll!cef_run_message_loop() Line 351   C++
cefclient.exe!00007ff73e402546()   Unknown
cefclient.exe!00007ff73e42965e()   Unknown
cefclient.exe!00007ff73e47d5ab()   Unknown
kernel32.dll!00007ffa58c78364()   Unknown
ntdll.dll!00007ffa59215e91()   Unknown


So looks like processor instruction related? Machine I'm using is an old Intel i7-960

Re: cefclient 2785 x64 unable to load google

PostPosted: Thu Sep 29, 2016 7:59 pm
by fddima
Looks like i'm pick wrong build when test, and it of course work, because it is now known issue.
UPD: No, it is work because it is just work on my i7-4770 with or without GPU. :)

Windows: 2785+: Crash running x64 build on processors that do not support vmovaps

Check this PR (for 2785): Windows: Resort SSE/AVX-specific object files (issue #1999)

And you can try my private build 53.0.2: https://www.myget.org/feed/dazaraev/pac ... le-win-x64
It contains changes from my branch https://bitbucket.org/xilium/cefglue-ce ... oenix/2785 .
UPD: But don't redist phoenix builds. They can be changed in any time with any way. Now webrtc is disabled in this builds.

Re: cefclient 2785 x64 unable to load google

PostPosted: Thu Sep 29, 2016 9:14 pm
by amaitland
Thanks for confirming! I had a suspicion that was the issue in question. Took me a while to download the chromium-53.0.2785.116 source, exactly the same `_mm_setr_ps` call in `SkNx` as you mentioned.

Re: cefclient 2785 x64 unable to load google

PostPosted: Thu Sep 29, 2016 9:33 pm
by fddima
amaitland wrote:Thanks for confirming! I had a suspicion that was the issue in question. Took me a while to download the chromium-53.0.2785.116 source, exactly the same `_mm_setr_ps` call in `SkNx` as you mentioned.


NP. :) The more important that you can build standard package with proposed PR. Or wait, until Marshal integrates patch.

PS: I'm fixed access rights to https://bitbucket.org/xilium/cefglue-cef .

Re: cefclient 2785 x64 unable to load google

PostPosted: Wed Jun 23, 2021 9:41 pm
by DrivingRoads
Sorry to hijack this thread, just want to help future people who run into this issue.

I had a similar problem:

Code: Select all
libcef.dll ... 0xC000001D: Illegal Instruction

It turns out I was missing some .dll or .dat files.

This is how I debugged it:
  • Break when the exception is thrown (enable that in exception settings).
  • Go to the call stack and double-click the highest .dll.
  • Click "Browse for .pdb" and select the libcef.pdb file (it's provided as "debug symbols" or "release symbols" among Spotify's cef builds).
  • If it asks you to for the location of a cef source file, clone CEF, check out the correct revision (it's in the title of the binaries as cef-{version}-g{hash}-... (so type git checkout {hash}), and navigate to there.
  • If it asks you to for the location of a chromium source file, clone chromium, check out the correct revision (find the tag by the version number in the binary title), and navigate to there.
  • Go up and down the stack trace to hopefully figure out the issue. In my case, I found a variable called something like "path", realized it was pointing to a non-existent .dat, and placed the correct .dat there.