PDA

View Full Version : "Send Error Report" button


InfoW
19-Oct-2009, 10:31 PM
EurekaLog 6.0.21

I use "MS Classic" dialog type. I use "Show 'Send Error report' option"

Once the exception occurs, then the EurekaLog dialog appears, where I can see "Send Error report" button and text messages like "Please tell us about this problem. We have created an error report... bla, bla, bla".

and the file .ELF automatically created.

Once the exception occurs again (.ELF alerady present), then there are no "Send Error report" button on EurekaLog dialog, and no text messages like I wrote above.

So, how the user can send the report if the "Send Error report" button is not present on dialog?

Need to fix it urgently.

Alex
20-Oct-2009, 08:09 AM
Hi,

Ummm... what is your setting for "Do not save duplicate errors" option? Is it enabled? If so, then why do you think there should be "Send" button? If it is not enabled, then can you send us a demo to demonstrate this?

InfoW
20-Oct-2009, 11:01 PM
Hi,

Ummm... what is your setting for "Do not save duplicate errors" option? Is it enabled? If so, then why do you think there should be "Send" button? If it is not enabled, then can you send us a demo to demonstrate this?

Yes, it is enabled.

The user may do not want to send the report for this crash at the first time, but may want to do that later, for the second time, is not it?

Is it possible to add this feature?

InfoW
21-Oct-2009, 06:22 PM
Any news?

The user may want to send report later, but it cannot.

I think it should be fixed.

Alex
22-Oct-2009, 11:38 AM
Hi,

I do not undestand what you're asking for :(
Why you can't turn off "Do not save duplicate errors" option?

InfoW
22-Oct-2009, 02:44 PM
The EurekaLog MUST suggest to send crash report ("Send" button) in anyway, in both cases : "Do not save duplicate errors" option ENABLED or not.

Is not it?

Alex
22-Oct-2009, 03:11 PM
Hi,

Why?
Turn off "Do not save duplicate errors" and you'll get desired behavior. Disabling send button for duplicates - that's what "Do not save duplicate errors" do. No?

I'm not sure, but may be you'll find this option useful: "Send entire log file" (it's on "Send options" page).

InfoW
22-Oct-2009, 03:28 PM
AlexDisabling send button for duplicates - that's what "Do not save duplicate errors" do. No?

Ok. But what if user want to send report in this case, but it cannot, because "Send" button is disabled?

It cannot send a report for such kind of error forever!!

Alex
22-Oct-2009, 03:49 PM
Hi,

Ahhh... I finally see what you're saying! Sorry for that :)

Okay, let me investigate this issue.

Alex
23-Oct-2009, 08:53 AM
Hi,

I've studied your request and here are conclusions:

1. It is not possible to implement this behavior on v6. That's because we need to add a new field to bug report: "Sended", which should be True if this report was sended and False if it's not.

2. To implement similar behavior on v6, you need to event handler, here is simple example:
uses
ECore, ExceptionLog;

procedure CustomExceptionAction(EurekaExceptionRecord: TEurekaExceptionRecord;
EurekaAction: TEurekaActionType; var Execute: Boolean);
var
LogFileName, BackupLogFileName: String;
begin
if loNoDuplicateErrors in CurrentEurekaLogOptions.LogOptions then
begin
LogFileName := ExpandEnvVars(CurrentEurekaLogOptions.OutputLogFil e(''));
BackupLogFileName := LogFileName + '.beforesend';

case EurekaAction of
// Save a copy of log before appending new exception to log
atSavingLogFile:
begin
DeleteFile(BackupLogFileName);
if FileExists(LogFileName) then
CopyFile(PChar(LogFileName), PChar(BackupLogFileName), False)
else
TFileStream.Create(BackupLogFileName, fmCreate or fmShareExclusive).Free;
end;
// Revert log back, ignoring all exceptions that wasn't sended
atShowingExceptionInfo:
begin
if FileExists(BackupLogFileName) then
CopyFile(PChar(BackupLogFileName), PChar(LogFileName), False);
DeleteFile(BackupLogFileName);
end;
// Revert log back, if there is any sending error. Otherwise - save log (by removing backup copy)
atSentEmail, atSentWebMessage:
begin
if not Execute then
begin
if not FileExists(BackupLogFileName) then
DeleteFile(LogFileName)
else
CopyFile(PChar(BackupLogFileName), PChar(LogFileName), False);
end;
DeleteFile(BackupLogFileName);
end;
end;
end;
end;

initialization
ExceptionActionNotify := CustomExceptionAction;

end.

EurekaLog's processing goes as following:
1. Show dialog.
2. Hide dialog.
3. Save log file.
4. Send it, if send button was clicked.

Idea is simple: make a copy of log file before saving. Restore it before showing dialog. If log was sent - remove copy of log, so it won't be "restored" at next dialog's show.

Unfortunately, this also means that you'll receive only one new exception in report. I.e. it is not possible to have bug report with 3 unsended exceptions and send entire log file on 4th exception with this workaround. Like I say, bug report's format should be extended to include such additional info.

BTW, I've added this as suggestion to our TO-DO list for v7.

InfoW
23-Oct-2009, 06:18 PM
It is fine, that you understood what I was talked about.

I am waiting for the other answer, about incompatibility Eurekalog with some of protectors (see support).

EurekaLog do changes in code in run-time, that are detected by protectors as inline attack.

Alex
26-Oct-2009, 09:12 AM
Hi,

I've answered you on support.

EurekaLog do changes in code in run-time, that are detected by protectors as inline attack.
If this is the case then protector should provide some way to mark this code as "changeable" or something. EurekaLog must inject hooks on exception processing code in order to function.

InfoW
26-Oct-2009, 10:13 AM
I have sent you a screen-shots in support area.

On Eureaklog description page exist a the statement that Eurekalog if FULLY compatible will all protectors... but it is not.

I think you should contact with Oreans authors and try to solve the problem together.

Alex
26-Oct-2009, 10:37 AM
Hi,

I think you should contact with Oreans authors and try to solve the problem together.
I've already done this, but haven't received any reply yet.