klee
StatsTracker.cpp File Reference
#include "StatsTracker.h"
#include "ExecutionState.h"
#include "klee/Config/Version.h"
#include "klee/Module/InstructionInfoTable.h"
#include "klee/Module/KInstruction.h"
#include "klee/Module/KModule.h"
#include "klee/Solver/SolverStats.h"
#include "klee/Statistics/Statistics.h"
#include "klee/Support/ErrorHandling.h"
#include "klee/Support/ModuleUtil.h"
#include "klee/System/MemoryUsage.h"
#include "CallPathManager.h"
#include "CoreStats.h"
#include "Executor.h"
#include "MemoryManager.h"
#include "UserSearcher.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
#include <fstream>
#include <unistd.h>
Include dependency graph for StatsTracker.cpp:

Go to the source code of this file.

Typedefs

typedef std::map< Instruction *, std::vector< Function * > > calltargets_ty
 

Functions

static bool instructionIsCoverable (Instruction *i)
 
std::string sqlite3ErrToStringAndFree (const std::string &prefix, char *sqlite3ErrMsg)
 
static std::vector< Instruction * > getSuccs (Instruction *i)
 

Variables

static calltargets_ty callTargets
 
static std::map< Function *, std::vector< Instruction * > > functionCallers
 
static std::map< Function *, unsigned > functionShortestPath
 

Typedef Documentation

◆ calltargets_ty

typedef std::map<Instruction*, std::vector<Function*> > calltargets_ty

Definition at line 735 of file StatsTracker.cpp.

Function Documentation

◆ getSuccs()

static std::vector< Instruction * > getSuccs ( Instruction *  i)
static

Definition at line 741 of file StatsTracker.cpp.

Referenced by klee::StatsTracker::computeReachableUncovered().

Here is the caller graph for this function:

◆ instructionIsCoverable()

static bool instructionIsCoverable ( Instruction *  i)
static

Check for special cases where we statically know an instruction is uncoverable. Currently the case is an unreachable instruction following a noreturn call; the instruction is really only there to satisfy LLVM's termination requirement.

Definition at line 133 of file StatsTracker.cpp.

References klee::getDirectCallTarget(), LLVM_VERSION, and LLVM_VERSION_CODE.

Referenced by klee::StatsTracker::StatsTracker(), and klee::StatsTracker::stepInstruction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sqlite3ErrToStringAndFree()

std::string sqlite3ErrToStringAndFree ( const std::string &  prefix,
char *  sqlite3ErrMsg 
)

Definition at line 158 of file StatsTracker.cpp.

Referenced by klee::StatsTracker::StatsTracker(), and klee::StatsTracker::writeStatsHeader().

Here is the caller graph for this function:

Variable Documentation

◆ callTargets

calltargets_ty callTargets
static

Definition at line 737 of file StatsTracker.cpp.

Referenced by klee::StatsTracker::computeReachableUncovered().

◆ functionCallers

std::map<Function*, std::vector<Instruction*> > functionCallers
static

Definition at line 738 of file StatsTracker.cpp.

Referenced by klee::StatsTracker::computeReachableUncovered().

◆ functionShortestPath

std::map<Function*, unsigned> functionShortestPath
static

Definition at line 739 of file StatsTracker.cpp.

Referenced by klee::StatsTracker::computeReachableUncovered().