gpt4 book ai didi

c - nm 输出的第一列是什么?

转载 作者:IT王子 更新时间:2023-10-29 00:14:26 25 4
gpt4 key购买 nike

那是我的代码:

int const const_global_init = 2;
int const const_global;
int global_init = 4;
int global;

static int static_global_init = 3;
static int static_global;

static int static_function(){
return 2;
}

double function_with_param(int a){
static int static_local_init = 3;
static int static_local;

return 2.2;
}

int main(){
}

我生成 main.o 并尝试理解 nm 输出。在我使用 nm main.o --printfile-name -a 之后,我得到了这个输出:

main.o:0000000000000000 b .bss
main.o:0000000000000000 n .comment
main.o:0000000000000004 C const_global
main.o:0000000000000000 R const_global_init
main.o:0000000000000000 d .data
main.o:0000000000000000 r .eh_frame
main.o:000000000000000b T function_with_param
main.o:0000000000000004 C global
main.o:0000000000000000 D global_init
main.o:0000000000000027 T main
main.o:0000000000000000 a main.c
main.o:0000000000000000 n .note.GNU-stack
main.o:0000000000000000 r .rodata
main.o:0000000000000000 t static_function
main.o:0000000000000000 b static_global
main.o:0000000000000004 d static_global_init
main.o:0000000000000004 b static_local.1733
main.o:0000000000000008 d static_local_init.1732
main.o:0000000000000000 t .text

我理解了第二和第三列,但是,我真的不知道第一列是什么,是地址还是大小?我知道一些关于 .bbs.comment.data.text 段的想法,但它是什么 .eh_frame.note.GNU-stack.rodata

最佳答案

... i really dont know what is in the first column, whether it is the address or size?

我的本​​地联机帮助页(来自 man nm)说

DESCRIPTION
GNU nm lists the symbols from object files objfile.... If no object files are listed as arguments, nm assumes the file a.out.

For each symbol, nm shows:

· The symbol value, in the radix selected by options (see below), or hexadecimal by default.

也就是说,第一列是交易品种的“值(value)”。要理解这意味着什么,了解一些有关 ELF 和运行时链接器的知识会很有帮助,但通常它只是相关部分的偏移量。

了解一些关于 ELF 的东西也会对其他方面有所帮助:man elf 告诉我们 .rodata 部分是只读数据(即:常量值硬编码进入永不改变的程序。字符串文字可能会放在这里)。

.eh_frame 用于异常处理和其他调用堆栈帧元数据(搜索 eh_frame 的第一个结果是 this question)。

关于c - nm 输出的第一列是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36746688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com