我正在尝试使用Mark& amp;为C写一个垃圾收集器扫描策略,但我不知道如何遍历bss段,数据段。如何获取这些段的起始地址和结束地址以及如何找到堆栈的底部?
答案 0 :(得分:1)
bss段通常有一个链接符号,请查看设备的启动代码(=位置,从哪里" main"被调用,bss通常在跳转到main之前初始化) ,你可以看到它是如何引用和使用的。
堆栈的底部依赖于高处理器和操作系统,也可能存在多个堆栈(中断堆栈,主堆栈,任务堆栈)。 您需要找出您正在寻找的堆栈,并从那里查看相应的手册(处理器,操作系统)。
无论如何 - C中的垃圾收集听起来有点像奇迹 - 哪个成语会引发垃圾收集?会收集哪种记忆?