如何检查我的内存堆栈,堆栈等的哪些部分存在?我目前正在用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/C++中的内存分配
- 7. C中的免费C分配内存#
- 8. 在C/C++中分配内存失败
- 9. 内存泄漏在C /内存分配++
- 10. 将内存分配给C++中的char *
- 11. C中矩阵的内存分配
- 12. C++中的指针内存分配
- 13. C中的内存管理(分配)
- 14. 目标C中的内存分配
- 15. c中线程的内存分配
- 16. C++中的结构内存分配
- 17. C++内存分配问题
- 18. 目标C:分配内存
- 19. C++:内存分配器
- 20. 内存分配在C
- 21. C函数分配内存
- 22. 内存分配在C#
- 23. C++可变内存分配
- 24. C++分配内存问题
- 25. 内存分配在obj c
- 26. 高级C内存分配
- 27. track C++内存分配
- 28. C:提前分配内存还是每次分配内存?
- 29. 在c#中分配“非托管”内存
- 30. 在C#中分配一块内存?
您准确使用哪个平台? – 2011-02-03 13:50:54