据说存在.bss区段以作为未初始化的变量空间。但为何节表中查不到该区段呢?

千梦一生 2020-09-16 11:04:59
最近在学习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区段啊?

谢谢老哥们了
...全文
132 点赞 收藏 回复
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复

还没有回复,快来抢沙发~

相关推荐
发帖
其它技术问题
创建于2007-09-28

3846

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2020-09-16 11:04
社区公告
暂无公告