zoukankan      html  css  js  c++  java
  • 通过官方API结合源码,如何分析程序流程

    通过官方API结合源码,如何分析程序流程
    通过官方API找到我们关注的API的某个方法,然后把整个流程执行起来,然后在idea中,把我们关注的方法打上断点,
    然后通过Step Out,从内向外一层一层分析调用链,然后找出我们要分析的流程的逆流程,然后再通过在每层上面打上
    断点,进而整理出代码的执行流程;
    其实,对于面向对象语言,由于有了多态特性,代码中有了很复杂的抽象结构,一个接口或者抽象类有很多的实现,有时
    通过代码可以看出来,有些不太好看,程序执行时到底调用了哪个实现类的方法,这就需要按照上面动态的方法,从内向外来试验
    来不断分析;

    举个实例
    背景:我们想要分析lucene的打分是怎么实现的,那么我们可以知道
    http://lucene.apache.org/core/7_3_1/core/org/apache/lucene/search/similarities/Similarity.SimScorer.html
    这个SimScorer的score方法,通过看源码知道它是Similarity抽象类的内部静态的抽象类,那么就可以在某一个实现类比如BM25Similarity
    的score方法上打断点,看看代码执行时,有没有走这个;如果没有试试其他的实现类;
    当然了,如果通过静态分析可以很容易知道这个执行流程,那么就不用这么做了;

  • 相关阅读:
    Nginx进阶-不停服更新
    Tengine安装
    初识Nginx
    自建Nuget服务器
    WebApi PUT、DELETE请求时出现405
    Mysql分页查询性能分析
    Asp.Net WebApi Swagger终极搭建
    到底什么是程序员思维,设计师思维
    [有了SSL证书,如何在IIS环境下部署https?【转载】]
    div 文章内容自动分屏显示
  • 原文地址:https://www.cnblogs.com/big1987/p/9852602.html
Copyright © 2011-2022 走看看