Tôi đang học định dạng ELF ngay bây giờ. Tôi phải mã một fonction nm đơn giản (không có các tùy chọn). Tôi đã in trên đầu ra giá trị của biểu tượng và tên của biểu tượng.Cách hiển thị loại ký hiệu như lệnh nm?
Dưới đây là đầu ra nm:
value type name
0000000000600e30 D __DTOR_END__
tôi có cùng một, nhưng nếu không có sự 'type'. Tôi đang sử dụng cấu trúc ELF64_Sym, như sau:
typedef struct {
Elf64_Word st_name;
unsigned char st_info;
unsigned char st_other;
Elf64_Half st_shndx;
Elf64_Addr st_value;
Elf64_Xword st_size;
} Elf64_Sym;
Tôi biết rằng tôi phải sử dụng biến st_info và macro này:
#define ELF64_ST_TYPE(info) ((info) & 0xf)
để có được kiểu của biểu tượng. Nhưng, loại biểu tượng có thể là một vĩ mô như sau:
NAME VALUE
STT_NOTYPE 0
STT_OBJECT 1
STT_FUNC 2
STT_SECTION 3
STT_FILE 4
STT_LOPROC 13
STT_HIOPROC 15
Và tôi muốn biết là làm thế nào tôi có thể nhận được từ các macro này để chữ in bằng nm, ví dụ:
U, u, A, a, T, t, R, r, W, w
Tuyên bố 'chuyển đổi', có lẽ? –
Đưa người đàn ông này vào tài khoản man nm (1): http://linux.die.net/man/1/nm – EGOrecords