b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

otool_otoole_对mac的终端写otool(4)

电脑杂谈  发布时间:2017-04-21 10:10:19  来源:网络整理

[/codesyntax]flag字段 section的flag字段分为两个部分,一个是区域类型(section type),一个是区域属性(section attributes)。其中type是互斥的,即只能有一个类型,而attributes不是互斥的,可以有多个属性。如果段(segment)中的任何一个section拥有属性S_ATTR_DEBUG,那么该段所有的section都必须拥有这个属性。具体的flag字段内容以及意义请参考/usr/include/mach-o/loader.h。

段名(segname)和区域名(sectname)本身没有意义。但是为了支持传统的UNIX系统所以使用了一些传统意义上的段名和区域名称,比如TEXT段,DATA段。

下面是__TEXT段的部分截取:

Load command 1

cmd LC_SEGMENT

cmdsize 464

segname __TEXT

vmaddr 000001000

vmsize 000002000

fileoff 0

filesize 8192

maxprot 000000007

initprot 000000005

nsects 6

flags 00

Section

sectname __text

segname __TEXT

addr 0x00001b50

size 0x000008f6

offset 2896

align 2^4 (16)

reloff 0

nreloc 0

flags 080000400

reserved1 0

reserved2 0

Cmd为LC_SEGMENT,所以前面是segment_command结构体,紧跟着就是当前段所拥有的section,这里之截取了一个section

__TEXT段的__text section,参考section的定义,可以很清除的明白个字段的意义。

Load command中根据类型(即cmd字段)的不同,分别定义了相关的结构体,具体请参详/usr/include/mach-o/loader.h。

5. 段(segment和section)

段的命名规则是两个下划线紧跟着大写字母(如__TEXT),而section的命名则是两个下划线紧跟着小写字母(__text)。

下面列出段中可能包含的section:

__TEXT段:

__text, __cstring, __picsymbol_stub, __symbol_stub, __const, __litera14, __litera18;

__DATA段

__data, __la_symbol_ptr, __nl_symbol_ptr, __dyld, __const, __mod_init_func, __mod_term_func, __bss, __commom;

__IMPORT段

__jump_table, __pointers;

其中__TEXT段中的__text是实际上的代码部分;__DATA段的__data是实际的初始数据。otool

可以通过otool –s查看某segment的某个section。

例如 otool –sv __DATA __data ButtonFun,得到如下文件:

ButtonFun:

(__DATA,__data) section

00003648 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-42605-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...