据说存在.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区段啊?

谢谢老哥们了
...全文
194 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧