【发布时间】:2016-03-30 18:11:09
【问题描述】:
链接器专家的问题。我一直在使用 Matlab 中的 mex 文件,并且遇到了很多无法解释的崩溃,所以我想深入挖掘一下。
您能否向我解释一下,当加载(卸载)动态模块时,如何在进程的虚拟内存空间中分配(释放)静态数据?
我假设这发生在 _init() 和 _fini() 函数中。但是,BSS 段是否在堆空间中分配了一块内存,以及其他动态内存分配?
动态模块中的全局数据呢?符号名称是否可能与主可执行文件发生冲突?
感谢您阐明这些问题。如果我必须选择一个平台,我希望听取 ELF 专家的意见,因为我的大部分开发工作都是在 Linux 上完成的。
【问题讨论】: