PDA

View Full Version : 6.0vRC4 - ExceptionLog.obj Linker error when unrelated form removedfrom project


Daniel Mayo
01-Feb-2007, 07:28 PM
Had a bug when building my project that had EurekaLog activated in it.
I removed a form from my project and went to rebuild, and got an error
ExceptionLog.obj not found, then a full build "ExceptionLog.dcu" not
found; and the EurekaLog options appeared to be disabled under the
Project Menu bar.

I had to remove EurekaLog from the Project Options, remove Exception.pas
from the project to get the application to rebuild.

Fabio Dell'Aria
01-Feb-2007, 07:57 PM
Hi,

Daniel Mayo wrote:
> Had a bug when building my project that had EurekaLog activated in it. I
> removed a form from my project and went to rebuild, and got an error
> ExceptionLog.obj not found, then a full build "ExceptionLog.dcu" not
> found; and the EurekaLog options appeared to be disabled under the
> Project Menu bar.
>
> I had to remove EurekaLog from the Project Options, remove Exception.pas
> from the project to get the application to rebuild.

Can you tell me step by step I must do to can reproduce it on an empty
project, please?

--
Best regards...

Fabio Dell'Aria.
----------------
http://www.eurekalog.com
Catch every BUG, every time!

Daniel Mayo
01-Feb-2007, 08:21 PM
> Can you tell me step by step I must do to can reproduce it on an empty
> project, please?
>

Forgive me for posting it so quickly; it just tied me up for awhile when
it happened.

I am unable to repeat this bug right now; I tried a basic project with
two forms, compiled, ran, and then went back and removed one form, but
it worked appropriately. If I see it again, I'll let you know.

Daniel Mayo
02-Feb-2007, 03:03 PM
Got it again, this time during runtime, not sure how to repeat it though:

EurekaLog 6.0 RC 4

Application:
-----------------------------------------------------------------------
1.1 Start Date : Fri, 2 Feb 2007 07:41:30 -0600
1.2 Name/Description: bcb.exe - (C++ Builder Development Environment)
1.3 Version Number : 6.0.10.166
1.4 Parameters :
1.5 Compilation Date:
1.6 Up Time : 1 hour, 16 minutes, 6 seconds

Exception:
-----------------------------------------------------------------------------------------------
2.1 Date : Fri, 2 Feb 2007 08:57:36 -0600
2.2 Address : 4002F239
2.3 Module Name : rtl60.bpl - (Borland Component Package)
2.4 Module Version: 6.0.6.243
2.5 Type : EFOpenError
2.6 Message : Cannot open file C:\Program Files\EurekaLog
6\CBuilder6\ExceptionLog.pas.
2.7 ID : C072
2.8 Count : 1
2.9 Status : New
2.10 Note :

User:
-------------------------------------------------------
3.1 ID : dmayo
3.2 Name :
3.3 Email :
3.4 Company :
3.5 Privileges: SeChangeNotifyPrivilege - ON
SeSecurityPrivilege - OFF
SeBackupPrivilege - OFF
SeRestorePrivilege - OFF
SeSystemtimePrivilege - OFF
SeShutdownPrivilege - OFF
SeRemoteShutdownPrivilege - OFF
SeTakeOwnershipPrivilege - OFF
SeDebugPrivilege - OFF
SeSystemEnvironmentPrivilege - OFF
SeSystemProfilePrivilege - OFF
SeProfileSingleProcessPrivilege - OFF
SeIncreaseBasePriorityPrivilege - OFF
SeLoadDriverPrivilege - ON
SeCreatePagefilePrivilege - OFF
SeUndockPrivilege - ON
SeManageVolumePrivilege - OFF
SeImpersonatePrivilege - ON
SeCreateGlobalPrivilege - ON

Active Controls:
---------------------------------------------------------
4.1 Form Class : TEditWindow
4.2 Form Text : (CONFIDENTIAL)
4.3 Control Class: TEditControl
4.4 Control Text :

Computer:
------------------------------------------------------------------------------------------------------
5.1 Name : DMAYO2
5.2 Total Memory : 758 Mb
5.3 Free Memory : 169 Mb
5.4 Total Disk : 31.39 Gb
5.5 Free Disk : 4.5 Gb
5.6 System Up Time: 1 hour, 22 minutes, 23 seconds
5.7 Processor : Intel(R) Pentium(R) M processor 1.60GHz
5.8 Display Mode : 1024 x 768, 32 bit
5.9 Display DPI : 96
5.10 Video Card : Intel(R) 82852/82855 GM/GME Graphics Controller
(driver 6.14.10.4497 - RAM 0 MB)
5.11 Printer :

Operating System:
------------------------------------
6.1 Type : Microsoft Windows XP
6.2 Build # : 2600
6.3 Update : Service Pack 2
6.4 Language: English
6.5 Charset : 0

Network:
---------------------------------
7.1 IP Address: 131.171.003.011
7.2 Submask : 255.255.000.000
7.3 Gateway : 131.171.002.192
7.4 DNS 1 : 131.171.003.016
7.5 DNS 2 : 131.171.002.191
7.6 DHCP : ON

Fabio Dell'Aria
02-Feb-2007, 03:30 PM
Hi,

Daniel Mayo wrote:
> Got it again, this time during runtime, not sure how to repeat it though:
>
> [...]

Can you send to me the entire .ELF file, please (with the call-stack)?


--
Best regards...

Fabio Dell'Aria.
----------------
http://www.eurekalog.com
Catch every BUG, every time!

Daniel Mayo
02-Feb-2007, 06:26 PM
Fabio Dell'Aria wrote:
> Hi,
>
> Daniel Mayo wrote:
>> Got it again, this time during runtime, not sure how to repeat it though:
>>
>> [...]
>
> Can you send to me the entire .ELF file, please (with the call-stack)?
>
>
Ok, where is the .elf file? In this case, no elf is generated, or
updated, in my project direction. It seems as though EurekaLog is
catching IDE errors???

I updated to RC5, and now I can still get the error report, but I can't
copy from the window.. when I try the log locks up. Is there a default
place the .elf should be??? Is there a way to safe a .elf from the dialog?

Fabio Dell'Aria
02-Feb-2007, 06:38 PM
Daniel Mayo wrote:
> Fabio Dell'Aria wrote:
>> Hi,
>>
>> Daniel Mayo wrote:
>>> Got it again, this time during runtime, not sure how to repeat it
>>> though:
>>>
>>> [...]
>>
>> Can you send to me the entire .ELF file, please (with the call-stack)?
>>
>>
> Ok, where is the .elf file? In this case, no elf is generated, or
> updated, in my project direction. It seems as though EurekaLog is
> catching IDE errors???

It's placed in the ($BCB\$Delphi)\Bin folder.

> I updated to RC5, and now I can still get the error report, but I can't
> copy from the window.. when I try the log locks up. Is there a default
> place the .elf should be??? Is there a way to safe a .elf from the dialog?

Not, you can only check the "Copy Log Text" check-box.

How I can reproduce it on my PC?

Can you create a source demo able to reproduce it, please?

....or just a step by step points list usable to reproduce it?

--
Best regards...

Fabio Dell'Aria.
----------------
http://www.eurekalog.com
Catch every BUG, every time!

Daniel Mayo
02-Feb-2007, 08:28 PM
What's your direct email address?

Would you like it as the whole .elf (1.866MB) or just an XML of the one
error 823kb?

Trust me, I did try to create a simple app. that could recreate the
error, with no luck.

I'm trying to track down why my code is crashing... Of course, my
dumbed-down object functioned absolutely correctly and the crash didn't
occur.

Daniel Mayo
02-Feb-2007, 08:56 PM
Got it to repeat in something simple using the following 4 files:
Subclass.h subclass.cpp main.h main.cpp
The main form has a button and stringgrid on it. The stringgrid is set
to 1 colcount and 1 rowcount. The button's on click method is defined
in main.cpp


//************************************************** *****************
//START "subclass.h" ***********************************************
//************************************************** *****************
//---------------------------------------------------------------------------

#ifndef SubClassH
#define SubClassH
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------
class Tfoo
{
private:
bool GridOwner;
TStringGrid *Grid;
DynamicArray<int> Xvals;
public:
void SetX(int x);
int getX(int i);
Tfoo();
Tfoo(TStringGrid *TheGrid);
~Tfoo();
Tfoo(Tfoo &v);
Tfoo operator= (Tfoo rhs);
Tfoo operator- (int x);
};

#endif
//************************************************** *****************
//END "subclass.h" ***********************************************
//************************************************** *****************

//************************************************** *****************
//START "subclass.cpp" ***********************************************
//************************************************** *****************

//subclass.cpp
//---------------------------------------------------------------------------


#pragma hdrstop

#include "SubClass.h"

//---------------------------------------------------------------------------
Tfoo::Tfoo(Tfoo &v)
{
Xvals = v.Xvals;
Grid = new TStringGrid(Application);
GridOwner = true;
Grid->ColCount=1;
Grid->RowCount=1;
Grid->Cells[0][0] = "X";
}

Tfoo::Tfoo()
{
Xvals.Length = 0;
Grid = new TStringGrid(Application);
GridOwner = true;
Grid->ColCount=1;
Grid->RowCount=1;
Grid->Cells[0][0] = "X";
}

Tfoo::Tfoo(TStringGrid *TheGrid)
{
Xvals.Length = 0;
GridOwner = false;
if (TheGrid==NULL)
{
Grid = new TStringGrid(Application);
GridOwner = true;
}
else
{
Grid = TheGrid;
}
if (Grid->RowCount<=1)
{
Grid->ColCount=1;
Grid->RowCount=1;
Grid->Cells[0][0] = "X";
}
}

Tfoo::~Tfoo()
{
if (GridOwner)
{
try
{
delete Grid;
}
catch (...)
{
;
}
}
}

int Tfoo::getX(int i)
{
return Xvals[i];
}

void Tfoo::SetX(int x)
{
Xvals.Length++;
Xvals[Xvals.Length-1] = x;
Grid->RowCount++;
Grid->FixedRows = 1;
Grid->Cells[0][Grid->RowCount-1] = x;
}

Tfoo Tfoo::operator= (Tfoo rhs)
{
if (this == &rhs)
{
return *this;
}

if (rhs.GridOwner)
{
Grid = rhs.Grid;
}
GridOwner = rhs.GridOwner;
Xvals = rhs.Xvals;
return *this;
}


Tfoo Tfoo::operator- (int q)
{
for (int i=0; i<Xvals.Length; i++)
{
Xvals[i] -= q;
if (Grid)
{
Grid->Cells[0][i] = Xvals[i];
}
}
return *this;
}
#pragma package(smart_init)

//************************************************** *****************
//END "subclass.cpp" ***********************************************
//************************************************** *****************




//************************************************** *****************
//Start "main.cpp" ***********************************************
//************************************************** *****************
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"
#include "subclass.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
DynamicArray<Tfoo> Bars;
Bars.Length = 0;

for (int i=1 ;i<6; i++)
{
Tfoo *bar = new Tfoo(StringGrid1);
Bars.Length++;
bar->SetX(i);
Bars[Bars.Length -1] = *bar;
delete bar;
}
Bars[0].SetX(5);

Tfoo *test = new Tfoo(Bars[0]);
Bars[0] = Bars[0] -1;
ShowMessage(Bars[0].getX(1));
ShowMessage(test->getX(1));
delete test;
}
//---------------------------------------------------------------------------

//************************************************** *****************
//END "main.cpp" ***********************************************
//************************************************** *****************

//************************************************** *****************
//START "main.h" ***********************************************
//************************************************** *****************

//---------------------------------------------------------------------------

#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------


class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TStringGrid *StringGrid1;
TStringGrid *StringGrid2;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

//************************************************** *****************
//END "main.h" ***********************************************
//************************************************** *****************

Fabio Dell'Aria
02-Feb-2007, 09:25 PM
Hi,

Daniel Mayo wrote:
> What's your direct email address?
>
> Would you like it as the whole .elf (1.866MB) or just an XML of the one
> error 823kb?
>
> Trust me, I did try to create a simple app. that could recreate the
> error, with no luck.
>
> I'm trying to track down why my code is crashing... Of course, my
> dumbed-down object functioned absolutely correctly and the crash didn't
> occur.

Can you send to me the whole .elf file at: support@eurekalog.com please?

--
Best regards...

Fabio Dell'Aria.
----------------
http://www.eurekalog.com
Catch every BUG, every time!

Fabio Dell'Aria
13-Feb-2007, 05:53 AM
Hi,

Fabio Dell'Aria wrote:
> Hi,
>
> Daniel Mayo wrote:
>> What's your direct email address?
>>
>> Would you like it as the whole .elf (1.866MB) or just an XML of the
>> one error 823kb?
>>
>> Trust me, I did try to create a simple app. that could recreate the
>> error, with no luck.
>>
>> I'm trying to track down why my code is crashing... Of course, my
>> dumbed-down object functioned absolutely correctly and the crash
>> didn't occur.
>
> Can you send to me the whole .elf file at: support@eurekalog.com please?

I have try your demo with the last EurekaLog 6 version.

The problem seems to be related to a memory corruption generated by this
specified error. It appears also without EurekaLog.

--
Best regards...

Fabio Dell'Aria.
----------------
http://www.eurekalog.com
Catch every BUG, every time!