Unexpected "Source File not Found" dialog, asking for files, which I do not have
Posted by Alexander Alexeev on 22 October 2009 11:37
I got unexpected "Source File not Found" dialog asking for EurekaLog files during debugging.
Actually, this is not EurekaLog, who wants that file, but rather Delphi's IDE (Debugger).
EurekaLog gather many information for the report. Some info (like call stack, assembler and CPU) requires operating in uncertain conditions. I.e. when you gather this type of information, you can encounter Access Violation, because you're trying to access invalid memory. When this happens, the executing code is EurekaLog's code. And you are aware that Delphi's debugger usually shows you a line, which raised exception, right? That's it.
The reason for this "Source File not Found" dialog is that you have professional version of EurekaLog that comes without sources. Therefore EurekaLog installs only set of precompiled DCUs on your machine. It is suffice to compile and run your application. The EurekaLog itself will be fully functional.
But the Delphi debugger is different beast. He can stops on exceptions. And when he do that - he want to show you something. And that something is the source code. When exception is occured the most "hot place" is EurekaLog's hooking code. You do not have the source code of EurekaLog. So, it is unsurprising that debugger cann't find it. That's where the dialog comes from: Delphi debugger wants you to show source file to him. You can't do that, since you do not have source code at all. You should just push the "Ignore" button and continue your debug session. There will be probably other dialogs, but just continue to press "Ignore" and F9 - and in the end your application will continue working and EurekaLog dialog will pop up.
Of course, there is no such "Source File not Found" dialog if you will run your application without debugger - namely on client's machines.
You do have a several options:
1). Continue to using it as it is - by pressing the "Ignore" button.
2). Run your application as standalone rather then from IDE.
3). Disable the debugger by unchecking "Integrated debugger" option box in the Tools/Debugger Options.
4). Disable the "Stop on Delphi exception" option box in the Tools/Debugger Options on the "Language Exceptions" page.
5). Disable EurekaLog for development cycle and enable it for the release product.
6). Try to find your default settings where this dialog won't be appear. Try to toggle "Use Debug DCUs" option, for example.
7). Buy a Enterprise version and get the full source code.
I think that the best choice are options #4 and #7.
#4 is a great solution - since you have EurekaLog now to track all of your exceptions.
And #7 is ultimate solution for this issue (and few others issues) as it can not happen if you have full sources - now debugger will always able to show you sources.
Also you can send us a demo, where you have reproduced this problem. We'll take a look and may be will be able to add a few additional checks in EL code to avoid this kind of situation (there can be other problem place though).