Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Enumerations | Functions
dwarf_cfa.c File Reference
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <inttypes.h>
#include <assert.h>
#include <dwarf.h>
#include <gelf.h>
#include <elfutils/libebl.h>
#include <elfutils/libdw.h>
#include <elfutils/libdwfl.h>
#include "common.h"
#include "clfit.h"
#include "alist.h"
#include "binfile.h"
#include "dwdebug.h"
#include "dwdebug_priv.h"
#include "memory-access.h"
Include dependency graph for dwarf_cfa.c:

Go to the source code of this file.

Data Structures

struct  dwarf_cfa_regrule
 
struct  dwarf_cfa_cie
 
struct  dwarf_cfa_fde
 

Macros

#define DWARF_CFA_REG   INT8_MAX
 

Enumerations

enum  dwarf_cfa_regrule_t {
  RRT_UNDEF = 0, RRT_SAME = 1, RRT_OFFSET = 2, RRT_VAL_OFFSET = 3,
  RRT_REG = 5, RRT_EXPR = 6, RRT_VAL_EXPR = 7, RRT_ARCH = 8
}
 

Functions

int dwarf_cfa_read_saved_reg (struct debugfile *debugfile, struct location_ctxt *lctxt, REG reg, REGVAL *o_regval)
 
int dwarf_cfa_program_interpret (struct debugfile *debugfile, struct dwarf_cfa_cie *cie, struct dwarf_cfa_fde *fde, const unsigned char *buf, unsigned int len, GHashTable *regrules)
 
int dwarf_load_cfa (struct debugfile *debugfile, unsigned char *buf, unsigned int len, Dwarf *dbg)
 
int dwarf_cfa_fde_decode (struct debugfile *debugfile, struct dwarf_cfa_fde *fde)
 
struct dwarf_cfa_regruledwarf_cfa_fde_lookup_regrule (struct dwarf_cfa_fde *fde, REG reg, ADDR obj_addr)
 
int dwarf_cfa_read_retaddr (struct debugfile *debugfile, struct location_ctxt *lctxt, ADDR *o_retaddr)
 
int dwarf_unload_cfa (struct debugfile *debugfile)
 

Macro Definition Documentation

#define DWARF_CFA_REG   INT8_MAX

Definition at line 86 of file dwarf_cfa.c.

Enumeration Type Documentation

Enumerator
RRT_UNDEF 
RRT_SAME 
RRT_OFFSET 
RRT_VAL_OFFSET 
RRT_REG 
RRT_EXPR 
RRT_VAL_EXPR 
RRT_ARCH 

Definition at line 51 of file dwarf_cfa.c.

Function Documentation

int dwarf_cfa_fde_decode ( struct debugfile debugfile,
struct dwarf_cfa_fde fde 
)

Definition at line 1161 of file dwarf_cfa.c.

struct dwarf_cfa_regrule* dwarf_cfa_fde_lookup_regrule ( struct dwarf_cfa_fde fde,
REG  reg,
ADDR  obj_addr 
)

Definition at line 1179 of file dwarf_cfa.c.

int dwarf_cfa_program_interpret ( struct debugfile debugfile,
struct dwarf_cfa_cie cie,
struct dwarf_cfa_fde fde,
const unsigned char *  buf,
unsigned int  len,
GHashTable *  regrules 
)

Definition at line 167 of file dwarf_cfa.c.

int dwarf_cfa_read_retaddr ( struct debugfile debugfile,
struct location_ctxt lctxt,
ADDR o_retaddr 
)

Definition at line 1609 of file dwarf_cfa.c.

int dwarf_cfa_read_saved_reg ( struct debugfile debugfile,
struct location_ctxt lctxt,
REG  reg,
REGVAL o_regval 
)

Definition at line 1392 of file dwarf_cfa.c.

int dwarf_load_cfa ( struct debugfile debugfile,
unsigned char *  buf,
unsigned int  len,
Dwarf *  dbg 
)

Definition at line 784 of file dwarf_cfa.c.

int dwarf_unload_cfa ( struct debugfile debugfile)

Definition at line 1802 of file dwarf_cfa.c.