/* * MacGDBp * Copyright (c) 2007 - 2009, Blue Static * * This program is free software; you can redistribute it and/or modify it under the terms of the GNU * General Public License as published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; if not, * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #import #import "SocketWrapper.h" #import "Breakpoint.h" #import "StackFrame.h" @protocol GDBpConnectionDelegate; @interface GDBpConnection : NSObject { int port; BOOL connected; /** * An ever-increasing integer that gives each transaction a unique ID for * the debugging engine. Managed by |-createCommand:|. */ int transactionID; /** * Human-readable status of the connection */ NSString* status; SocketWrapper* socket; id delegate; } @property (readonly, copy) NSString* status; @property (readonly) SocketWrapper* socket; @property (assign) id delegate; // initializer - (id)initWithPort:(int)aPort; // getter - (int)port; - (NSString*)remoteHost; - (BOOL)isConnected; - (NSArray*)getCurrentStack; // communication - (void)reconnect; - (void)run; - (void)stepIn; - (void)stepOut; - (void)stepOver; - (void)addBreakpoint:(Breakpoint*)bp; - (void)removeBreakpoint:(Breakpoint*)bp; // helpers - (NSArray*)getProperty:(NSString*)property; @end @protocol GDBpConnectionDelegate // Passes up errors from SocketWrapper and any other errors generated by the // GDBpConnection. - (void)errorEncountered:(NSString*)error; // Called when the socket connects. Passed up from SocketWrapper. - (void)debuggerConnected; // Called when we disconnect. - (void)debuggerDisconnected; @end