gpt4 book ai didi

c++ - xdata 部分有什么作用?

转载 作者:行者123 更新时间:2023-11-30 16:37:24 24 4
gpt4 key购买 nike

我有一个简单的 hello world 程序,在使用 /headers 标志 dumpbin 后,我得到以下输出:

FILE HEADER VALUES
8664 machine (x64)
D number of sections
5A3D287F time date stamp Fri Dec 22 18:45:03 2017
48F file pointer to symbol table
2D number of symbols
0 size of optional header
0 characteristics

Summary

F .data
A0 .debug$S
2F .drectve
24 .pdata
B9 .text$mn
18 .xdata

xdata 部分到底做什么以及它包含什么? msdn 上没有信息。

最佳答案

供将来引用:

  • .text:代码段(思考函数);当启用功能部分或涉及 comdat 时(例如模板),可以有多个
  • .data:数据段(考虑全局变量);当启用数据部分或涉及 comdat 时(例如模板),可以有多个
  • .bss:数据段初始化为零(上面未出现);当启用数据部分或涉及 comdat 时(例如模板),可以有多个
  • .debug:调试信息;与其他部分一样,当涉及功能部分时,可以有多个。
  • .pdata:对于x86_64,这是方法的“异常信息”,它定义函数的开始/结束,以及指向展开信息的指针(参见.xdata);在目标文件内部,每个函数都会重复
  • .drectve:不确定;但从名称来看,我猜测是链接器指令。
  • .xdata:适用于 x86_64;这是 pdata 指向的展开信息部分。它包含函数的异常处理程序所在的位置,以及发生异常时如何展开它:https://learn.microsoft.com/en-us/cpp/build/exception-handling-x64?view=vs-2019

“$”后缀用于排序。鉴于:- .sec$z- .sec$数据- .sec$a

这些节在合并到可执行文件之前进行排序(因此首先是 .sec$a,然后是 data,然后是 z),这可用于创建 pe 节的开始/结束符号。

关于c++ - xdata 部分有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47944583/

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