Re: IDccMan::Advise hangs



Hello Ahmed,

i think the call stack of my application, in which the hanging
m_DccMan->Advise(pSink, &m_Context) is called, isn't what you though of, but
here it is:

CASBGThread::Do_Initializing(unsigned long & 2, unsigned char & 0) line 462
CASBGThread::sDo_Initializing(CBGThread * 0x00bb6e08 {CASBGThread
h=0x000006fc proc=0x00000000}, unsigned long & 2, unsigned char & 0) line
206 + 19 bytes
CStateMachine::Tick(unsigned char & 0) line 113 + 17 bytes
CBGThread::OnIdle(long 0) line 259 + 18 bytes
MFC42! 73dd9195()

I'm debugging with VC6, but if i try to step into m_DccMan->Advise(...)
VC2003 Debugger shows up and i can debug the ActiveSync process an get the
following call stack:

rapimgr.exe!0100e0ad()
rpcrt4.dll!77e79dc9()
rpcrt4.dll!77ef321a()
kernel32.dll!7c81c76b()
kernel32.dll!7c81c774()
ntdll.dll!7c910551()
ntdll.dll!7c910551()
ntdll.dll!7c91056d()
kernel32.dll!7c80f64a()
kernel32.dll!7c8231d5()
kernel32.dll!7c80f657()
ntdll.dll!7c9106eb()
kernel32.dll!7c81eb33()
kernel32.dll!7c80fb8f()
kernel32.dll!7c821102()
kernel32.dll!7c8231ea()
ole32.dll!776048af()
ole32.dll!776048ba()
rpcrt4.dll!77ef3bf3()
ole32.dll!77600c31()
ole32.dll!77600bdb()
ole32.dll!7750f237()
ole32.dll!77604c34()
ole32.dll!7750f15c()
ole32.dll!77600b11()
ole32.dll!776009bc()
ole32.dll!7750bf35()
ole32.dll!77600715()
rpcrt4.dll!77e7988c()
rpcrt4.dll!77e797f1()
ole32.dll!7750efb7()
rpcrt4.dll!77e7971d()
rpcrt4.dll!77e8a067()
rpcrt4.dll!77e8a0a8()
rpcrt4.dll!77e7bb6a()
rpcrt4.dll!77e9e3eb()
rpcrt4.dll!77e76784()

rapimgr.exe!0100e0ad() is: 0100E0AD mov eax,101FFB2h

If don't try to step into m_DccMan->Advise(...) i'll get:
First-chance exception in PEER53.exe (KERNEL32.DLL): 0x804F4C45: (no name).
p(2336) t(2844) TraceToFile -> ERROR in CRAPIDesktop::EnumDevices : hr =
0x804f4c45 - RAPIDesktop.cpp(601)

Actually i'm running ActiveSync 4.1.0 (Build 4841), but the problem occurs
also with older versions.

Thanks,
Enno

"Ahmed Smahi [MSFT]" <Test@xxxxxxxxxxxxxxxxxxxx> schrieb im Newsbeitrag
news:udUE$urIGHA.3752@xxxxxxxxxxxxxxxxxxxxxxx
The number of network interfaces should not be related to this problem. I
will forward this issue to the feature team. The call stack of your
hanging application will be very helpful at identifying the issue you are
hitting.

Thanks,
Ahmed

--
--
Ahmed Smahi [MSFT]
Test@xxxxxxxxxxxxxxxxxxxx
This posting is provided "AS IS" with no warranties, and confers no
rights.
"Enno Kolb" <enno_dot_kolb@xxxxxxxxxxx> wrote in message
news:1133438485.510634@xxxxxxxxxxxxxxxxxxxxxxxx
Hello,

we're using RAPI to configure our CE device over USB with our own
administration application.
On some WinXP systems our application hangs in IDccMan::Advise. This
problem occours with and without an already connected WinCE device.
All systems with this problem are having more than one network adapter,
whereas its unimportant if they are activated or not. But only a few
systems with more than one network adapter are having this problem. I
couldn't find the decisive difference yet.

If i try to step into IDccMan::Advise with VC6 i get the following debug
output:

p(1952) t(3092) TraceToFile -> ERROR in CRAPIDesktop::EnumDevices : hr =
0x804f4c45 - RAPIDesktop.cpp(601)
First-chance exception in MyAppD.exe (KERNEL32.DLL): 0x804F4C45: (no
name).

This problem occurs with ActiveSync 3.7, 3.8 and 4.1.

Our code:

--- snip ---
HRESULT Res = CoCreateInstance (CLSID_DccMan, NULL, CLSCTX_SERVER,
IID_IDccMan, (LPVOID *) &m_DccMan);
if (SUCCEEDED(Res))
{ // Create new notification object.
CMyDccSink *pMySink = new CMyDccSink(this, m_DccMan);

IDccManSink *pSink;
pMySink->QueryInterface (IID_IDccManSink, (void **) &pSink);

// Ask to be advised of connect state changes.
m_DccMan->Advise(pSink, &m_Context); // this method never comes back

pMySink->Release();
}
--- snap ---

regards
Enno





.



Relevant Pages

  • Re: CURRENT freezes on Laitude D520
    ... really exists for the purposes of supporting components which are not sufficiently locked to allow the stack to run MPSAFE, rather than as a means of disabling direct dispatch and preemption, which speak to different types of problems. ... INVARIANTS, DDB, KDB, and BREAK_TO_DEBUGGER to debug deadlocks. ... In RELENG_6, PREEMPTION is in GENERIC and hence enabled by default, and it can be disabled by removing it from your kernel configuration. ... However, this is also just a debugging step to see if that quiesces the problem, and not a fix for the actual bug. ...
    (freebsd-current)
  • Re: Iteration in lisp
    ... FUNCTION CALLS, HAZARDOUS TO YOUR STACK SPACE, USE AT YOUR OWN RISK. ... - The concise code typical of Scheme is self-explanatory. ... debugging errant programs was a routine problem that could be ... How do Scheme programmers debug their code?? ...
    (comp.lang.lisp)
  • Re: Differences in unhandled exception handling between Windows 2000 and 2003?
    ... it will be caught very nicely by my favorite debugging procedure du ... the thread that just took the exception. ... I really don't think it's stack. ... so I have a good vehicle for implementing a minimal debugger. ...
    (microsoft.public.win32.programmer.kernel)
  • Windows XP with bluescreen parport.sys
    ... Here is the complete bluescreen I debugged with the Windows Debugging Tools: ... After setting your symbol path, use .reload to refresh symbol locations. ... a driver actually attempted to complete its own packet ... stack for the current request can be found by examining the DeviceObject ...
    (microsoft.public.windowsxp.general)
  • Re: Memory corruption and Dump Stack trace
    ... you can use JIT debugging to invoke the debugger ... I want to dump the stack when my destructor is called so I can ... The "Additional DLLs" feature is there only to specify ... I really NEED to get the call stack at the destructor. ...
    (microsoft.public.vc.mfc)

Loading