Re: [reSIProcate] Datatype Misalignment exception in resiprocate.lib on a PocketPC device
唐 荣兴 wrote:
> First of all , thank you for your replies very much ;I feel the wrong
> reason is perhaps dynamic_cast,But I do not know how to get rid of this
> mistake.
>
I did some poking around. It is possible that WinCE does not support
dynamic_cast. I think that it is supported in WinCE.NET though. Which
compiler are you using?
> I debug the result roughly as follows:
>
> ------------------------------------------------------------------------------------
>
>
>
> Datatype MisAlignment Debug
> ------------------------------------------------------------------------------------
>
>
>
> request->header(h_To) = to;
> -->defineHeader(To);
> // SipMessage.cxx
> // resip::SipMessage::header(const resip::To_Header & {...},
> // resip::HeaderFieldValueList * 0x0164fa4c)
> line 1277 + 108 bytes
> -->defineHeader(To, "To", NameAddr);
> // Headers.cxx
>
> -->HeaderFieldValueList* SipMessage::ensureHeaders(Headers::Type type,
> bool single)
>
> -->ParserContainerBase* getParserContainer() const {return
> mParserContainer;}
>
> -->defineHeader(To, "To", NameAddr);
>
> -->ParserContainer(HeaderFieldValueList* hfvs,
>
> Headers::Type type = Headers::UNKNOWN)
> : ParserContainerBase(type)
>
> -->void setParserContainer(ParserContainerBase* parser)
> {mParserContainer = parser;}
> -->void setParserContainer(ParserContainerBase* parser)
> {mParserContainer = parser;}
>
> -->c:\mckendric\private\winceos\coreos\core\corelibc\crtw32\rtti.cpp
> __RTDynamicCast:
> __RTDynamicCast(void *, long 1083744,
> void * 0x00000000, void * 0x000c901c class
> resip::ParserContainerBase `RTTI Type Descriptor', int
> 0) line 121 + 20 bytes
>
>
>
> ---
> c:\mckendric\private\winceos\coreos\core\corelibc\crtw32\rtti\rtti.cpp
> ------------
> __RTDynamicCast:
> 2A0AE6B0 mov r12, sp
> 2A0AE6B4 stmdb sp!, {r0 - r3}
> 2A0AE6B8 stmdb sp!, {r4 - r8, r11, r12, lr}
> 2A0AE6BC add r11, sp, #0x20
> 2A0AE6C0 sub sp, sp, #0x3C
> $L16273:
> 2A0AE6C4 mov r5, r0
> 2A0AE6C8 mov r4, r1
> 2A0AE6CC mov r8, r2
> 2A0AE6D0 mov r6, r3
> 2A0AE6D4 cmp r5, #0
> 2A0AE6D8 moveq r4, #0
> 2A0AE6DC moveq r0, r4
> 2A0AE6E0 ldmeqdb r11, {r4 - r8, r11, sp, pc}
> $L16253:
> 2A0AE6E4 mov r0, r5
> 2A0AE6E8 bl |FindCompleteObject (2a0ae898)|
>
>
>
> Thank you very much;Best regards to you!
>
> Steven Tang
>
> _________________________________________________________________
> 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn