Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals

Debug Utility Library


Data Structures

struct  _PspDebugRegBlock
 Structure to hold the register data associated with an exception. More...
struct  _PspDebugStackTrace
 Structure to hold a single stack trace entry. More...
struct  _PspDebugProfilerRegs
 Structure to hold the psp profiler register values. More...

Typedefs

typedef _PspDebugRegBlock PspDebugRegBlock
 Structure to hold the register data associated with an exception.
typedef void(* PspDebugErrorHandler )(PspDebugRegBlock *regs)
 Defines a debug error handler.
typedef int(* PspDebugKprintfHandler )(const char *format, u32 *args)
 Type for Kprintf handler.
typedef _PspDebugStackTrace PspDebugStackTrace
 Structure to hold a single stack trace entry.
typedef _PspDebugProfilerRegs PspDebugProfilerRegs
 Structure to hold the psp profiler register values.
typedef int(* PspDebugPrintHandler )(const char *data, int len)
 Type for the debug print handlers.
typedef int(* PspDebugInputHandler )(char *data, int len)
 Type for the debug input handler.

Functions

void pspDebugScreenInit (void)
 Initialise the debug screen.
void pspDebugScreenPrintf (const char *fmt,...) __attribute__((format(printf
 Do a printf to the debug screen.
void void pspDebugScreenSetBackColor (u32 color)
 Set the background color for the text.
void pspDebugScreenSetTextColor (u32 color)
 Set the text color.
void pspDebugScreenPutChar (int x, int y, u32 color, u8 ch)
 Draw a single character to the screen.
void pspDebugScreenSetXY (int x, int y)
 Set the current X and Y co-ordinate for the screen (in character units).
int pspDebugScreenGetX (void)
 Get the current X co-ordinate (in character units).
int pspDebugScreenGetY (void)
 Get the current Y co-ordinate (in character units).
void pspDebugScreenClear (void)
 Clear the debug screen.
int pspDebugScreenPrintData (const char *buff, int size)
 Print non-nul terminated strings.
void pspDebugGetStackTrace (unsigned int *results, int max)
 Get a MIPS stack trace (might work :P).
int pspDebugInstallErrorHandler (PspDebugErrorHandler handler)
 Install an error handler to catch unhandled exceptions.
void pspDebugDumpException (PspDebugRegBlock *regs)
 Dump an exception to screen using the pspDebugScreen functions.
int pspDebugInstallKprintfHandler (PspDebugKprintfHandler handler)
 Install a Kprintf handler into the system.
int pspDebugGetStackTrace2 (PspDebugRegBlock *regs, PspDebugStackTrace *trace, int max)
 Do a stack trace from the current exception.
void pspDebugProfilerEnable (void)
 Enables the profiler hardware.
void pspDebugProfilerDisable (void)
 Disables the profiler hardware.
void pspDebugProfilerClear (void)
 Clear the profiler registers.
void pspDebugProfilerGetRegs (PspDebugProfilerRegs *regs)
 Get the profiler register state.
void pspDebugProfilerPrint (void)
 Print the profiler registers to screen.
int pspDebugInstallStdinHandler (PspDebugInputHandler handler)
 Install a handler for stdin (so you can use normal stdio functions).
int pspDebugInstallStdoutHandler (PspDebugPrintHandler handler)
 Install a print handler for stdout (so you can use normal print functions).
int pspDebugInstallStderrHandler (PspDebugPrintHandler handler)
 Install a print handler for stderr (so you can use normal print functions).
void pspDebugSioPutchar (int ch)
 Put a character to the remote sio.
int pspDebugSioGetchar (void)
 Get a character from the remote sio.
void pspDebugSioPuts (const char *str)
 Write a string to the sio port.
int pspDebugSioPutData (const char *data, int len)
 Write a set of data to the sio port.
void pspDebugSioInit (void)
 Initialise the remote SIO port (defaults to 4800 8N1).
void pspDebugSioSetBaud (int baud)
 Set the baud rate of the SIO, e.g.
void pspDebugEnablePutchar (void)
 Enable debug character output.
void pspDebugSioInstallKprintf (void)
 Install a kprintf debug putchar handler.
void pspDebugGdbStubInit (void)
 Install the gdb stub handler.
void pspDebugBreakpoint (void)
 Generate a breakpoint exception.


Typedef Documentation

typedef void(* PspDebugErrorHandler)(PspDebugRegBlock *regs)
 

Defines a debug error handler.

typedef int(* PspDebugInputHandler)(char *data, int len)
 

Type for the debug input handler.

typedef int(* PspDebugKprintfHandler)(const char *format, u32 *args)
 

Type for Kprintf handler.

typedef int(* PspDebugPrintHandler)(const char *data, int len)
 

Type for the debug print handlers.

typedef struct _PspDebugProfilerRegs PspDebugProfilerRegs
 

Structure to hold the psp profiler register values.

typedef struct _PspDebugRegBlock PspDebugRegBlock
 

Structure to hold the register data associated with an exception.

typedef struct _PspDebugStackTrace PspDebugStackTrace
 

Structure to hold a single stack trace entry.


Function Documentation

void pspDebugBreakpoint void   ) 
 

Generate a breakpoint exception.

void pspDebugDumpException PspDebugRegBlock regs  ) 
 

Dump an exception to screen using the pspDebugScreen functions.

Note:
This function will not setup the screen for debug output, you should call sceDebugScreenInit before using it if it isn't already.
Parameters:
regs - Pointer to a register block.

void pspDebugEnablePutchar void   ) 
 

Enable debug character output.

Needs to be called in order for the default Kprintf handler to work.

void pspDebugGdbStubInit void   ) 
 

Install the gdb stub handler.

void pspDebugGetStackTrace unsigned int *  results,
int  max
 

Get a MIPS stack trace (might work :P).

Parameters:
results - List of points to store the results of the trace, (up to max)
max - Maximum number of back traces

int pspDebugGetStackTrace2 PspDebugRegBlock regs,
PspDebugStackTrace trace,
int  max
 

Do a stack trace from the current exception.

Note:
This function really isn't too general purpose and it is more than likely to generate a few false positives but I consider that better then missing out calls entirely. You have to use your discretion, your code and a objdump to work out if some calls are completely surprious or not ;)
Parameters:
regs - Pointer to a register block from an exception.
trace - Pointer to an array of PspDebugStackTrace structures.
max - The maximum number of traces to make.
Returns:
The number of functions found.

int pspDebugInstallErrorHandler PspDebugErrorHandler  handler  ) 
 

Install an error handler to catch unhandled exceptions.

Parameters:
handler - Pointer to a handler function. If set to NULL it will default to resetting the screen and dumping the error.
Returns:
< 0 on error

int pspDebugInstallKprintfHandler PspDebugKprintfHandler  handler  ) 
 

Install a Kprintf handler into the system.

Parameters:
handler - Function pointer to the handler.
Returns:
< 0 on error.

int pspDebugInstallStderrHandler PspDebugPrintHandler  handler  ) 
 

Install a print handler for stderr (so you can use normal print functions).

Parameters:
handler - A pointer to print handler, NULL to disable.
Returns:
< 0 on error, else 0.

int pspDebugInstallStdinHandler PspDebugInputHandler  handler  ) 
 

Install a handler for stdin (so you can use normal stdio functions).

Parameters:
handler - A pointer to input handler, NULL to disable.
Returns:
< 0 on error, else 0.

int pspDebugInstallStdoutHandler PspDebugPrintHandler  handler  ) 
 

Install a print handler for stdout (so you can use normal print functions).

Parameters:
handler - A pointer to print handler, NULL to disable.
Returns:
< 0 on error, else 0.

void pspDebugProfilerClear void   ) 
 

Clear the profiler registers.

void pspDebugProfilerDisable void   ) 
 

Disables the profiler hardware.

void pspDebugProfilerEnable void   ) 
 

Enables the profiler hardware.

void pspDebugProfilerGetRegs PspDebugProfilerRegs regs  ) 
 

Get the profiler register state.

Parameters:
regs - A pointer to a PspDebugProfilerRegs structure.

void pspDebugProfilerPrint void   ) 
 

Print the profiler registers to screen.

void pspDebugScreenClear void   ) 
 

Clear the debug screen.

int pspDebugScreenGetX void   ) 
 

Get the current X co-ordinate (in character units).

Returns:
The X co-ordinate

int pspDebugScreenGetY void   ) 
 

Get the current Y co-ordinate (in character units).

Returns:
The Y co-ordinate

void pspDebugScreenInit void   ) 
 

Initialise the debug screen.

int pspDebugScreenPrintData const char *  buff,
int  size
 

Print non-nul terminated strings.

Parameters:
buff - Buffer containing the text.
size - Size of the data
Returns:
The number of characters written

void pspDebugScreenPrintf const char *  fmt,
  ...
 

Do a printf to the debug screen.

Parameters:
fmt - Format string to print
... - Arguments

void pspDebugScreenPutChar int  x,
int  y,
u32  color,
u8  ch
 

Draw a single character to the screen.

Parameters:
x - The x co-ordinate to draw to (pixel units)
y - The y co-ordinate to draw to (pixel units)
color - The text color to draw
ch - The character to draw

void void pspDebugScreenSetBackColor u32  color  ) 
 

Set the background color for the text.

Note:
To reset the entire screens bg colour you need to call pspDebugScreenClear
Parameters:
color - A 32bit RGB colour

void pspDebugScreenSetTextColor u32  color  ) 
 

Set the text color.

Parameters:
color - A 32 bit RGB color

void pspDebugScreenSetXY int  x,
int  y
 

Set the current X and Y co-ordinate for the screen (in character units).

int pspDebugSioGetchar void   ) 
 

Get a character from the remote sio.

Returns:
The character read or -1 if no characters available.

void pspDebugSioInit void   ) 
 

Initialise the remote SIO port (defaults to 4800 8N1).

Note:
will delay 2 seconds to wait for the power to come up.

void pspDebugSioInstallKprintf void   ) 
 

Install a kprintf debug putchar handler.

Implicitly calls pspDebugEnablePutchar so you do not need to call it explicitly. Sio must be initialised before calling this function however.

void pspDebugSioPutchar int  ch  ) 
 

Put a character to the remote sio.

Parameters:
ch - Character to write.

int pspDebugSioPutData const char *  data,
int  len
 

Write a set of data to the sio port.

Parameters:
data - Pointer to the data to send.
len - Length of the data.
Returns:
Number of characters written.

void pspDebugSioPuts const char *  str  ) 
 

Write a string to the sio port.

Parameters:
str - String to write.

void pspDebugSioSetBaud int  baud  ) 
 

Set the baud rate of the SIO, e.g.

4800/9600..115200.

Parameters:
baud - The baudrate to set.


Generated on Wed Sep 28 07:54:55 2005 for pspsdk-1.0+beta by  doxygen 1.4.4