Hi, I am trying to understand where are unnamed string constants are defined in symbol tables. In the following example, the unnamed string constant is "Hello World!". $ cat a.c #include <stdio.h> int main() { puts("Hello World!"); } $ gcc -c a.c $ gcc -o a.out a.o But I don't find it in the symbol table. Could anybody point to me where it is? Thanks. $ readelf -s a.o Symbol table '.symtab' contains 12 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS a.c 2: 0000000000000000 0 SECTION LOCAL DEFAULT 1 3: 0000000000000000 0 SECTION LOCAL DEFAULT 3 4: 0000000000000000 0 SECTION LOCAL DEFAULT 4 5: 0000000000000000 0 SECTION LOCAL DEFAULT 5 6: 0000000000000000 0 SECTION LOCAL DEFAULT 7 7: 0000000000000000 0 SECTION LOCAL DEFAULT 8 8: 0000000000000000 0 SECTION LOCAL DEFAULT 6 9: 0000000000000000 23 FUNC GLOBAL DEFAULT 1 main 10: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _GLOBAL_OFFSET_TABLE_ 11: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND puts $ readelf -s a.out Symbol table '.dynsym' contains 7 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND 1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterT[...] 2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.2.5 (2) 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@GLIBC_2.2.5 (2) 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ 5: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMC[...] 6: 0000000000000000 0 FUNC WEAK DEFAULT UND [...]@GLIBC_2.2.5 (2) Symbol table '.symtab' contains 64 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000000002a8 0 SECTION LOCAL DEFAULT 1 2: 00000000000002c4 0 SECTION LOCAL DEFAULT 2 3: 00000000000002e8 0 SECTION LOCAL DEFAULT 3 4: 0000000000000308 0 SECTION LOCAL DEFAULT 4 5: 0000000000000330 0 SECTION LOCAL DEFAULT 5 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 7: 000000000000045a 0 SECTION LOCAL DEFAULT 7 8: 0000000000000468 0 SECTION LOCAL DEFAULT 8 9: 0000000000000488 0 SECTION LOCAL DEFAULT 9 10: 0000000000000548 0 SECTION LOCAL DEFAULT 10 11: 0000000000001000 0 SECTION LOCAL DEFAULT 11 12: 0000000000001020 0 SECTION LOCAL DEFAULT 12 13: 0000000000001040 0 SECTION LOCAL DEFAULT 13 14: 0000000000001050 0 SECTION LOCAL DEFAULT 14 15: 00000000000011b4 0 SECTION LOCAL DEFAULT 15 16: 0000000000002000 0 SECTION LOCAL DEFAULT 16 17: 0000000000002014 0 SECTION LOCAL DEFAULT 17 18: 0000000000002050 0 SECTION LOCAL DEFAULT 18 19: 0000000000003de8 0 SECTION LOCAL DEFAULT 19 20: 0000000000003df0 0 SECTION LOCAL DEFAULT 20 21: 0000000000003df8 0 SECTION LOCAL DEFAULT 21 22: 0000000000003fd8 0 SECTION LOCAL DEFAULT 22 23: 0000000000004000 0 SECTION LOCAL DEFAULT 23 24: 0000000000004020 0 SECTION LOCAL DEFAULT 24 25: 0000000000004030 0 SECTION LOCAL DEFAULT 25 26: 0000000000000000 0 SECTION LOCAL DEFAULT 26 27: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c 28: 0000000000001080 0 FUNC LOCAL DEFAULT 14 deregister_tm_clones 29: 00000000000010b0 0 FUNC LOCAL DEFAULT 14 register_tm_clones 30: 00000000000010f0 0 FUNC LOCAL DEFAULT 14 __do_global_dtors_aux 31: 0000000000004030 1 OBJECT LOCAL DEFAULT 25 completed.0 32: 0000000000003df0 0 OBJECT LOCAL DEFAULT 20 __do_global_dtor[...] 33: 0000000000001130 0 FUNC LOCAL DEFAULT 14 frame_dummy 34: 0000000000003de8 0 OBJECT LOCAL DEFAULT 19 __frame_dummy_in[...] 35: 0000000000000000 0 FILE LOCAL DEFAULT ABS a.c 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c 37: 0000000000002154 0 OBJECT LOCAL DEFAULT 18 __FRAME_END__ 38: 0000000000000000 0 FILE LOCAL DEFAULT ABS 39: 0000000000003df0 0 NOTYPE LOCAL DEFAULT 19 __init_array_end 40: 0000000000003df8 0 OBJECT LOCAL DEFAULT 21 _DYNAMIC 41: 0000000000003de8 0 NOTYPE LOCAL DEFAULT 19 __init_array_start 42: 0000000000002014 0 NOTYPE LOCAL DEFAULT 17 __GNU_EH_FRAME_HDR 43: 0000000000004000 0 OBJECT LOCAL DEFAULT 23 _GLOBAL_OFFSET_TABLE_ 44: 0000000000001000 0 FUNC LOCAL DEFAULT 11 _init 45: 00000000000011b0 1 FUNC GLOBAL DEFAULT 14 __libc_csu_fini 46: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterT[...] 47: 0000000000004020 0 NOTYPE WEAK DEFAULT 24 data_start 48: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.2.5 49: 0000000000004030 0 NOTYPE GLOBAL DEFAULT 24 _edata 50: 00000000000011b4 0 FUNC GLOBAL HIDDEN 15 _fini 51: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_mai[...] 52: 0000000000004020 0 NOTYPE GLOBAL DEFAULT 24 __data_start 53: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ 54: 0000000000004028 0 OBJECT GLOBAL HIDDEN 24 __dso_handle 55: 0000000000002000 4 OBJECT GLOBAL DEFAULT 16 _IO_stdin_used 56: 0000000000001150 93 FUNC GLOBAL DEFAULT 14 __libc_csu_init 57: 0000000000004038 0 NOTYPE GLOBAL DEFAULT 25 _end 58: 0000000000001050 43 FUNC GLOBAL DEFAULT 14 _start 59: 0000000000004030 0 NOTYPE GLOBAL DEFAULT 25 __bss_start 60: 0000000000001135 23 FUNC GLOBAL DEFAULT 14 main 61: 0000000000004030 0 OBJECT GLOBAL HIDDEN 24 __TMC_END__ 62: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMC[...] 63: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@G[...] -- Regards, Peng