PDA

View Full Version : Application exception happening only inside VMWare - no useful ELinformation


Thomas Steinmaurer
13-Dec-2011, 07:05 AM
Hello,

EurekaLog doesn't give me useful information for a case, where the application generates an exception only if running in a VMWare session.

EurekaLog gives me something like:

2.5 Type : EAccessViolation
2.6 Message : Access violation at address 00000000. Read of address 00000000.
2.7 ID : 3B2F
2.8 Count : 1
2.9 Status : New

With a call stack information pointing to the product file:

Call Stack Information:
-----------------------------------------------------------------
|Address |Module |Unit |Class|Procedure/Method |Line |
-----------------------------------------------------------------
|Running Thread: ID=3972; Priority=0; Class=; [Main] |
|---------------------------------------------------------------|
|00C390D8|xxx2.exe |xxx2.dpr| | |90[15]|
|766A1172|kernel32.dll| | |BaseThreadInitThunk| |
-----------------------------------------------------------------

Registers:
-----------------------------
EAX: 00000000 EDI: 0012EDC8
EBX: 00000000 ESI: 0000001C
ECX: 072E000F ESP: 0012B288
EDX: 0012B28C EIP: 00000000

Stack:
-----------------------------

Memory Dump:
---------------------------------------------------------------

Any ideas on what's happening here?


Thanks a lot!



Regards,
Thomas

Alex
15-Dec-2011, 07:38 AM
Hi,

The error message and CPU state says that you called function via nil pointer.

For example:

// function doesn't exists, GetProcAddress returns nil
P := GetProcAddress(Lib, 'SomeFunction');
// you didn't test for assigned and call function immediately
P(1, 'test');

This is not the only case of code, of course. There can be other cases, but the idea is the same.

Thomas Steinmaurer
15-Dec-2011, 05:02 PM
Hi Alex,

The error message and CPU state says that you called function via nil pointer.

For example:


Code:
---------
// function doesn't exists, GetProcAddress returns nil
P := GetProcAddress(Lib, 'SomeFunction');
// you didn't test for assigned and call function immediately
P(1, 'test');
---------
This is not the only case of code, of course. There can be other cases, but the idea is the same.

Thanks! The thing is, without getting a meaningful stack trace, I don't know how to track this issue down.


Regards,
Thomas