TelnetDebugger

Engine/source/console/telnetDebugger.h

Telnet debug service implementation.

More...

Classes:

Private Types

enum
_Anonymous_ {
  Version = 2
  PasswordMaxLength = 32
  MaxCommandSize = 2048
}
enum
State {
  NotConnected 
  PasswordTry 
  Initialize 
  Connected 
}

Private Functions

addBreakpoint(const char * fileName, S32 line, bool clear, S32 passCount, const char * evalString)
addVariableBreakpoint(const char * varName, S32 passCount, const char * evalString)
dumpBreakableList(const char * fileName)
evaluateExpression(const char * tag, S32 frame, const char * evalBuffer)
Breakpoint **
findBreakpoint(StringTableEntry fileName, S32 lineNumber)
removeBreakpoint(const char * fileName, S32 line)

Public Static Functions

Public Functions

Detailed Description

Telnet debug service implementation.

This is the C++ side of the built-in Torque debugger.

To use the debugger, use dbgSetParameters(port, password); in the console of the server to enable debugger connections. Then on some other system, start up the app (you don't have to start a game or connect to the server) and exec("common/debugger/debugger.tscript"); in the console. Then use the debugger GUI to connect to the server with the right port and password.

see:

http://www.planettribes.com/tribes2/editing.shtml for more thorough discussion.

Private Types

@67

Enumerator

Version = 2
PasswordMaxLength = 32
MaxCommandSize = 2048
State

Enumerator

NotConnected
PasswordTry
Initialize
Connected

Private Attributes

S32 mAcceptPort 
NetSocket mAcceptSocket 
bool mBreakOnNextStatement 
Breakpoint * mBreakpoints 
S32 mCurPos 
char mDebuggerPassword [PasswordMaxLength+1]
NetSocket mDebugSocket 
char mLineBuffer [MaxCommandSize]
bool mProgramPaused 
S32 mStackPopBreakIndex 
S32 mState 
bool mWaitForClient 

Private Functions

TelnetDebugger()

~TelnetDebugger()

addBreakpoint(const char * fileName, S32 line, bool clear, S32 passCount, const char * evalString)

addVariableBreakpoint(const char * varName, S32 passCount, const char * evalString)

checkDebugRecv()

debugBreakNext()

debugContinue()

debugStepIn()

debugStepOut()

debugStepOver()

dumpBreakableList(const char * fileName)

dumpFileList()

evaluateExpression(const char * tag, S32 frame, const char * evalBuffer)

findBreakpoint(StringTableEntry fileName, S32 lineNumber)

processLineBuffer(S32 )

removeAllBreakpoints()

removeBreakpoint(const char * fileName, S32 line)

removeBreakpointsFromCode(CodeBlock * code)

removeVariableBreakpoint(const char * varName)

sendBreak()

setBreakOnNextStatement(bool enabled)

Public Static Functions

create()

destroy()

Public Functions

addAllBreakpoints(CodeBlock * code)

breakProcess()

clearCodeBlockPointers(CodeBlock * code)

disconnect()

executionStopped(CodeBlock * code, U32 lineNumber)

isConnected()

popStackFrame()

process()

processConsoleLine(const char * consoleLine)

pushStackFrame()

send(const char * s)

setDebugParameters(S32 port, const char * password, bool waitForClient)