Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
symbol.c File Reference
#include <dirent.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <fcntl.h>
#include <unistd.h>
#include <inttypes.h>
#include "build-id.h"
#include "util.h"
#include "debug.h"
#include "symbol.h"
#include "strlist.h"
#include <elf.h>
#include <limits.h>
#include <sys/utsname.h>

Go to the source code of this file.

Data Structures

struct  symbol_name_rb_node
 
struct  process_kallsyms_args
 
struct  process_args
 

Macros

#define KSYM_NAME_LEN   256
 
#define DSO_BINARY_TYPE__SYMTAB_CNT   ARRAY_SIZE(binary_type_symtab)
 
#define DSO_BINARY_TYPE__DATA_CNT   ARRAY_SIZE(binary_type_data)
 
#define SYMBOL_A   0
 
#define SYMBOL_B   1
 

Functions

int dso__name_len (const struct dso *dso)
 
bool dso__loaded (const struct dso *dso, enum map_type type)
 
bool dso__sorted_by_name (const struct dso *dso, enum map_type type)
 
bool symbol_type__is_a (char symbol_type, enum map_type map_type)
 
void symbols__fixup_duplicate (struct rb_root *symbols)
 
void symbols__fixup_end (struct rb_root *symbols)
 
void __map_groups__fixup_end (struct map_groups *mg, enum map_type type)
 
struct symbolsymbol__new (u64 start, u64 len, u8 binding, const char *name)
 
void symbol__delete (struct symbol *sym)
 
size_t symbol__fprintf_symname_offs (const struct symbol *sym, const struct addr_location *al, FILE *fp)
 
size_t symbol__fprintf_symname (const struct symbol *sym, FILE *fp)
 
void dso__set_long_name (struct dso *dso, char *name)
 
struct dsodso__new (const char *name)
 
void dso__delete (struct dso *dso)
 
void dso__set_build_id (struct dso *dso, void *build_id)
 
void symbols__insert (struct rb_root *symbols, struct symbol *sym)
 
struct symboldso__find_symbol (struct dso *dso, enum map_type type, u64 addr)
 
struct symboldso__find_symbol_by_name (struct dso *dso, enum map_type type, const char *name)
 
void dso__sort_by_name (struct dso *dso, enum map_type type)
 
int build_id__sprintf (const u8 *build_id, int len, char *bf)
 
size_t dso__fprintf_buildid (struct dso *dso, FILE *fp)
 
size_t dso__fprintf_symbols_by_name (struct dso *dso, enum map_type type, FILE *fp)
 
size_t dso__fprintf (struct dso *dso, enum map_type type, FILE *fp)
 
int kallsyms__parse (const char *filename, void *arg, int(*process_symbol)(void *arg, const char *name, char type, u64 start))
 
int dso__load_kallsyms (struct dso *dso, const char *filename, struct map *map, symbol_filter_t filter)
 
bool dso__build_id_equal (const struct dso *dso, u8 *build_id)
 
bool __dsos__read_build_ids (struct list_head *head, bool with_hits)
 
char dso__symtab_origin (const struct dso *dso)
 
int dso__binary_type_file (struct dso *dso, enum dso_binary_type type, char *root_dir, char *file, size_t size)
 
int dso__load (struct dso *dso, struct map *map, symbol_filter_t filter)
 
struct mapmap_groups__find_by_name (struct map_groups *mg, enum map_type type, const char *name)
 
struct mapmachine__new_module (struct machine *machine, u64 start, const char *filename)
 
int dso__load_vmlinux (struct dso *dso, struct map *map, const char *vmlinux, symbol_filter_t filter)
 
int dso__load_vmlinux_path (struct dso *dso, struct map *map, symbol_filter_t filter)
 
void dsos__add (struct list_head *head, struct dso *dso)
 
struct dsodsos__find (struct list_head *head, const char *name)
 
struct dso__dsos__findnew (struct list_head *head, const char *name)
 
size_t __dsos__fprintf (struct list_head *head, FILE *fp)
 
size_t machines__fprintf_dsos (struct rb_root *machines, FILE *fp)
 
size_t machine__fprintf_dsos_buildid (struct machine *machine, FILE *fp, bool with_hits)
 
size_t machines__fprintf_dsos_buildid (struct rb_root *machines, FILE *fp, bool with_hits)
 
void dso__read_running_kernel_build_id (struct dso *dso, struct machine *machine)
 
int __machine__create_kernel_maps (struct machine *machine, struct dso *kernel)
 
void machine__destroy_kernel_maps (struct machine *machine)
 
int machine__create_kernel_maps (struct machine *machine)
 
size_t machine__fprintf_vmlinux_path (struct machine *machine, FILE *fp)
 
int symbol__init (void)
 
void symbol__exit (void)
 
int machines__create_kernel_maps (struct rb_root *machines, pid_t pid)
 
int hex2u64 (const char *ptr, u64 *long_val)
 
charstrxfrchar (char *s, char from, char to)
 
int machines__create_guest_kernel_maps (struct rb_root *machines)
 
void machines__destroy_guest_kernel_maps (struct rb_root *machines)
 
int machine__load_kallsyms (struct machine *machine, const char *filename, enum map_type type, symbol_filter_t filter)
 
int machine__load_vmlinux_path (struct machine *machine, enum map_type type, symbol_filter_t filter)
 
struct mapdso__new_map (const char *name)
 
int dso__data_fd (struct dso *dso, struct machine *machine)
 
ssize_t dso__data_read_offset (struct dso *dso, struct machine *machine, u64 offset, u8 *data, ssize_t size)
 
ssize_t dso__data_read_addr (struct dso *dso, struct map *map, struct machine *machine, u64 addr, u8 *data, ssize_t size)
 

Variables

struct symbol_conf symbol_conf
 

Macro Definition Documentation

#define DSO_BINARY_TYPE__DATA_CNT   ARRAY_SIZE(binary_type_data)

Definition at line 65 of file symbol.c.

#define DSO_BINARY_TYPE__SYMTAB_CNT   ARRAY_SIZE(binary_type_symtab)

Definition at line 57 of file symbol.c.

#define KSYM_NAME_LEN   256

Definition at line 23 of file symbol.c.

#define SYMBOL_A   0

Definition at line 116 of file symbol.c.

#define SYMBOL_B   1

Definition at line 117 of file symbol.c.

Function Documentation

struct dso* __dsos__findnew ( struct list_head head,
const char name 
)
read

Definition at line 1609 of file symbol.c.

size_t __dsos__fprintf ( struct list_head head,
FILE *  fp 
)

Definition at line 1624 of file symbol.c.

bool __dsos__read_build_ids ( struct list_head head,
bool  with_hits 
)

Definition at line 900 of file symbol.c.

int __machine__create_kernel_maps ( struct machine machine,
struct dso kernel 
)

Definition at line 1796 of file symbol.c.

void __map_groups__fixup_end ( struct map_groups mg,
enum map_type  type 
)

Definition at line 215 of file symbol.c.

int build_id__sprintf ( const u8 build_id,
int  len,
char bf 
)

Definition at line 507 of file symbol.c.

int dso__binary_type_file ( struct dso dso,
enum dso_binary_type  type,
char root_dir,
char file,
size_t  size 
)

Definition at line 945 of file symbol.c.

bool dso__build_id_equal ( const struct dso dso,
u8 build_id 
)

Definition at line 895 of file symbol.c.

int dso__data_fd ( struct dso dso,
struct machine machine 
)

Definition at line 2241 of file symbol.c.

ssize_t dso__data_read_addr ( struct dso dso,
struct map map,
struct machine machine,
u64  addr,
u8 data,
ssize_t  size 
)

Definition at line 2424 of file symbol.c.

ssize_t dso__data_read_offset ( struct dso dso,
struct machine machine,
u64  offset,
u8 data,
ssize_t  size 
)

Definition at line 2395 of file symbol.c.

void dso__delete ( struct dso dso)

Definition at line 363 of file symbol.c.

struct symbol* dso__find_symbol ( struct dso dso,
enum map_type  type,
u64  addr 
)
read

Definition at line 488 of file symbol.c.

struct symbol* dso__find_symbol_by_name ( struct dso dso,
enum map_type  type,
const char name 
)
read

Definition at line 494 of file symbol.c.

size_t dso__fprintf ( struct dso dso,
enum map_type  type,
FILE *  fp 
)

Definition at line 545 of file symbol.c.

size_t dso__fprintf_buildid ( struct dso dso,
FILE *  fp 
)

Definition at line 522 of file symbol.c.

size_t dso__fprintf_symbols_by_name ( struct dso dso,
enum map_type  type,
FILE *  fp 
)

Definition at line 530 of file symbol.c.

int dso__load ( struct dso dso,
struct map map,
symbol_filter_t  filter 
)

Definition at line 1025 of file symbol.c.

int dso__load_kallsyms ( struct dso dso,
const char filename,
struct map map,
symbol_filter_t  filter 
)

Definition at line 813 of file symbol.c.

int dso__load_vmlinux ( struct dso dso,
struct map map,
const char vmlinux,
symbol_filter_t  filter 
)

Definition at line 1375 of file symbol.c.

int dso__load_vmlinux_path ( struct dso dso,
struct map map,
symbol_filter_t  filter 
)

Definition at line 1406 of file symbol.c.

bool dso__loaded ( const struct dso dso,
enum map_type  type 
)

Definition at line 77 of file symbol.c.

int dso__name_len ( const struct dso dso)

Definition at line 67 of file symbol.c.

struct dso* dso__new ( const char name)
read

Definition at line 325 of file symbol.c.

struct map* dso__new_map ( const char name)
read

Definition at line 2206 of file symbol.c.

void dso__read_running_kernel_build_id ( struct dso dso,
struct machine machine 
)

Definition at line 1708 of file symbol.c.

void dso__set_build_id ( struct dso dso,
void build_id 
)

Definition at line 376 of file symbol.c.

void dso__set_long_name ( struct dso dso,
char name 
)

Definition at line 304 of file symbol.c.

void dso__sort_by_name ( struct dso dso,
enum map_type  type 
)

Definition at line 500 of file symbol.c.

bool dso__sorted_by_name ( const struct dso dso,
enum map_type  type 
)

Definition at line 82 of file symbol.c.

char dso__symtab_origin ( const struct dso dso)

Definition at line 922 of file symbol.c.

void dsos__add ( struct list_head head,
struct dso dso 
)

Definition at line 1594 of file symbol.c.

struct dso* dsos__find ( struct list_head head,
const char name 
)
read

Definition at line 1599 of file symbol.c.

int hex2u64 ( const char ptr,
u64 long_val 
)

Definition at line 2083 of file symbol.c.

int kallsyms__parse ( const char filename,
void arg,
int(*)(void *arg, const char *name, char type, u64 start process_symbol 
)

Definition at line 564 of file symbol.c.

int machine__create_kernel_maps ( struct machine machine)

Definition at line 1851 of file symbol.c.

void machine__destroy_kernel_maps ( struct machine machine)

Definition at line 1820 of file symbol.c.

size_t machine__fprintf_dsos_buildid ( struct machine machine,
FILE *  fp,
bool  with_hits 
)

Definition at line 1667 of file symbol.c.

size_t machine__fprintf_vmlinux_path ( struct machine machine,
FILE *  fp 
)

Definition at line 1935 of file symbol.c.

int machine__load_kallsyms ( struct machine machine,
const char filename,
enum map_type  type,
symbol_filter_t  filter 
)

Definition at line 2173 of file symbol.c.

int machine__load_vmlinux_path ( struct machine machine,
enum map_type  type,
symbol_filter_t  filter 
)

Definition at line 2192 of file symbol.c.

struct map* machine__new_module ( struct machine machine,
u64  start,
const char filename 
)
read

Definition at line 1286 of file symbol.c.

int machines__create_guest_kernel_maps ( struct rb_root machines)

Definition at line 2111 of file symbol.c.

int machines__create_kernel_maps ( struct rb_root machines,
pid_t  pid 
)

Definition at line 2058 of file symbol.c.

void machines__destroy_guest_kernel_maps ( struct rb_root machines)

Definition at line 2160 of file symbol.c.

size_t machines__fprintf_dsos ( struct rb_root machines,
FILE *  fp 
)

Definition at line 1638 of file symbol.c.

size_t machines__fprintf_dsos_buildid ( struct rb_root machines,
FILE *  fp,
bool  with_hits 
)

Definition at line 1674 of file symbol.c.

struct map* map_groups__find_by_name ( struct map_groups mg,
enum map_type  type,
const char name 
)
read

Definition at line 1145 of file symbol.c.

char* strxfrchar ( char s,
char  from,
char  to 
)

Definition at line 2101 of file symbol.c.

void symbol__delete ( struct symbol sym)

Definition at line 268 of file symbol.c.

void symbol__exit ( void  )

Definition at line 2046 of file symbol.c.

size_t symbol__fprintf_symname ( const struct symbol sym,
FILE *  fp 
)

Definition at line 299 of file symbol.c.

size_t symbol__fprintf_symname_offs ( const struct symbol sym,
const struct addr_location al,
FILE *  fp 
)

Definition at line 282 of file symbol.c.

int symbol__init ( void  )

Definition at line 1987 of file symbol.c.

struct symbol* symbol__new ( u64  start,
u64  len,
u8  binding,
const char name 
)
read

Definition at line 245 of file symbol.c.

bool symbol_type__is_a ( char  symbol_type,
enum map_type map_type   
)

Definition at line 92 of file symbol.c.

void symbols__fixup_duplicate ( struct rb_root symbols)

Definition at line 163 of file symbol.c.

void symbols__fixup_end ( struct rb_root symbols)

Definition at line 192 of file symbol.c.

void symbols__insert ( struct rb_root symbols,
struct symbol sym 
)

Definition at line 382 of file symbol.c.

Variable Documentation

Initial value:
= {
.exclude_other = true,
.use_modules = true,
.try_vmlinux_path = true,
.annotate_src = true,
.symfs = "",
}

Definition at line 34 of file symbol.c.