应用程序二进制文件加载到RAM中,使用GCC编译
此二进制文件是否从0x0或其他值开始获取虚拟地址(VA)?
(当我检查应用程序二进制文件时,我无法在应用程序中看到任何VA)
答案 0 :(得分:0)
我阅读了很多文章并找到了答案,可以解决我的一些问题。
GCC使用ELF格式创建应用程序二进制文件。 如果你执行“readelf -a app_binary”,那么它会显示应用程序的入口点地址。
使用GCC编译的应用程序使用64位的起始虚拟地址0x400000和32位系统中的0x804800。
因此,如果我们尝试访问0x0-0x3fffff,则会看到分段错误。由于未定义虚拟内存。
如果有任何错误,请更正我的回答。 : - )