bgp-debugger-interface.h File Reference

#include <stdint.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
#include <bpcore/bgp_types.h>

Go to the source code of this file.

Data Structures

struct  DebuggerInterface::BG_GPRSet_t
struct  DebuggerInterface::BG_FPR_t
struct  DebuggerInterface::BG_FPRSet_t
struct  DebuggerInterface::BG_DebugSet_t
struct  DebuggerInterface::BG_Stack_Info_t
struct  DebuggerInterface::BG_Process_Data_t
struct  DebuggerInterface::BG_Thread_Data_t
class  DebuggerInterface::BG_Debugger_Msg
struct  DebuggerInterface::BG_Debugger_Msg::Header
union  DebuggerInterface::BG_Debugger_Msg::DataArea

Namespaces

namespace  DebuggerInterface

Defines

#define fprintf   wrap_fprintf
#define BG_Debugger_PROTOCOL_VERSION   6
#define BG_DEBUGGER_WRITE_PIPE   3
#define BG_DEBUGGER_READ_PIPE   4
#define BG_PIPE_TIMEOUT   10
#define BG_Debugger_MAX_THREAD_IDS   32
#define BG_Debugger_AUX_VECS_BUFFER   1024
 Buffer size for GET_AUX_VECTORS request.
#define BG_Debugger_MAX_STACK_FRAMES   400
 Number of stack frames returned from compute node.
#define BG_Debugger_Msg_MAX_SIZE   4096
#define BG_Debugger_Msg_HEADER_SIZE   24
#define BG_Debugger_Msg_MAX_PAYLOAD_SIZE   (BG_Debugger_Msg_MAX_SIZE-BG_Debugger_Msg_HEADER_SIZE)
#define BG_Debugger_Msg_MAX_MEM_SIZE   4064

Typedefs

typedef uint32_t DebuggerInterface::BG_NodeNum_t
typedef uint32_t DebuggerInterface::BG_ThreadID_t
typedef uint32_t DebuggerInterface::BG_GPR_t
typedef uint32_t DebuggerInterface::BG_Addr_t

Enumerations

enum  DebuggerInterface::BG_GPR_Num_t {
  DebuggerInterface::BG_GPR0 = 0, DebuggerInterface::BG_GPR1, DebuggerInterface::BG_GPR2, DebuggerInterface::BG_GPR3,
  DebuggerInterface::BG_GPR4, DebuggerInterface::BG_GPR5, DebuggerInterface::BG_GPR6, DebuggerInterface::BG_GPR7,
  DebuggerInterface::BG_GPR8, DebuggerInterface::BG_GPR9, DebuggerInterface::BG_GPR10, DebuggerInterface::BG_GPR11,
  DebuggerInterface::BG_GPR12, DebuggerInterface::BG_GPR13, DebuggerInterface::BG_GPR14, DebuggerInterface::BG_GPR15,
  DebuggerInterface::BG_GPR16, DebuggerInterface::BG_GPR17, DebuggerInterface::BG_GPR18, DebuggerInterface::BG_GPR19,
  DebuggerInterface::BG_GPR20, DebuggerInterface::BG_GPR21, DebuggerInterface::BG_GPR22, DebuggerInterface::BG_GPR23,
  DebuggerInterface::BG_GPR24, DebuggerInterface::BG_GPR25, DebuggerInterface::BG_GPR26, DebuggerInterface::BG_GPR27,
  DebuggerInterface::BG_GPR28, DebuggerInterface::BG_GPR29, DebuggerInterface::BG_GPR30, DebuggerInterface::BG_GPR31 = 31,
  DebuggerInterface::BG_FPSCR = 32, DebuggerInterface::BG_LR = 33, DebuggerInterface::BG_CR = 34, DebuggerInterface::BG_XER = 35,
  DebuggerInterface::BG_CTR = 36, DebuggerInterface::BG_IAR = 37, DebuggerInterface::BG_MSR = 38, DebuggerInterface::BG_DEAR = 39,
  DebuggerInterface::BG_ESR = 40
}
enum  DebuggerInterface::BG_FPR_Num_t {
  DebuggerInterface::BG_FPR0 = 0, DebuggerInterface::BG_FPR1, DebuggerInterface::BG_FPR2, DebuggerInterface::BG_FPR3,
  DebuggerInterface::BG_FPR4, DebuggerInterface::BG_FPR5, DebuggerInterface::BG_FPR6, DebuggerInterface::BG_FPR7,
  DebuggerInterface::BG_FPR8, DebuggerInterface::BG_FPR9, DebuggerInterface::BG_FPR10, DebuggerInterface::BG_FPR11,
  DebuggerInterface::BG_FPR12, DebuggerInterface::BG_FPR13, DebuggerInterface::BG_FPR14, DebuggerInterface::BG_FPR15,
  DebuggerInterface::BG_FPR16, DebuggerInterface::BG_FPR17, DebuggerInterface::BG_FPR18, DebuggerInterface::BG_FPR19,
  DebuggerInterface::BG_FPR20, DebuggerInterface::BG_FPR21, DebuggerInterface::BG_FPR22, DebuggerInterface::BG_FPR23,
  DebuggerInterface::BG_FPR24, DebuggerInterface::BG_FPR25, DebuggerInterface::BG_FPR26, DebuggerInterface::BG_FPR27,
  DebuggerInterface::BG_FPR28, DebuggerInterface::BG_FPR29, DebuggerInterface::BG_FPR30, DebuggerInterface::BG_FPR31 = 31
}
enum  DebuggerInterface::BG_MsgType_t {
  DebuggerInterface::GET_REG = 0, DebuggerInterface::GET_ALL_REGS, DebuggerInterface::SET_REG, DebuggerInterface::GET_MEM,
  DebuggerInterface::SET_MEM, DebuggerInterface::GET_FLOAT_REG, DebuggerInterface::GET_ALL_FLOAT_REGS, DebuggerInterface::SET_FLOAT_REG,
  DebuggerInterface::SINGLE_STEP, DebuggerInterface::CONTINUE, DebuggerInterface::KILL, DebuggerInterface::ATTACH,
  DebuggerInterface::DETACH, DebuggerInterface::GET_REG_ACK, DebuggerInterface::GET_ALL_REGS_ACK, DebuggerInterface::SET_REG_ACK,
  DebuggerInterface::GET_MEM_ACK, DebuggerInterface::SET_MEM_ACK, DebuggerInterface::GET_FLOAT_REG_ACK, DebuggerInterface::GET_ALL_FLOAT_REGS_ACK,
  DebuggerInterface::SET_FLOAT_REG_ACK, DebuggerInterface::SINGLE_STEP_ACK, DebuggerInterface::CONTINUE_ACK, DebuggerInterface::KILL_ACK,
  DebuggerInterface::ATTACH_ACK, DebuggerInterface::DETACH_ACK, DebuggerInterface::SIGNAL_ENCOUNTERED, DebuggerInterface::PROGRAM_EXITED,
  DebuggerInterface::VERSION_MSG, DebuggerInterface::VERSION_MSG_ACK, DebuggerInterface::GET_DEBUG_REGS, DebuggerInterface::GET_DEBUG_REGS_ACK,
  DebuggerInterface::SET_DEBUG_REGS, DebuggerInterface::SET_DEBUG_REGS_ACK, DebuggerInterface::GET_THREAD_INFO, DebuggerInterface::GET_THREAD_INFO_ACK,
  DebuggerInterface::THREAD_ALIVE, DebuggerInterface::THREAD_ALIVE_ACK, DebuggerInterface::GET_THREAD_ID, DebuggerInterface::GET_THREAD_ID_ACK,
  DebuggerInterface::SET_THREAD_OPS, DebuggerInterface::SET_THREAD_OPS_ACK, DebuggerInterface::GET_REGS_AND_FLOATS, DebuggerInterface::GET_REGS_AND_FLOATS_ACK,
  DebuggerInterface::GET_AUX_VECTORS, DebuggerInterface::GET_AUX_VECTORS_ACK, DebuggerInterface::GET_STACK_TRACE, DebuggerInterface::GET_STACK_TRACE_ACK,
  DebuggerInterface::END_DEBUG, DebuggerInterface::END_DEBUG_ACK, DebuggerInterface::GET_PROCESS_DATA, DebuggerInterface::GET_PROCESS_DATA_ACK,
  DebuggerInterface::GET_THREAD_DATA, DebuggerInterface::GET_THREAD_DATA_ACK, DebuggerInterface::HOLD_THREAD, DebuggerInterface::HOLD_THREAD_ACK,
  DebuggerInterface::RELEASE_THREAD, DebuggerInterface::RELEASE_THREAD_ACK, DebuggerInterface::SIGACTION, DebuggerInterface::SIGACTION_ACK,
  DebuggerInterface::MAP_MEM, DebuggerInterface::MAP_MEM_ACK, DebuggerInterface::FAST_TRAP, DebuggerInterface::FAST_TRAP_ACK,
  DebuggerInterface::DEBUG_IGNORE_SIG, DebuggerInterface::DEBUG_IGNORE_SIG_ACK, DebuggerInterface::THIS_SPACE_FOR_RENT
}
enum  DebuggerInterface::BG_Thread_State_t {
  DebuggerInterface::Running = 1, DebuggerInterface::Sleeping, DebuggerInterface::Waiting, DebuggerInterface::Zombie,
  DebuggerInterface::Idle
}
enum  DebuggerInterface::BG_ErrorCode_t {
  DebuggerInterface::RC_NO_ERROR = 0, DebuggerInterface::RC_NOT_ATTACHED = 1, DebuggerInterface::RC_NOT_RUNNING = 2, DebuggerInterface::RC_BAD_NODE = 3,
  DebuggerInterface::RC_BAD_THREAD = 4, DebuggerInterface::RC_BAD_COMMAND = 5, DebuggerInterface::RC_BAD_REGISTER = 6, DebuggerInterface::RC_NOT_APP_SPACE = 7,
  DebuggerInterface::RC_LEN_TOO_LONG = 8, DebuggerInterface::RC_DENIED = 9, DebuggerInterface::RC_BAD_SIGNAL = 10, DebuggerInterface::RC_NOT_STOPPED = 11,
  DebuggerInterface::RC_NOT_INITIALIZED = 12, DebuggerInterface::RC_TIMEOUT = 13
}

Variables

volatile time_t DebuggerInterface::DebuggerReadStarted
volatile time_t DebuggerInterface::DebuggerWriteStarted
volatile int DebuggerInterface::AbortPipeIO

Define Documentation

#define BG_Debugger_AUX_VECS_BUFFER   1024

Buffer size for GET_AUX_VECTORS request.

Definition at line 50 of file bgp-debugger-interface.h.

#define BG_Debugger_MAX_STACK_FRAMES   400

Number of stack frames returned from compute node.

Definition at line 53 of file bgp-debugger-interface.h.

#define BG_Debugger_MAX_THREAD_IDS   32

Definition at line 47 of file bgp-debugger-interface.h.

#define BG_Debugger_Msg_HEADER_SIZE   24

Definition at line 458 of file bgp-debugger-interface.h.

#define BG_Debugger_Msg_MAX_MEM_SIZE   4064
#define BG_Debugger_Msg_MAX_PAYLOAD_SIZE   (BG_Debugger_Msg_MAX_SIZE-BG_Debugger_Msg_HEADER_SIZE)

Definition at line 459 of file bgp-debugger-interface.h.

#define BG_Debugger_Msg_MAX_SIZE   4096

Definition at line 457 of file bgp-debugger-interface.h.

#define BG_Debugger_PROTOCOL_VERSION   6

Definition at line 40 of file bgp-debugger-interface.h.

#define BG_DEBUGGER_READ_PIPE   4

Definition at line 43 of file bgp-debugger-interface.h.

Referenced by BG_AuxvReader::check_buffer().

#define BG_DEBUGGER_WRITE_PIPE   3

Definition at line 42 of file bgp-debugger-interface.h.

Referenced by BG_AuxvReader::check_buffer().

#define BG_PIPE_TIMEOUT   10

Definition at line 44 of file bgp-debugger-interface.h.

#define fprintf   wrap_fprintf

Definition at line 27 of file bgp-debugger-interface.h.

Referenced by StatContainer::add(), Dyninst::AnnotatableSparse::addAnnotation(), Dyninst::AnnotatableDense::addAnnotation(), Dyninst::SymtabAPI::Symtab::addLibraryPrereq(), Dyninst::SymtabAPI::localVarCollection::addLocalVar(), Dyninst::SymtabAPI::emitElf64::addSectionHeaderTable(), Dyninst::SymtabAPI::Symtab::addSymbol(), Dyninst::SymtabAPI::Symtab::addSysVDynamic(), Dyninst::SymtabAPI::Symtab::addUserRegion(), Dyninst::SymtabAPI::Symtab::addUserType(), Dyninst::annotations_debug_init(), Dyninst::AnnotatableSparse::annotationsReport(), Dyninst::AnnotatableDense::annotationsReport(), calcCyclesPerSecond_invent(), MappedFile::clean_up(), Dyninst::SymtabAPI::typeCollection::clearNumberedTypes(), MappedFile::close_file(), MappedFile::closeMappedFile(), NS_x86::convert_to_rel32(), NS_x86::convert_to_rel8(), Dyninst::SymtabAPI::emitElf::createElfSymbol(), Dyninst::SymtabAPI::emitElf64::createElfSymbol(), Dyninst::SymtabAPI::Symtab::createFunction(), Dyninst::SymtabAPI::emitElf::createLoadableSections(), Dyninst::SymtabAPI::emitElf64::createLoadableSections(), Dyninst::SymtabAPI::emitElf64::createNonLoadableSections(), Dyninst::createSerializer(), Dyninst::SymtabAPI::Symtab::createVariable(), Dyninst::SymtabAPI::SymbolIter::currval(), Dyninst::SymtabAPI::stab_entry_64::desc(), Dyninst::SymtabAPI::stab_entry_32::desc(), Dyninst::deserialize_container_item(), Dyninst::SymtabAPI::typeCollection::doDeferredLookups(), dummy_bs(), DebuggerInterface::BG_Debugger_Msg::dump(), Dyninst::AnnotationClassBase::dumpAnnotationClasses(), DebuggerInterface::BG_Debugger_Msg::dumpDebugSet(), DebuggerInterface::BG_Debugger_Msg::dumpFPRSet(), DebuggerInterface::BG_Debugger_Msg::dumpGPRSet(), dwarf_get_fde_info_for_cfa_reg3(), Dyninst::Elf_X::Elf_X(), Dyninst::SymtabAPI::Symtab::emit(), Dyninst::end_xml_elem(), Dyninst::SymtabAPI::typeCommon::endCommonBlock(), enumLocalSymbols(), Dyninst::SymtabAPI::Symtab::extractInfo(), Dyninst::SymtabAPI::Symtab::extractSymbolsFromFile(), Dyninst::SymtabAPI::Field::Field(), Dyninst::SymtabAPI::Object::fillExceptionTable(), Dyninst::AnnotationClassBase::findAnnotationClass(), Dyninst::SymtabAPI::Symtab::findFunctionsByName(), Dyninst::SymtabAPI::Object::FindInterestingSections(), Dyninst::SymtabAPI::emitElf::fixPhdrs(), Dyninst::SymtabAPI::emitElf64::fixPhdrs(), Dyninst::SymtabAPI::Symtab::fixSymModule(), Dyninst::SymtabAPI::Symtab::fixSymModules(), Dyninst::SymtabAPI::Symtab::fixup_SymbolAddr(), Dyninst::get_container(), NS_x86::get_immediate_operand(), Dyninst::SymtabAPI::Object::get_relocation_entries(), Dyninst::SymtabAPI::Module::getAllGlobalVars(), Dyninst::SymtabAPI::Module::getAllTypes(), getArrayType(), getBaseType(), Dyninst::SerDesBin::getDefaultCacheDir(), Dyninst::SymtabAPI::Symtab::getElfDynamicOffset(), Dyninst::SymtabAPI::Symtab::getFreeOffset(), getFunctionType(), getLayeredType(), Dyninst::SymtabAPI::Module::getLineInformation(), Dyninst::SymtabAPI::Symtab::getObject(), Dyninst::SymtabAPI::Aggregate::getOffset(), getPointerType(), Dyninst::SymtabAPI::Aggregate::getRegion(), Dyninst::SymtabAPI::Symtab::getRegValueAtFrame(), Dyninst::SymtabAPI::Aggregate::getSize(), getType(), getTypedefType(), getUDTType(), Dyninst::SymtabAPI::Symbol::getVersionFileName(), Dyninst::SymtabAPI::Symbol::getVersions(), Dyninst::SymtabAPI::Module::hasLineInformation(), Dyninst::SymtabAPI::Symtab::hasStackwalkDebugInfo(), NS_x86::ia32_decode(), NS_x86::ia32_decode_operands(), Dyninst::ifxml_end_element(), Dyninst::ifxml_start_element(), Dyninst::SerDesBin::init(), Dyninst::SerDesBin::invalidateCache(), Dyninst::SymtabAPI::Symtab::isCode(), Dyninst::SymtabAPI::Symtab::isData(), Dyninst::isEOF(), Dyninst::SymtabAPI::Object::load_object(), Dyninst::SymtabAPI::Object::loaded_elf(), log_msg(), Dyninst::SerDesBin::magic_check(), Dyninst::SymtabAPI::stab_entry_64::name(), Dyninst::SymtabAPI::stab_entry_32::name(), Dyninst::SymtabAPI::stab_entry_64::nameIdx(), Dyninst::SymtabAPI::stab_entry_32::nameIdx(), MappedFile::open_file(), Dyninst::SymtabAPI::Symtab::openFile(), Dyninst::SymtabAPI::Module::operator==(), Dyninst::SymtabAPI::Aggregate::operator==(), Dyninst::AnnotatableSparse::operator==(), Dyninst::SymtabAPI::emitElfUtils::orderLoadableSections(), Dyninst::SymtabAPI::stab_entry_64::other(), Dyninst::SymtabAPI::stab_entry_32::other(), P_socketRead(), Dyninst::SymtabAPI::Object::parse_aout(), Dyninst::SymtabAPI::Object::parseDwarfFileLineInfo(), Dyninst::SymtabAPI::Symtab::parseLineInformation(), parseRangeType(), Dyninst::SymtabAPI::Object::parseStabFileLineInfo(), Dyninst::SymtabAPI::parseStabString(), Dyninst::SymtabAPI::Object::parseStabTypes(), Dyninst::SymtabAPI::Object::ParseSymbolInfo(), Dyninst::SymtabAPI::Symtab::parseTypes(), Dyninst::ArgTree::print(), NS_x86::ia32_memacc::print(), NS_x86::instruction::print(), print_symbols(), Dyninst::Graph::printDOT(), printEventpoints(), printModuleInfo(), Dyninst::printSerErr(), printSysError(), AuxvParser::readAuxvFromProc(), Dyninst::SerDesBin::readHeaderAndVerify(), Dyninst::AnnotatableSparse::removeAnnotation(), Dyninst::AnnotatableDense::removeAnnotation(), Dyninst::SymtabAPI::Symtab::removeLibraryDependency(), Dyninst::SerDesBin::resolveCachePath(), Dyninst::sd_translate(), Dyninst::SerFile::SerFile(), Dyninst::serialize_debug_init(), Dyninst::AnnotatableSparse::serializeAnnotations(), Dyninst::AnnotatableDense::serializeAnnotations(), Dyninst::SerializerBin::SerializerBin(), Dyninst::SymtabAPI::fileOpener::set(), Dyninst::SymtabAPI::Module::setLineInfo(), Dyninst::SymtabAPI::Function::setupParams(), setVersion(), Dyninst::SymtabAPI::Symbol::setVersionFileName(), Dyninst::SymtabAPI::Symbol::setVersions(), Dyninst::start_xml_elem(), SymEnumSymbolsCallback(), Dyninst::SymtabAPI::Symtab::Symtab(), sysctl_getInitialLWP(), Dyninst::SerDesBin::translate(), Dyninst::SymtabAPI::stab_entry_64::type(), Dyninst::SymtabAPI::stab_entry_32::type(), Mutex::unlock(), MappedFile::unmap_file(), Dyninst::SymtabAPI::stab_entry_64::val(), Dyninst::SymtabAPI::stab_entry_32::val(), Dyninst::write_xml_elem(), wtxDisconnect(), wtxLoadObject(), wtxReadMem(), wtxSuspendTask(), wtxWriteMem(), Dyninst::AnnotatableSparse::~AnnotatableSparse(), Dyninst::SymtabAPI::fieldListType::~fieldListType(), Dyninst::SymtabAPI::Function::~Function(), Dyninst::SymtabAPI::Module::~Module(), and Dyninst::SymtabAPI::Symbol::~Symbol().

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1