如何检查我的内存堆栈,堆栈等的哪些部分存在?我目前正在用C语言查看一个程序,并查看.elf文件,我可以看到该程序正在使用哪些内存地址,但我不知道它是堆栈还是堆栈。C中的内存分配
Q
C中的内存分配
0
A
回答
3
这很难从编译代码本身的静态分析中得知。您应该能够看到任何静态初始化数据区域以及静态未初始化(BSS)部分,但是确切地说,如何将这些部分与堆栈,堆等加载到平台的可执行加载器中。
0
如果您在嵌入式平台上工作,您应该使用一些链接器脚本(lcf文件)以及构建程序,然后您可以详细识别所有部分(堆栈,堆,intvec,bss,文本,代码),它在存储器中的位置(无论是在L1缓存,L2缓存还是DDR中)以及在加载到板子时的开始/结束地址。
问题是,请查看链接器手册(可以在编译器安装目录中找到它),以便正确理解lcf中的关键字。
此外还有一种方法可以分析各个部分,您可以为您的项目创建“地图文件”并通过它。它将列出程序中的所有部分及其地址。
0
你可以尝试使用ollydbg,这是一个免费的调试器。一个缺点就是它以汇编形式显示所有内容,但它会告诉你什么是你的堆栈,堆,甚至是什么在你的寄存器。我不确定这是不是你要找的。
+0
它支持所有平台吗? – 2011-02-07 04:04:29
相关问题
- 1. C++中的内存分配
- 2. C++中的内存分配
- 3. 内存分配C++
- 4. 内存分配,C++
- 5. C内存分配
- 6. C++分配内存
- 7. 内存分配C
- 8. C中的免费C分配内存#
- 9. 在C/C++中的内存分配
- 10. 在C++中用void *分配内存结构内存分配
- 11. C++内存分配在C
- 12. 在C/C++中分配内存失败
- 13. C中的数组的内存分配
- 14. C++内存分配 - 分配子类到
- 15. 内存泄漏在C /内存分配++
- 16. C中的空闲分配内存
- 17. C中的内存管理(分配)
- 18. 将内存分配给C++中的char *
- 19. c中线程的内存分配
- 20. C++中的指针内存分配
- 21. C++中的结构内存分配
- 22. 目标C中的内存分配
- 23. C++中的动态内存分配
- 24. C中的malloc内存分配方案
- 25. C++中线程的内存分配
- 26. C程序中的内存分配
- 27. C中矩阵的内存分配
- 28. C中的内存分配和指针
- 29. 内存分配与C中的节点
- 30. C内存分配错误
您准确使用哪个平台? – 2011-02-03 13:50:54