【发布时间】:2014-04-18 12:47:36
【问题描述】:
我正在为 Windows 二进制文件编写一个链接器,目前正在实现 COMDAT。我想我了解大部分规范,除了 COMDAT 节的三个记录(节标题、节符号和辅助符号)之外,规范似乎没有提到存储在其中的任何一个中的通用名称。
换句话说,当我在这样一个对象上运行 dumpbin 时,它会给出如下输出:
SECTION HEADER #8
.text$mn name
0 physical address
0 virtual address
5 size of raw data
2358 file pointer to raw data (00002358 to 0000235C)
235D file pointer to relocation table
0 file pointer to line numbers
1 number of relocations
0 number of line numbers
60301020 flags
Code
COMDAT; sym= cosl
最后一项sym= cosl 来自哪里?或者如果它只是一个指向该部分的常规符号,如果有几个不同的此类符号指向它会发生什么?
【问题讨论】:
标签: windows visual-c++ linker portable-executable comdat-folding