程序调用堆栈如下:
WebUi.exe(17FK-87)!khtml::RenderObject::RenderObject(DOM::NodeImpl * node=0x3815eda8, khtml::RenderObject * const this=0x3815e2ac) Line 158 C++
WebUi.exe(17FK-87)!khtml::RenderText::RenderText(DOM::DOMStringImpl * _str=0x3815ed80, DOM::NodeImpl * node=0x3815eda8, khtml::RenderText * const this=0x3815e2ac) Line 764 + 0x3f C++
WebUi.exe(17FK-87)!DOM::TextImpl::createRenderer(RenderArena * arena=0x38153f40, DOM::TextImpl * const this=0x3815eda8) Line 456 + 0x21 C++
WebUi.exe(17FK-87)!DOM::NodeImpl::createRendererIfNeeded(DOM::NodeImpl * parent=0x3815ec10) Line 1399 + 0x22 C++
WebUi.exe(17FK-87)!DOM::TextImpl::attach() Line 462 C++
WebUi.exe(17FK-87)!KHTMLParser::insertNode(bool flat=false, DOM::NodeImpl * n=0x3815eda8, KHTMLParser * const this=0x38155e20) Line 342 C++
> WebUi.exe(17FK-87)!KHTMLParser::parseToken(khtml::Token * t=0x38155788, KHTMLParser * const this=0x38155e20) Line 273 + 0x1a C++
WebUi.exe(17FK-87)!khtml::HTMLTokenizer::processToken(KJSProxy * jsProxy=0x38156160) Line 2121 C++
WebUi.exe(17FK-87)!khtml::HTMLTokenizer::write(bool appendData=true, khtml::TokenizerString & str={...}, khtml::HTMLTokenizer * const this=0x38155708) Line 1776 + 0xf C++
WebUi.exe(17FK-87)!KHTMLPart::write(int len=1759, char * str=0x3218dbf4, KHTMLPart * const this=0x34150620) Line 1766 + 0x35 C++
WebUi.exe(17FK-87)!KWQKHTMLPart::addData(int length=1759, char * bytes=0x3218dbf4, KWQKHTMLPart * const this=0x34150620) Line 828 C++
WebUi.exe(17FK-87)!CWebCoreBridge::AddData(DOM::DocumentImpl * doc=0x38151ad0, TDesC8 & aData={...}) Line 313 C++
WebUi.exe(17FK-87)!CPageLoadListener::ResponseL(CUrlResponseInfo & aResponse={...}, int aTransactionId=1, CPageLoadListener * const this=0x32161c60) Line 294 + 0x2c C++
WebUi.exe(17FK-87)!CContentDispatcher::ResponseL(int transactionId=1, int status=0, CUrlResponseInfo & aResponse={...}) Line 336 C++
WebUi.exe(17FK-87)!CUrlLoader::ResponseL(CUrlResponseInfo & aResponse={...}, CBaseTransaction & aTransaction={...}, CUrlLoader * const this=0x3214eb4c) Line 254 C++
WebUi.exe(17FK-87)!CBaseTransaction::RunL(int aError=0, CBaseTransaction * const this=0x32162df4) Line 363 C++
WebUi.exe(17FK-87)!CBaseTransaction::SendPartialResponse() Line 402 C++
WebUi.exe(17FK-87)!CBaseTransaction::AddBodyDataL(TPtrC8 & aChunkPtr={...}, CBaseTransaction * const this=0x32162df4) Line 506 C++
WebUi.exe(17FK-87)!CFileTransaction::MHFRunL(TFileEvent & aEvent=EGotResponseBodyData, CFileTransaction * const this=0x32162df4) Line 332 C++
WebUi.exe(17FK-87)!CFileReader::RunL(int bytesRead=1759) Line 197 + 0x1a C++
程序所使用的编辑器是VS.net 2003 sdk使用的是fp1.
从调用堆栈上可以分析得出,htmlparser 调用TextImpl::attach()函数创建RenderText节点。