【发布时间】:2018-02-06 08:46:42
【问题描述】:
我正在开发一个使用结构链表的相当复杂的 c 程序。在我的一个 .c 文件 (queue_head) 的顶部声明了一个全局变量。这个变量现在被神秘地覆盖了,这会导致段错误。
有没有办法找出我的变量在内存中的布局。我对原因的最佳猜测是,某些内容正在写入超出其内存的末尾并覆盖 queue_head 内存位置。
为了测试我在源文件中颠倒了 queue_head 和 queue_tail 的位置,下次我运行程序时,queue_tail 已损坏,但 queue_head 很好。
当然它可能是一个错误的指针,但我相信它背后的一些东西在内存中被写入超过它的内存分配。
有没有办法查看 c 如何映射出没有反汇编的变量?
【问题讨论】:
-
这可能对您有所帮助 - Dynamic Code Analysis.