I understand that my problem is multidimensional and I will probably get some independent advices, but thank you very much for all this and I am sorry if this is a newbie question.
I use a CEF (TChromium) browser in Delphi RAD 10. I regularly receive an error at the customer's production which I cannot replicate while working on the debugger. After displaying basic Win error information, the system (Win7) kills program, which ends with unsaved previous work. I checked each element of the code step by step, asked fellow programmers for analysis and it seems that this error applies only to the CEF browser. Every time, regardless of what i can manage to note in the program's work, the error is the same:
Problem signature:
Problem Event Name: APPCRASH
Application Name: MyApp.exe
Application version: 0.0.0.0
Application timestamp: 5e36d888
Module name with error: libcef.dll
Module version with error: 3.2454.1344.0
Module timestamp with error: 562d8f27
Exception Code: c0000005
Exception Offset: 001dea9b
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1045
Additional information 1: 0a9e
Additional information 2: 0a9e372d3b4ad19135b953a78882e789
Additional information 3: 0a9e
Additional information 4: 0a9e372d3b4ad19135b953a78882e789
Yes, I guess the problem may arise from a large number of different things, but I assume that since this only happens when using the browser (otherwise the program works perfectly), and every time the same problem is displayed, it may be a TChromium component.
Unfortunately, I was not able to understand what exactly causes this problem (libcef.dll c0000005 / 001dea9b exeption) and all threads found on various forums are terminated and/or unresolved.
I tried to program each page load by displaying a larger message instead of closing the program:
procedure LoadUrl(url: String);
begin
try
Form1.Chromium1.Load(url);
except
on E : Exception do
ShowMessage('CEF: '+E.ClassName+' error raised, with message : '+E.Message);
end;
end;
But when working on the debugger I do not get any error (again), and on production system just kills the application without any error message.
At first glance, I think I need an explanation:
- TChromium component actually changes only when i call it with "Load (url)", so do I understand correctly that this place in code is where I should focus?
- Can I program errors/exceptions of external libraries this way? Or maybe there is some other way to use them safely, so that the error will not be the reason for killing the app, but will be controlled on production?
- Will this mentioned procedure calling TChromium component give me more information than the system that kills my app? (Of course, if this is error place, because it seems to be the surest shot)
- I use the EurekaLog7 tool - but I can't understand how I should use it to track the browser library errors trace and where to call it, or even how to take it in code. Actually, I have absolutely no idea where to start using it on external library, I will gladly accept some documentation or a hint about what to read and where I will find an understandable example.
Thank you in advance and I apologize if this is too easy or a problem is stupid. Of course, I also know that since I do not provide the full code, it will be difficult to analyze the problem, but I want to learn such error analysis myself, so maybe you will forgive me. :)
~~Additional info
- program got x32 structure, is runned in win 7 xs64;
- program is a simple crawler whose task is to save selected elements of searched pages to a text file form;
- optional: it is enough for me, if this error manages to trigger my own shutdown procedure allowing to save the results simply, the app can be killed after because the sheduler will resurrect it;