首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到给定C函数的分配内存(地址和大小)以及在其中声明的变量?

问如何找到给定C函数的分配内存(地址和大小)以及在其中声明的变量?
EN

Stack Overflow用户
提问于 2011-03-02 01:45:00
回答 1查看 198关注 0票数 0

如果我有一个简单的C程序,只有一个主要功能。

  1. 如何查找块的地址,代码被分配给
  2. ,进程分配的内存块的大小?
  3. ,堆栈的状态(即堆栈的大小和指向堆栈的基本指针)
  4. ,程序中声明的每个变量的大小和位置。(我明白如何使用(相当大的)及(及)营办商。但是,如何跟踪分配给流程的每个块给变量或分配给它们的簿记变量)

。

如果这些构造是由操作系统维护的呢?哪些是可以访问的,为什么?

在程序执行时,是否有任何工具可用于可视化这样的程序状态?

谢谢德科斯托。

EN

回答 1

Stack Overflow用户

发布于 2011-03-02 04:18:02

调试器(如gdb)可以向您显示所有这些信息。

从程序本身AFAIK中找出这些信息没有简单的方法。

要查找代码部分的位置,可以获取main()函数的地址(只需获取函数指针并查看其指向的位置)。或者,查看内联程序集中的指令指针。

若要粗略地查找堆栈的位置,请从内联程序集中获取局部变量的地址或堆栈指针。

在linux下,每个进程在/proc文件夹下都有一个目录,您可以在其中读取有关进程的各种信息。(我认为其中一些东西正被转移到/sys)

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5162533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档