最近在学习PE。VS2019写的控制台程序
#include <iostream>
int a[100000];
int b = 0x12345678;
int main()
{
int c;
std::cout << "Hello World!\n";
std::cout << "&a = " << &a << std::endl;
std::cout << "&b = " << &b<<std::endl;
std::cin >> c;
}
debug程序能看到似乎有个.textbss这么个区段。而在release程序下就找不到了。
后面说的暂且先仅针对release版程序
--------------------------------------------------------------------------
上面这个程序,我看了下。b存储在.data之中。而a却在【文件的】.data以外,不过在.data的VirtualSize内部
--------------------------------------------------------------------------
我了解说存在这么一个区段.bss专门用于运行时存放a这样的未初始化变量的地方。
但我查看过节表中并没有这么个.bss区段。那么加载器又是怎么加载这个文件,无中生有开辟这个空间的呢【就算开辟空间少说也需要一个大小。这个大小存在文件的哪里呢】?
另外就是,用od看过这个程序,发现也没看到有.bss区段啊?
谢谢老哥们了