Re: Flex Grid control issue, - Exception code: E06D7363
On Sep 6, 5:46 pm, Joseph M. Newcomer <newco...@flounder.com> wrote:
I'm going to make a few guesses here...
We see it is in ole32, which would be called because this is a flexgrid c=
ontrol with an
OLE interface.
But this calls something in C:\5300\BIN_RE~1. This is mysterious. I=
do not know what
ResultHandler.dll is. So I'd try to track down exactly what ResultHand=
ler.dll is and what
it does and who wrote it. Because what it looks like is that ResultHan=
dler is either
calling MFC71.DLL to issue an error message, or has called MFC71.DLL with=
invalid
parameters. I did not find any resulthandler.dll on my VS installation=
, for either VS6,
VS2003, VS2005 or VS2008. If ResultHandler is your DLL, then what has =
happened is that
you should look there first to see what is being called. It appears to=
be a side effect
of something triggered by the SetRedraw, which, as you point out, does se=
em odd. It could
also be some callback function established by putting your own or some th=
ird-party object
in a cell of thegridcontrol.
Unless you are relying on the debugger to tell you that the line where th=
e error occurred
was SetRedraw; this could also mean that this was the *return address* of=
the call,
meaning it was on the line *preceding* the SetRedraw.
I'm not sure why the MFC runtime is in C:\5300\BIN_RE~1, because this doe=
sn't look like
any SxS directory I've seen before. Can you enlighten us at all about =
this, if you have
any information that could help?
Note also that you could be the victim of a drive-by memory damage, where=
someone has
accidentally scribbled all over some part of your control's data, and thi=
s has caused the
malfunction. The fact that it takes a while for this to happen is *sug=
gestive* of a
memory overrun/invalid pointer store problem. Running under the Applic=
ation Verifier
might help isolate the problem, but again this is just a bit of guesswork=
on my part.
These are the things I would start looking at if this were on my machine.=
I admit it
isn't much to go on at this point, but perhaps in the exploration you mig=
ht uncover
something else interesting.
=
joe
On Sun, 6 Sep 2009 04:59:49 -0700 (PDT), Vritti <mosgeo...@gmail.com> wro=
te:
Hi,
I have a serious problem that happens a long time on a customer site
with aflexgridcontrol, which reproduced periodically, each two
weeks. I tried to install the newestFlexGridcontrol, and insured
that it registered successfully, but it's still happen. I wonder if
someone encountered with the following problem or / and can help with
it:
After two weeks of work, sometimes, the exception (see details below)
appears andFlexGridcontrol stops work. After analyzing the dump
file, I see that it's happen when calling SetRedraw(FALSE) offlex
gridcontrol. The pointer offlexcontrol is not null and should be
valid.
Exception code: E06D7363
Fault address: 7C812A5B 01:00011A5B C:\WINDOWS
\system32\kernel32.dll
Registers: EAX:1EF1EEA4 EBX:00000000 ECX:00000000 EDX:80B90027 ESI:
1EF1EF34 EDI:1EF1EF34 CS:EIP:001B:7C812A5B SS:ESP:0023:1EF1EEA0 =
EBP:
1EF1EEF4 DS:0023 ES:0023 FS:003B GS:0000 Flags:00000206
Call stack: Address Frame Logical addr Module 7C812=
A5B
1EF1EEF4 0001:00011A5B C:\WINDOWS\system32\kernel32.dll
7C359AED 1EF1EF34 0001:00018AED C:\5300\BIN_RE~1\MSVCR71.dll
7C1F4872 1EF1EF54 0001:000B3872 C:\5300\BIN_RE~1\MFC71.DLL
7C17FB83 1EF1EFD8 0001:0003EB83 C:\5300\BIN_RE~1\MFC71.DLL
7C14721A 1EF1EFF8 0001:0000621A C:\5300\BIN_RE~1\MFC71.DLL
11751D66 1EF1F06C 0001:00050D66 C:\5300\BIN_RE~1\ResultHandler.dll
11715EC4 1EF1F11C 0001:00014EC4 C:\5300\BIN_RE~1\ResultHandler.dll
11715D65 1EF1F1AC 0001:00014D65 C:\5300\BIN_RE~1\ResultHandler.dll
117156BB 1EF1F238 0001:000146BB C:\5300\BIN_RE~1\ResultHandler.dll
1173A8DB 1EF1F2E4 0001:000398DB C:\5300\BIN_RE~1\ResultHandler.dll
117389ED 1EF1F4F4 0001:000379ED C:\5300\BIN_RE~1\ResultHandler.dll
1174C333 1EF1F59C 0001:0004B333 C:\5300\BIN_RE~1\ResultHandler.dll
77E79DC9 1EF1F5BC 0001:00008DC9 C:\WINDOWS\system32\RPCRT4.dll
77EF321A 1EF1F9C4 0002:0000021A C:\WINDOWS\system32\RPCRT4.dll
77EF3BF3 1EF1FA1C 0002:00000BF3 C:\WINDOWS\system32\RPCRT4.dll
77600C31 1EF1FA5C 0002:00000C31 C:\WINDOWS\system32\ole32.dll
77600BDB 1EF1FAA4 0002:00000BDB C:\WINDOWS\system32\ole32.dll
7750F237 1EF1FB7C 0001:0002E237 C:\WINDOWS\system32\ole32.dll
7750F15C 1EF1FB98 0001:0002E15C C:\WINDOWS\system32\ole32.dll
7750FC79 1EF1FBC4 0001:0002EC79 C:\WINDOWS\system32\ole32.dll
77600E3B 1EF1FBF8 0002:00000E3B C:\WINDOWS\system32\ole32.dll
776009BC 1EF1FCCC 0002:000009BC C:\WINDOWS\system32\ole32.dll
77600DF2 1EF1FCF8 0002:00000DF2 C:\WINDOWS\system32\ole32.dll
7750FCB3 1EF1FD0C 0001:0002ECB3 C:\WINDOWS\system32\ole32.dll
7750FAE9 1EF1FD24 0001:0002EAE9 C:\WINDOWS\system32\ole32.dll
77D48734 1EF1FD50 0001:00007734 C:\WINDOWS\system32\USER32.dll
77D48816 1EF1FDB8 0001:00007816 C:\WINDOWS\system32\USER32.dll
77D489CD 1EF1FE18 0001:000079CD C:\WINDOWS\system32\USER32.dll
77D496C7 1EF1FE28 0001:000086C7 C:\WINDOWS\system32\USER32.dll =
Any help is appreciated.
Thanks
George S.
Joseph M. Newcomer [MVP]
email: newco...@flounder.com
Web:http://www.flounder.com
MVP Tips:http://www.flounder.com/mvp_tips.htm
Hi Joseph,
Thanks for trying to help, here some clarifications:
1. C:\5300\BIN_RE~1 =96 is folder where all binaries are stored on
client computer, this is an answer why all mfc dependency are copied
there.
2. ResultHandler =96 is my component, which holds FlexGrid control,
11751D66 1EF1F06C 0001:00050D66 C:\5300\BIN_RE~1\ResultHandler.dll
- this trace pointing to row:
m_pGrid->SetRedraw(FALSE);
See all function below.
When calling this function, an exception is thrown.
HRESULT CGridDataSource::FillGridRow()
{
HRESULT hr(S_OK);
CString strRow;
m_pGrid->SetRedraw(FALSE);
int nFieldCount = m_arrayFields.GetUpperBound() + 1;
for (int i=0;i < nFieldCount;++i)
{
CString strValue;
if (FAILED(GetFieldValue(m_arrayFields[i], strValue)))
{
hr = RH_E_FIELD_NOT_FOUND;
break;
}
strRow += strValue;
if (i != (nFieldCount - 1))
strRow += _T("\t");
}
long lRows = m_pGrid->GetRows();
if (lRows > m_nMaxRowsInGrid)
{
m_pGrid->RemoveItem(1);
lRows -= 2;
}
else
lRows -= 1;
ASSERT(m_pGrid);
m_pGrid->AddItem((LPCTSTR)strRow, _variant_t(lRows));
if (CDataGridEvents::m_bAutoScroll)
{
m_pGrid->SetTopRow(lRows+1);
}
m_pGrid->SetRedraw(TRUE);
return (hr);
}
Thanks forward
George S.