C 如何从图像/二进制文件检查结构的值?

C 如何从图像/二进制文件检查结构的值?,c,gcc,binaryfiles,C,Gcc,Binaryfiles,编译后,我是否可以查看结构的值objdump-td给出函数定义和存储结构的地址。问题是,当我运行程序时,结构中的一个线程/函数的地址错误。目标mcu是lpc1347(ARM Cortex-m3)。objdump解析对象文件(编译器的产品),这些文件是可重新定位(不可执行)的ELF文件。在这个阶段,不存在这样的概念,即这些编译后的片段将运行的内存地址 您有以下几种可能性: 将*.obj文件链接到最终的非剥离(传递给编译器)可执行ELF映像中,并使用readelf对其进行解析 通过将-Wl,-ma

编译后,我是否可以查看结构的值
objdump-td
给出函数定义和存储结构的地址。问题是,当我运行程序时,结构中的一个线程/函数的地址错误。目标mcu是lpc1347(ARM Cortex-m3)。

objdump
解析对象文件(编译器的产品),这些文件是可重新定位(不可执行)的ELF文件。在这个阶段,不存在这样的概念,即这些编译后的片段将运行的内存地址

您有以下几种可能性:

  • *.obj
    文件链接到最终的非剥离(传递给编译器)可执行ELF映像中,并使用
    readelf
    对其进行解析
  • 通过将
    -Wl,-map,file.map
    添加到
    LDFLAGS
    生成链接器映射文件,并查看映射文件中数据所在的输出部分和地址
  • 使用调试器/gdb

通常情况下,您会在调试器下运行程序来查看此类内容。您可以使用gdb查找结构的值可能与