zoukankan      html  css  js  c++  java
  • ILT是啥

    用vc6调试代码的时候看到反汇编代码里面有

    call @ILT+35这种,查了一下ILT叫increament linking Table ,叫增量同步表。

    它ILT涉及到的一种技术叫增量同步。

    有这样一种应用场景,如果你有多个cpp文件,你只修改了其中一个cpp文件中的某个函数的一个小部分,那是不是要把全部cpp文件全部重新编译再链接呢?

    如果是这样速度就比较慢,只需要编译和链接修改的那个cpp文件中的那个函数即可。

    感觉和云盘的增量同步差不多。

    ILT表在IDA中看到的就是增加了一个jmp跳转。

    push    offset sub_401028
    push    offset aOhWhat  ; "Oh what"
    push    offset unk_439728
    call    sub_4010A0

    这里是调用cout函数输出字符串。这个004010A0地址并不是cout函数的真正的地址。而是一个跳转地址。

    sub_4010A0 proc near
    jmp     sub_401ED0
    sub_4010A0 endp

    cout真正的地址是00401ed0。

    有了增量同步之后给反汇编代码造成了一定的困扰,可以在工程中关闭这个选项。

    vc6 在工程 设置 链接  

    取消勾选增量同步。

    这只是增量同步的一个初步认识,为什么需要增量同步表还没有搞清楚。

  • 相关阅读:
    N的阶乘 51Nod
    hdu1176 免费馅饼(dp)~~~~~~~~~~~~~~~~~
    细胞
    红与黑
    迷宫
    【TFLSnoi李志帅】---sort
    【TFLSnoi李志帅】---全排列例题
    【TFLSnoi李志帅】---全排列和组合
    【TFLSnoi李志帅】---栈
    【TFLSnoi李志帅】---函数递归
  • 原文地址:https://www.cnblogs.com/yfish/p/15357852.html
Copyright © 2011-2022 走看看