![]() LFB and LFE are generated at the beginning and end of functions Once we have those define names, it is easy to generate C code that generates them to see what they mean: The suffixes you mention all appear to be debugging related, as they are all defined under gcc/dwarf2out.c on GCC 4.8.2 and DWARF2 is a major debugging information format for ELF: #define FUNC_BEGIN_LABEL "LFB"ĪSM_GENERATE_INTERNAL_LABEL (loclabel, "LVL", loclabel_num) įrom my experiments, some of them are generated only with gcc -g, others even without g. ![]() L in GAS) generate local symbols: which are still present on the output but not used across object files. This seems to be a GCC toolchain specific convention, not part an ELF ABI nor NASM.įurthermore, both NASM and GAS use the convention that labels that start with a period (except. There are also options that manage it like: This only makes sense because you cannot generate such labels from a C program. So if you compile with: as -c a.S, nm a.o does not show those labels at all. You may use the `-L' option (see Include Local Symbols: -L) to retain the local symbols in the object files. Thus, they are not visible when debugging. Local symbols are defined and used within the assembler, but they are normally not saved in object files. By default, the local label prefix is `.L' for ELF systems GAS will not generate any symbols on the compiled output by default as documented at: Ī local symbol is any symbol beginning with certain local label prefixes. loc is documented at and the exact output depends on the debug data format (DWARF2, etc.). loc is a debugging directive, and it only appears in GCC 4.8.2 if you tell the compiler to generate debugging information with -ggdb.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |