I'm using an older, stable version of cef:
3.3578.1863.gbf8cff
I'm initializing cef with a class implementing:
- Code: Select all
public CefApp,
public CefBrowserProcessHandler,
public CefRenderProcessHandler
My initialization looks like:
- Code: Select all
CefSettings setting;
//CefString(&(setting.browser_subprocess_path)).FromString(_tempnam("b1", "b2"));
CefString(&(setting.cache_path)).FromString(_tempnam("b3", "b4"));
setting.windowless_rendering_enabled = true;
setting.multi_threaded_message_loop = true;
CefInitialize(main_args, setting, this, nullptr);
the exe and all other bin/dat/dll files are in one folder, to allow cef to find them. On calling CefInitialize, I get the following callstack:
- Code: Select all
ntdll.dll!00007ff992ddb042() Unknown
ntdll.dll!00007ff992de390e() Unknown
ntdll.dll!00007ff992de3c1a() Unknown
ntdll.dll!00007ff992d7ecb1() Unknown
ntdll.dll!00007ff992cf174c() Unknown
ntdll.dll!00007ff992ceda21() Unknown
ntdll.dll!00007ff992ceb52a() Unknown
ntdll.dll!00007ff992ce9efd() Unknown
KernelBase.dll!00007ff98f73e9b7() Unknown
KernelBase.dll!00007ff98f73e8a6() Unknown
libcef.dll!base::File::DoInitialize(const base::FilePath & path, unsigned int flags) Line 394 C++
libcef.dll!base::File::Initialize(const base::FilePath & path, unsigned int flags) Line 95 C++
libcef.dll!gin::`anonymous namespace'::OpenV8File(const char * file_name, base::MemoryMappedFile::Region * region_out) Line 158 C++
> libcef.dll!gin::V8Initializer::LoadV8Snapshot(gin::V8Initializer::V8SnapshotFileType snapshot_file_type) Line 282 C++
libcef.dll!content::ContentMainRunnerImpl::Initialize(const content::ContentMainParams & params) Line 760 C++
libcef.dll!service_manager::MainInitialize(service_manager::MainParams & params) Line 425 C++
libcef.dll!CefContext::Initialize(const CefMainArgs & args, const CefStructBase<CefSettingsTraits> & settings, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 407 C++
libcef.dll!CefInitialize(const CefMainArgs & args, const CefStructBase<CefSettingsTraits> & settings, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 250 C++
libcef.dll!cef_initialize(const _cef_main_args_t * args, const _cef_settings_t * settings, _cef_app_t * application, void * windows_sandbox_info) Line 228 C++
VPHTML.dll!CefInitialize(const CefMainArgs & args, const CefStructBase<CefSettingsTraits> & settings, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 226 C++
VPHTML.dll!Frame::Frame() Line 21 C++
VPHTML.dll!VPHTML::{ctor}::__l2::<lambda>() Line 83 C++
VPHTML.dll!std::_Invoker_functor::_Call<void <lambda>(void) >(VPHTML::{ctor}::__l2::void <lambda>(void) && _Obj) Line 1447 C++
VPHTML.dll!std::invoke<void <lambda>(void) >(VPHTML::{ctor}::__l2::void <lambda>(void) && _Obj) Line 1447 C++
VPHTML.dll!std::thread::_Invoke<std::tuple<void <lambda>(void) >,0>(void * _RawVals) Line 39 C++
ucrtbase.dll!00007ff98fbd1ffa() Unknown
kernel32.dll!00007ff990d87974() Unknown
ntdll.dll!00007ff992d4a271() Unknown
The line:
- Code: Select all
file_.Set(CreateFile(path.value().c_str(), access, sharing, NULL,
disposition, create_flags, NULL));
in file_win.cc
fails, as file_ is null. This is the line that requests v8_...bin.
There's an error thrown, and the heap is blown. Why is this? And how do I fix it?
I am not able to upgrade my version of cef unfortunately, but this version works with the CefSharp project, so i know that there is a way to initialize things so that file_ is not null
Any help?