|
Linux Perf
|
#include <linux/compiler.h>#include <sys/types.h>#include <stdio.h>#include <getopt.h>#include <stddef.h>#include <libelf.h>#include <string.h>#include <stdlib.h>#include <inttypes.h>#include <limits.h>#include <fcntl.h>#include <err.h>#include <dwarf.h>#include "perf.h"#include "genelf.h"#include "../util/jitdump.h"
Go to the source code of this file.
Classes | |
| struct | buffer_ext |
| struct | debug_line_header |
| struct | compilation_unit_header |
Macros | |
| #define | BUFFER_EXT_DFL_SIZE (4 * 1024) |
| #define | DW_LNS_num_opcode (DW_LNS_set_isa + 1) |
Typedefs | |
| typedef uint32_t | uword |
| typedef uint16_t | uhalf |
| typedef int32_t | sword |
| typedef int16_t | shalf |
| typedef uint8_t | ubyte |
| typedef int8_t | sbyte |
Functions | |
| static void | buffer_ext_dump (struct buffer_ext *be, const char *msg) |
| static int | buffer_ext_add (struct buffer_ext *be, void *addr, size_t sz) |
| static void | buffer_ext_init (struct buffer_ext *be) |
| static size_t | buffer_ext_size (struct buffer_ext *be) |
| static void * | buffer_ext_addr (struct buffer_ext *be) |
| static void | emit_uword (struct buffer_ext *be, uword data) |
| static void | emit_string (struct buffer_ext *be, const char *s) |
| static void | emit_unsigned_LEB128 (struct buffer_ext *be, unsigned long data) |
| static void | emit_signed_LEB128 (struct buffer_ext *be, long data) |
| static void | emit_extended_opcode (struct buffer_ext *be, ubyte opcode, void *data, size_t data_len) |
| static void | emit_opcode (struct buffer_ext *be, ubyte opcode) |
| static void | emit_opcode_signed (struct buffer_ext *be, ubyte opcode, long data) |
| static void | emit_opcode_unsigned (struct buffer_ext *be, ubyte opcode, unsigned long data) |
| static void | emit_advance_pc (struct buffer_ext *be, unsigned long delta_pc) |
| static void | emit_advance_lineno (struct buffer_ext *be, long delta_lineno) |
| static void | emit_lne_end_of_sequence (struct buffer_ext *be) |
| static void | emit_set_file (struct buffer_ext *be, unsigned long idx) |
| static void | emit_lne_define_filename (struct buffer_ext *be, const char *filename) |
| static void | emit_lne_set_address (struct buffer_ext *be, void *address) |
| static ubyte | get_special_opcode (struct debug_entry *ent, unsigned int last_line, unsigned long last_vma) |
| static void | emit_lineno_info (struct buffer_ext *be, struct debug_entry *ent, size_t nr_entry, unsigned long code_addr) |
| static void | add_debug_line (struct buffer_ext *be, struct debug_entry *ent, size_t nr_entry, unsigned long code_addr) |
| static void | add_debug_abbrev (struct buffer_ext *be) |
| static void | add_compilation_unit (struct buffer_ext *be, size_t offset_debug_line) |
| static int | jit_process_debug_info (uint64_t code_addr, void *debug, int nr_debug_entries, struct buffer_ext *dl, struct buffer_ext *da, struct buffer_ext *di) |
| int | jit_add_debug_info (Elf *e, uint64_t code_addr, void *debug, int nr_debug_entries) |
Variables | |
| struct debug_line_header | __packed |
| static struct debug_line_header const | default_debug_line_header |
| static ubyte | standard_opcode_length [] |
| static struct compilation_unit_header | default_comp_unit_header |
| #define BUFFER_EXT_DFL_SIZE (4 * 1024) |
Definition at line 32 of file genelf_debug.c.
| #define DW_LNS_num_opcode (DW_LNS_set_isa + 1) |
Definition at line 144 of file genelf_debug.c.
| typedef int8_t sbyte |
Definition at line 39 of file genelf_debug.c.
| typedef int16_t shalf |
Definition at line 37 of file genelf_debug.c.
| typedef int32_t sword |
Definition at line 36 of file genelf_debug.c.
| typedef uint8_t ubyte |
Definition at line 38 of file genelf_debug.c.
| typedef uint16_t uhalf |
Definition at line 35 of file genelf_debug.c.
| typedef uint32_t uword |
Definition at line 34 of file genelf_debug.c.
|
static |
|
static |
|
static |
|
inlinestatic |
|
inlinestatic |
Definition at line 99 of file genelf_debug.c.
|
static |
Definition at line 48 of file genelf_debug.c.
|
static |
Definition at line 85 of file genelf_debug.c.
|
inlinestatic |
Definition at line 93 of file genelf_debug.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| int jit_add_debug_info | ( | Elf * | e, |
| uint64_t | code_addr, | ||
| void * | debug, | ||
| int | nr_debug_entries | ||
| ) |
|
static |
| struct compilation_unit_header __packed |
|
static |
Definition at line 174 of file genelf_debug.c.
|
static |
Definition at line 147 of file genelf_debug.c.
|
static |
Definition at line 158 of file genelf_debug.c.