blob: f248bf3c9222abf0a76b5ebf79b706277a35064f [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2005 The Regents of the University of California.
* This material was produced under U.S. Government contract W-7405-ENG-36
* for Los Alamos National Laboratory, which is operated by the University
* of California for the U.S. Department of Energy. The U.S. Government has
* rights to use, reproduce, and distribute this software. NEITHER THE
* GOVERNMENT NOR THE UNIVERSITY MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
* ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified
* to produce derivative works, such modified software should be clearly
* marked, so as not to confuse it with the version available from LANL.
*
* Additionally, this program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* LA-CC 04-115
******************************************************************************/
#ifndef _DBG_H_
#define _DBG_H_
#include <stdarg.h>
#include "session.h"
#include "bitset.h"
#include "breakpoint.h"
#include "stackframe.h"
#include "memoryinfo.h"
#include "disassembly.h"
#include "dbg_error.h"
#include "dbg_event.h"
#include "list.h"
#include "proxy.h"
#define DBGRES_OK PTP_PROXY_RES_OK
#define DBGRES_ERR PTP_PROXY_RES_ERR
/*
* Session control
*/
extern int DbgInit(session **, int, char *[]);
extern int DbgConnect(session *);
extern int DbgCreate(session *);
extern void DbgRegisterEventHandler(session *, void (*)(dbg_event *, void *), void *);
extern int DbgStartSession(session *, char *, char *, char *);
extern int DbgQuit(session *);
/*
* Breakpoint operations
*/
extern int DbgSetLineBreakpoint(session *s, bitset *set, int bpid, char *file, int line);
extern int DbgSetFuncBreakpoint(session *s, bitset *set, int bpid, char *file, char *func);
extern int DbgDeleteBreakpoint(session *s, bitset *set, int bpid);
/*
* Process control operations
*/
extern int DbgGo(session *s, bitset *set);
extern int DbgStep(session *s, bitset *set, int count, int type);
extern int DbgTerminate(session *s, bitset *set);
extern int DbgSuspend(session *s, bitset *set);
/*
* Stack frame operations
*/
extern int DbgListStackframes(session *s, bitset *set, int low, int high);
extern int DbgSetCurrentStackframe(session *s, bitset *set, int level);
/*
* Expression/variable operations
*/
extern int DbgEvaluateExpression(session *s, bitset *set, char *exp);
extern int DbgGetType(session *s, bitset *set, char *exp);
extern int DbgListLocalVariables(session *s, bitset *set);
extern int DbgListArguments(session *s, bitset *set, int, int);
extern int DbgListGlobalVariables(session *s, bitset *set);
/**
* Thread operations
*/
extern int DbgListInfoThreads(session *s, bitset *set);
extern int DbgSetThreadSelect(session *s, bitset *set, int);
extern int DbgStackInfoDepth(session *s, bitset *set);
/**
* Memory operations
*/
extern int DbgDataReadMemory(session *s, bitset *set, long, char*, char*, int, int, int, char*);
extern int DbgDataWriteMemory(session *s, bitset *set, long, char*, char*, int, char*);
/*
* Event Handling
*/
extern int DbgProgress(session *);
extern void DbgRegisterReadFileHandler(session *s, int, int (*)(int, void *), void *);
extern void DbgRegisterWriteFileHandler(session *s, int, int (*)(int, void *), void *);
extern void DbgRegisterExceptFileHandler(session *s, int, int (*)(int, void *), void *);
extern void DbgUnregisterFileHandler(session *s, int);
extern void DbgRegisterEventHandler(session *s, void (*)(dbg_event *, void *), void *);
/*
* Error Handling
*/
extern void DbgSetError(int, char *);
extern int DbgGetError(void);
extern char * DbgGetErrorStr(void);
/*
* CLI Handling
*/
extern int DbgCLIHandle(session *s, bitset *set, char*);
/*
* Signal operations
*/
extern int DbgListSignals(session *s, bitset *set, char*);
extern int DbgSignalInfo(session *s, bitset *set, char*);
/*
* New functions
*/
extern int DbgDeletePartialExpression(session *s, bitset *set, char*);
extern int DbgEvaluatePartialExpression(session *s, bitset *set, char*, char *, int, int);
#endif /* _DBG_H_ */