首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将c++源码解析为obj?

如何将c++源码解析为obj?
EN

Stack Overflow用户
提问于 2013-05-24 11:45:37
回答 1查看 56关注 0票数 0

我有源代码:

代码语言:javascript
复制
RenderPart* Frame::ownerRenderer() const
{
    HTMLFrameOwnerElement* ownerElement = m_ownerElement;
    if (!ownerElement)
        return 0;
    RenderObject* object = ownerElement->renderer();
    if (!object)
        return 0;
    // FIXME: If <object> is ever fixed to disassociate itself from frames
    // that it has started but canceled, then this can turn into an ASSERT
    // since m_ownerElement would be 0 when the load is canceled.
    // https://bugs.webkit.org/show_bug.cgi?id=18585
    if (!object->isRenderPart())
        return 0;
    return toRenderPart(object);
}

和objdump:

代码语言:javascript
复制
00143408 <_ZNK7WebCore5Frame13ownerRendererEv>:
  143408:       b510            push    {r4, lr}
  14340a:       f8d0 32f0       ldr.w   r3, [r0, #752]                                 
  14340e:       b14b            cbz     r3, 143424 <_ZNK7WebCore5Frame13ownerRendererEv+0x1c>
  143410:       6a1c            ldr     r4, [r3, #32]                                  
  143412:       b13c            cbz     r4, 143424 <_ZNK7WebCore5Frame13ownerRendererEv+0x1c>
  143414:       6820            ldr     r0, [r4, #0]                                   
  143416:       f8d0 30b0       ldr.w   r3, [r0, #176]
  14341a:       4620            mov     r0, r4
  14341c:       4798            blx     r3
  14341e:       b108            cbz     r0, 143424 <_ZNK7WebCore5Frame13ownerRendererEv+0x1c>
  143420:       4620            mov     r0, r4
  143422:       e000            b.n     143426 <_ZNK7WebCore5Frame13ownerRendererEv+0x1e> 
  143424:       2000            movs    r0, #0
  143426:       bd10            pop     {r4, pc} 

现在我想知道哪一行源码可以编译到143416行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 12:14:13

我相信它本质上就是ownerElement->renderer

142312是最后一个if(!object) (return 0在143424-143426处下降),然后143414-14341a正在准备函数调用ownerElement->renderer()

143414正在将ownerElement引入r0

143416将渲染器()的偏移量获取到r3中

14341a本质上是设置此ptr用于渲染器()(即ownerElement)中。

14341c实际上跳转到渲染器()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16727361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档