【问题标题】:What is the command in Linux related to structure sizeLinux中与结构大小相关的命令是什么
【发布时间】:2012-01-27 13:39:23
【问题描述】:

你好,我在Linux中遇到了一个命令,它打印一个与源代码文件名相同但扩展名不同的文件,源代码中定义的结构大小的详细用法......请让我知道任何这样的命令

谢谢

【问题讨论】:

  • 你能详细说明你的问题吗? prints in a filesourcecode filenamedetailed usage of sizes of the structure 是什么意思?
  • 合理的猜测是magic_command sourcefile.c 生成了一些其他文件sourcefile.x,其中包含有关文件中各种结构大小的一些信息。知道大小信息是什么以及文件中还打印了什么(如果有的话)会很有趣。
  • 你好@Jonathan Leffler ..是的 ..its 用于分析您提供给编译器的源文件以及一些特定的开关/选项和输出文件(与源代码文件同名但不同扩展名)在 cmets 中包含有关每个结构的各种尺寸等的详细信息......我遇到了这样一个有用的命令,现在我很遗憾没有记下它。我正在寻找有关结构填充的信息,我猜然后我来了在这篇文章中(不确定是哪个网站),发帖人在哪里发布了这个命令以及一些代码的解释。请告诉我
  • hello @another.anon.coward 你对我的帖子的回复没有什么帮助。我找不到那个特定的命令,而且那个命令与 GDB 无关..如果我没记错的话..无论如何,如果您找到具体和更好的东西,请告诉我..谢谢

标签: linux gcc g++ command sizeof


【解决方案1】:

我最好的猜测是你在谈论 nm ,它列出了目标文件中的符号。一个简单的例子:

文件 test.c

int int_array[10];
double double_array[10];

int main()
{
   int_array[0] = 0;
   double_array[0] = 0;

   return 0;
} 

建立一个目标文件:

$ gcc -c test.c

现在列出带有大小信息的符号:

$ nm -S test.o

这会在我的 macbook 上打印出类似这样的内容:

0000000000000040 n EH_frame0
0000000000000050 C _double_array
0000000000000028 C _int_array
0000000000000000 T _main
0000000000000058 N _main.eh

查看 nm 手册页了解更多信息 (http://linux.about.com/library/cmd/blcmdl1_nm.htm)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多