haiku/headers/private/debug/DebugContext.h

59 lines
1.5 KiB
C++

/*
* Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _DEBUG_CONTEXT_H
#define _DEBUG_CONTEXT_H
#include <debug_support.h>
class BDebugContext {
public:
BDebugContext();
~BDebugContext();
status_t Init(team_id team, port_id nubPort);
void Uninit();
team_id Team() const { return fContext.team; }
port_id NubPort() const { return fContext.nub_port; }
port_id ReplyPort() const
{ return fContext.reply_port; }
status_t SendDebugMessage(int32 messageCode,
const void *message, size_t messageSize,
void* reply, size_t replySize);
status_t SetTeamDebuggingFlags(int32 flags);
ssize_t ReadMemoryPartial(const void* address,
void* buffer, size_t size);
ssize_t ReadMemory(const void* address,
void* buffer, size_t size);
ssize_t ReadString(const void* address,
char* buffer, size_t size);
status_t SetBreakpoint(void* address);
status_t ClearBreakpoint(void* address);
status_t SetWatchpoint(void* address, uint32 type,
int32 length);
status_t ClearWatchpoint(void* address);
status_t ContinueThread(thread_id thread,
bool singleStep = false);
status_t SetThreadDebuggingFlags(thread_id thread,
int32 flags);
status_t GetThreadCpuState(thread_id thread,
debug_debugger_message* _messageCode,
debug_cpu_state* cpuState);
protected:
debug_context fContext;
};
#endif // _DEBUG_CONTEXT_H