5.3 Example of using the --info linker option

This is an example of the output generated by the --info option

To display the component sizes when linking enter:
armlink --info sizes …
Here, sizes gives a list of the Code and data sizes for each input object and library member in the image. Using this option implies --info sizes,totals.
The following example shows the output in tabular format with the totals separated out for easy reading:
Code (inc. data)   RO Data   RW Data    ZI Data      Debug
3712 1580 19 44 10200 7436 Object Totals
0 0 16 0 0 0 (incl. Generated)
0 0 3 0 0 0 (incl. Padding)
21376 648 805 4 300 10216 Library Totals
0 0 6 0 0 0 (incl. Padding)
===============================================================================
Code (inc. data) RO Data RW Data ZI Data Debug
25088 2228 824 48 10500 17652 Grand Totals
25088 2228 824 48 10500 17652 ELF Image Totals
25088 2228 824 48 0 0 ROM Totals
===============================================================================
Total RO Size (Code + RO Data) 25912 ( 25.30kB)
Total RW Size (RW Data + ZI Data) 10548 ( 10.30kB)
Total ROM Size (Code + RO Data + RW Data) 25960 ( 25.35kB)
In this example:
Code (inc. data)
Shows how many bytes are occupied by code. In this image, there are 3712 bytes of code. This includes 1580 bytes of inline data (inc. data), for example, literal pools, and short strings.
RO Data
Shows how many bytes are occupied by RO data. This is in addition to the inline data included in the Code (inc. data) column.
RW Data
Shows how many bytes are occupied by RW data.
ZI Data
Shows how many bytes are occupied by ZI data.
Debug
Shows how many bytes are occupied by debug data, for example, debug input sections and the symbol and string table.
Object Totals
Shows how many bytes are occupied by objects linked together to generate the image.
(incl. Generated)
armlink might generate image contents, for example, interworking veneers, and input sections such as region tables. If the Object Totals row includes this type of data, it is shown in this row.
In the example, there are 19 bytes of RO data in total, of which 16 bytes is linker-generated RO data.
Library Totals
Shows how many bytes are occupied by library members that have been extracted and added to the image as individual objects.
(incl. Padding)
armlink inserts padding, if required, to force section alignment. If the Object Totals row includes this type of data, it is shown in the associated (incl. Padding) row. Similarly, if the Library Totals row includes this type of data, it is shown in its associated row.
In the example, there are 19 bytes of RO data in the object total, of which 3 bytes is linker-generated padding, and 805 bytes of RO data in the library total, with 6 bytes of padding.
Grand Totals
Shows the true size of the image. In the example, there are 10200 bytes of ZI data (in Object Totals) and 300 of ZI data (in Library Totals) giving a total of 10500 bytes.
ELF Image Totals
If you are using RW data compression (the default) to optimize ROM size, the size of the final image changes and this is reflected in the output from --info. Compare the number of bytes under Grand Totals and ELF Image Totalsto see the effect of compression.
In the example, RW data compression is not enabled. If data is compressed, the RW value changes.
ROM Totals
Shows the minimum size of ROM required to contain the image. This does not include ZI data and debug information which is not stored in the ROM.

【转】Example of using the --info linker option的更多相关文章

  1. 如何捕捉并分析SIGSEGV的现场

    linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal Signal Value Action Comment ───────────── ...

  2. [原]__FILE__宏

    在vs中__FILE__宏代表了当前文件,如果有/FC那么__FILE__代表了当前文件的全路径!否则只表示当前文件名   参考 https://msdn.microsoft.com/en-us/li ...

  3. linux创建动态库

    [1]新建源程序sharelib.c /************************************************************************* > F ...

  4. 转:Configure your eclipse for C++

    from: http://omtlab.com/configure-your-eclipse-for-c/ Configure your eclipse for C++ July 7, 2013 Th ...

  5. 【linux】linux下动态库so文件的一些认识

    来源:http://mypyg.iteye.com/blog/845915 so其实就是shared object的意思.今天看了上面的博客,感觉好吃力.赶紧做个笔记记录一下.下面的内容大多都是连接中 ...

  6. GCC中文手册

    GCC 1 NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filen ...

  7. #pragma data_seg 共享数据区(转)

    原文地址:http://www.cnblogs.com/CBDoctor/archive/2013/01/26/2878201.html 1)#pragma data_seg()一般用于DLL中.也就 ...

  8. [under the hood]Reduce EXE and DLL Size with LIBCTINY.LIB

    Matt Pietrek Download the code for this article: Hood0101.exe (45KB) W ay back in my October 1996 co ...

  9. DCMTK354之VC++ 2008 MFC应用程序配置完整过程

    花了一个礼拜,终于在VC++2008 MFC 应用程序中完成了首个基于DCMTK354的首个程序ECHOSCUWIN32,现将过程记录下来,便于日后查阅,同时也提供给那些有幸看到此博文而对他们又有帮助 ...

随机推荐

  1. 20155223 Exp6 信息收集与漏洞扫描

    20155223 Exp6 信息收集与漏洞扫描 本次实验以熟悉信息收集手段与漏洞扫描手段为主. 实践步骤 whois域名查找 在虚拟机Kali的终端输入命令:whois baidu.com,查询百度的 ...

  2. Java技术——String类为什么是不可变的

    0. 前言   如果一个对象,在它创建完成之后不能再改变它的状态,包括对象内的成员变量.基本数据类型的值等等.那么这个对象就是不可变的.众所周知String类就是不可变的.转载请注明出处为SEU_Ca ...

  3. 备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE

    http://www.onlinedbasupport.com/2010/12/10/block-corruption-in-system-datafile/

  4. Scala学习(二)练习

    Scala控制结构和函数&练习 1. 一个数字如果为正数,则它的signum为1:如果是负数,则signum为-1:如果为0,则signum为0:编写一个函数来计算这个值 简单逻辑判断: 测试 ...

  5. 【HNOI2017】礼物

    题面 题解 显然两个手环只需要一个的亮度增加\(c \in [-m, m]\)和原题是等价的. 于是可以写成这样一个公式: \[ \sum_{i = 1} ^ n(x_i - y_{i+k} + c) ...

  6. Walle 2.0 发布系统

    目录 walle 2.0 1.walle原理 1.1.walle原理图 1.2.权限设计模型 2.部署walle 2.1.依赖检查安装 2.2.walle部署 3.Walle使用 3.1.用户配置 3 ...

  7. LeetCode 4Sum (Two pointers)

    题意 Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

  8. zabbix监控docker容器状态

    前言:前段时间在部署zabbix,有个需求就是需要监控容器的状态 也就是cpu 内存 io的占用,于是就自己写了一个脚本,以及模板,在这里分享一下 嘿嘿 : ) 废话我也就不多说,直接开始 首选,za ...

  9. 《杜增强讲Unity之Tanks坦克大战》1-准备工作

    0.案例介绍 0.1开始界面   点击Play Now 进入游戏界面   左边的坦克使用ws控制前后移动,ad键左右旋转,空格键开火   右边的坦克使用方向键上下控制前后移动,方向键左右键实现左右旋转 ...

  10. LintCode——合并排序数组II

    描述:合并两个排序的整数数组A和B变成一个新的数组 样例:给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 1.Python:先将数组B加到数组A之后,然后 ...