PERFORCE change 104168 for review
John Birrell
jb at FreeBSD.org
Wed Aug 16 01:32:20 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=104168
Change 104168 by jb at jb_freebsd2 on 2006/08/16 01:31:26
Report ELF class, data type and OS ABI.
Affected files ...
.. //depot/projects/dtrace/src/lib/libelf/elf_dump.c#2 edit
.. //depot/projects/dtrace/src/lib/libelf/libelf_dump.c#2 edit
Differences ...
==== //depot/projects/dtrace/src/lib/libelf/elf_dump.c#2 (text+ko) ====
@@ -37,6 +37,53 @@
#include "_libelf.h"
static const char *
+ei_class_str(u_int ei_class)
+{
+ switch (ei_class) {
+ case ELFCLASSNONE: return("ELFCLASSNONE");
+ case ELFCLASS32: return("ELFCLASS32");
+ case ELFCLASS64: return("ELFCLASS64");
+ default: return (NULL);
+ }
+}
+
+static const char *
+ei_data_str(u_int ei_data)
+{
+ switch (ei_data) {
+ case ELFDATANONE: return("ELFDATANONE");
+ case ELFDATA2LSB: return("ELFDATA2LSB");
+ case ELFDATA2MSB: return("ELFDATA2MSB");
+ default: return (NULL);
+ }
+}
+
+static const char *
+ei_osabi_str(u_int ei_osabi)
+{
+ switch (ei_osabi) {
+ case ELFOSABI_NONE: return("ELFOSABI_NONE");
+ case ELFOSABI_86OPEN: return("ELFOSABI_86OPEN");
+ case ELFOSABI_AIX: return("ELFOSABI_AIX");
+ case ELFOSABI_ARM: return("ELFOSABI_ARM");
+ case ELFOSABI_FREEBSD: return("ELFOSABI_FREEBSD");
+ case ELFOSABI_HPUX: return("ELFOSABI_HPUX");
+ case ELFOSABI_HURD: return("ELFOSABI_HURD");
+ case ELFOSABI_IRIX: return("ELFOSABI_IRIX");
+ case ELFOSABI_LINUX: return("ELFOSABI_LINUX");
+ case ELFOSABI_MODESTO: return("ELFOSABI_MODESTO");
+ case ELFOSABI_NETBSD: return("ELFOSABI_NETBSD");
+ case ELFOSABI_NSK: return("ELFOSABI_NSK");
+ case ELFOSABI_OPENBSD: return("ELFOSABI_OPENBSD");
+ case ELFOSABI_OPENVMS: return("ELFOSABI_OPENVMS");
+ case ELFOSABI_SOLARIS: return("ELFOSABI_SOLARIS");
+ case ELFOSABI_STANDALONE: return("ELFOSABI_STANDALONE");
+ case ELFOSABI_TRU64: return("ELFOSABI_TRU64");
+ default: return (NULL);
+ }
+}
+
+static const char *
et_str(u_int e_type)
{
switch (e_type) {
==== //depot/projects/dtrace/src/lib/libelf/libelf_dump.c#2 (text+ko) ====
@@ -48,12 +48,27 @@
if ((flags & ELF_DUMP_EHDR) != 0) {
printf("\nelf header:\n\n");
- printf("\te_ident: ");
+ printf("\te_ident:");
+ if ((s = ei_class_str(ehdr->e_ident[EI_CLASS])) == NULL) {
+ snprintf(s1, sizeof(s1), "%u", ehdr->e_ident[EI_CLASS]);
+ s = s1;
+ }
+ printf(" %s", s);
+ if ((s = ei_data_str(ehdr->e_ident[EI_DATA])) == NULL) {
+ snprintf(s1, sizeof(s1), "%u", ehdr->e_ident[EI_DATA]);
+ s = s1;
+ }
+ printf(" %s", s);
+ if ((s = ei_osabi_str(ehdr->e_ident[EI_OSABI])) == NULL) {
+ snprintf(s1, sizeof(s1), "%u", ehdr->e_ident[EI_OSABI]);
+ s = s1;
+ }
+ printf(" %s\n", s);
if ((s = et_str(ehdr->e_type)) == NULL) {
snprintf(s1, sizeof(s1), "%hu", ehdr->e_type);
s = s1;
}
- printf("\n\te_type: %s\n", s);
+ printf("\te_type: %s\n", s);
if ((s = em_str(ehdr->e_machine)) == NULL) {
snprintf(s1, sizeof(s1), "%hu", ehdr->e_machine);
s = s1;
More information about the p4-projects
mailing list