Exception in __startup
From: Leroy Casterline (casterle_at_ccltd.com)
Date: 02/10/05
- Previous message: Dennis: "Re: Some MM challenge musings"
- Next in thread: Anders Isaksson: "Re: Exception in __startup"
- Reply: Anders Isaksson: "Re: Exception in __startup"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 10 Feb 2005 15:00:40 -0700
Once again I turn to the experts in .basm for help with a BCB issue.
Here is a message I posted to the madExcept newsgroup earlier. Below the
exception report is a 2nd follow-up message with more information.
I hope someone can give me an idea how to tackle this problem as I can't
reproduce it here.
Also, is there a way to force a core dump that will help me find the
problem?
TIA!
=======================================================
=======================================================
1st message
=======================================================
=======================================================
Yesterday, my program was shipped to an engineer in Finland. When
starting the program he got the following exception. The program is
still in beta, and this is the first time it's been executed on a
Win2K system.
I've never seen this one before, it appears to be occurring in my
startup code, which jibes with my map file. According to the map file,
__startup lives in cp32mt.lib. Disassembling the startup object in
cp32mt.lib shows the line causing the exception to be:
call dword ptr [esi+18h]
which, I would guess is calling the initialization code of something.
So:
1) How do I figure out what's being called?
2) Is there some way that I can have madExcept create a
core dump file that I could then analyze?
3) What other approach might I take to finding the problem?
BCB6 w/lots of 3rd party controls.
Thanks for any insight you can provide.
date/time : 2005-02-10 18:53
computer name : CPASFI1
user name : cpasfi
operating system : Windows 2000 Service Pack 4 build 2195
system language : English
system up time : 1 hour 49 minutes
program up time : 1 second
processor : Intel(R) Pentium(R) 4 CPU 2.80GHz
physical memory : 155/254 MB (free/total)
free disk space : (C:) 2,46 GB
display mode : 1600x1200, 32 bit
process id : $6c0
executable : DVS926PwrMon.exe
exec. date/time : 2005-02-08 15:40
version : 1.0.28.46
madExcept version : 2.7f beta 2
exception class : EVariantTypeCastError
exception message : Could not convert variant of type (String) into type
(Double).
main thread ($6c4):
00000000 ???
009c4fec DVS926PwrMon.exe __startup
thread $674:
77f82870 ntdll.dll NtWaitForSingleObject
7c599fe2 KERNEL32.dll WaitForSingleObjectEx
7c57b3d6 KERNEL32.dll WaitForSingleObject
004bb88e DVS926PwrMon.exe nxllMemoryManager _16459
00927fb0 DVS926PwrMon.exe system 11218 ThreadWrapper
thread $6b4:
77f8287e ntdll.dll
NtWaitForMultipleObjects
7c59a1ad KERNEL32.dll
WaitForMultipleObjectsEx
7c59a0bd KERNEL32.dll WaitForMultipleObjects
004ad014 DVS926PwrMon.exe nxsrFileImplWin32 _16473
004ace77 DVS926PwrMon.exe nxsrFileImplWin32 _16470
004acc60 DVS926PwrMon.exe nxsrFileImplWin32 _16467
00927fb0 DVS926PwrMon.exe system 11218 ThreadWrapper
modules:
00400000 DVS926PwrMon.exe 1.0.28.46 C:\Program
Files\DVS926PowerMonitor
20000000 RXCTRL.dll 9.0.137.0 C:\Program Files\Reflection
22000000 PGPhk.dll 6.5.3.0 C:\WINNT\system32
6b2c0000 msimg32.dll 5.0.2180.1 C:\WINNT\system32
6e420000 INDICDLL.dll 5.0.2920.0 C:\WINNT\system32
70a70000 SHLWAPI.DLL 6.0.2800.1584 C:\WINNT\system32
71710000 COMCTL32.DLL 5.81.4916.400 C:\WINNT\system32
75020000 WS2HELP.DLL 5.0.2134.1 C:\WINNT\system32
75030000 WS2_32.DLL 5.0.2195.6601 C:\WINNT\system32
75050000 WSOCK32.DLL 5.0.2195.6603 C:\WINNT\system32
759b0000 LZ32.DLL 5.0.2195.6611 C:\WINNT\system32
75e60000 IMM32.dll 5.0.2195.6655 C:\WINNT\system32
76620000 MPR.DLL 5.0.2195.6824 C:\WINNT\system32
76b30000 COMDLG32.DLL 5.0.3700.6693 C:\WINNT\system32
77570000 WINMM.DLL 5.0.2161.1 C:\WINNT\system32
77800000 WINSPOOL.DRV 5.0.2195.6659 C:\WINNT\system32
77820000 VERSION.DLL 5.0.2195.6623 C:\WINNT\system32
77880000 SETUPAPI.DLL 5.0.2195.6622 C:\WINNT\system32
779b0000 OLEAUT32.DLL 2.40.4522.0 C:\WINNT\system32
77a50000 OLE32.DLL 5.0.2195.6906 C:\WINNT\system32
77d30000 RPCRT4.DLL 5.0.2195.6904 C:\WINNT\system32
77e10000 USER32.dll 5.0.2195.7017 C:\WINNT\system32
77f40000 GDI32.DLL 5.0.2195.6945 C:\WINNT\system32
77f80000 ntdll.dll 5.0.2195.6899 C:\WINNT\system32
78000000 MSVCRT.DLL 6.1.9844.0 C:\WINNT\system32
782f0000 SHELL32.DLL 5.0.3900.6975 C:\WINNT\system32
7c0f0000 USERENV.DLL 5.0.2195.6794 C:\WINNT\system32
7c2d0000 ADVAPI32.DLL 5.0.2195.6876 C:\WINNT\system32
7c570000 KERNEL32.dll 5.0.2195.6946 C:\WINNT\system32
=======================================================
=======================================================
2nd message
=======================================================
=======================================================
>call dword ptr [esi+18h]
It turns out that this is a call to WinMain (at least on my machine).
That being the case, I wonder if the exception really occurred in
__startup after all.
Perhaps on the client's machine it was a call to somewhere else? Surely
not on purpose, but if ESI were corrupted I guess this could happen. But
in that case I wouldn't expect it to hit something that would raise the
reported exception - that would be a chance in a million, no?
In the exception report, I had ignored the first line as meaningless.
main thread ($6c4):
00000000 ???
009c4fec DVS926PwrMon.exe __startup
Perhaps it's not. But it doesn't seem likely that the exception:
exception class : EVariantTypeCastError
exception message : Could not convert variant of type (String) into type
(Double).
was thrown at address 00000000 does it? I would expect some kind of
access violation if I were trying to execute at that address.
What does the 00000000 ??? mean, anyway?
On the other hand, if I had executed into WinMain and the exception was
thrown subsequently, wouldn't I see WinMain (and anything else I'd
executed into) on the stack?
- Previous message: Dennis: "Re: Some MM challenge musings"
- Next in thread: Anders Isaksson: "Re: Exception in __startup"
- Reply: Anders Isaksson: "Re: Exception in __startup"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|