gpt4 book ai didi

c - 如何在unix中遍历虚拟内存中的bss段、数据段和整个堆栈

转载 作者:行者123 更新时间:2023-11-30 20:24:25 27 4
gpt4 key购买 nike

我正在尝试用标记和清除策略为C编写一个垃圾收集器,但我不知道如何遍历bss段、数据段。如何获取这些段的开始地址和结束地址以及如何找到堆栈底部?

最佳答案

bss段通常有一个链接器符号,看一下你设备的启动代码(=位置,从哪里调用“main”,bss通常在跳转到main之前初始化),在那里你可以看到如何引用和使用它。

堆栈的底部高度依赖于处理器和操作系统,也可以有多个堆栈(中断堆栈、主堆栈、任务堆栈)。您需要弄清楚您正在寻找哪个堆栈,然后从那里查看适当的手册(处理器、操作系统)。

无论如何 - C 中的垃圾收集听起来有点像一个奇迹 - 哪个习惯用法会触发垃圾收集?什么样的内存会被收集?

关于c - 如何在unix中遍历虚拟内存中的bss段、数据段和整个堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com