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 pspDebugScreenInitEx (void *vram_base, int mode, int setup)
 Extended debug screen init.
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 pspDebugScreenSetColorMode (int mode)
 Set the color mode (you must have switched the frame buffer appropriately).
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).
void pspDebugScreenSetOffset (int offset)
 Set the video ram offset used for the screen.
void pspDebugScreenSetBase (u32 *base)
 Set the video ram base used for the screen.
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.
int pspDebugScreenPuts (const char *str)
 Print a string.
int 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.
int pspDebugSioPutText (const char *data, int len)
 Write a set of data to the sio port converting single line feeds to CRLF and single CR to CRLF.
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.
void pspDebugSioEnableKprintf (void)
 Enable the kprintf handler (once installed).
void pspDebugSioDisableKprintf (void)
 Disable the kprintf handler (once installed).


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.

int 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
Returns:
The number of frames stored in results.

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.

void pspDebugScreenInitEx ( void *  vram_base,
int  mode,
int  setup 
)

Extended debug screen init.

Parameters:
vram_base - Base address of frame buffer, if NULL then sets a default
mode - Colour mode
setup - Setup the screen if 1

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

int pspDebugScreenPuts ( const char *  str  ) 

Print a string.

Parameters:
str - String
Returns:
The number of characters written

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 pspDebugScreenSetBase ( u32 base  ) 

Set the video ram base used for the screen.

Parameters:
base - Base address in bytes

void pspDebugScreenSetColorMode ( int  mode  ) 

Set the color mode (you must have switched the frame buffer appropriately).

Parameters:
mode - Color mode

void pspDebugScreenSetOffset ( int  offset  ) 

Set the video ram offset used for the screen.

Parameters:
offset - Offset in bytes

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).

void pspDebugSioDisableKprintf ( void   ) 

Disable the kprintf handler (once installed).

void pspDebugSioEnableKprintf ( void   ) 

Enable the kprintf handler (once installed).

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.

int pspDebugSioPutText ( const char *  data,
int  len 
)

Write a set of data to the sio port converting single line feeds to CRLF and single CR to CRLF.

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

void pspDebugSioSetBaud ( int  baud  ) 

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

4800/9600..115200.

Parameters:
baud - The baudrate to set.


Generated on Tue Jul 24 15:21:25 2007 for PSPSDK-Rev2272 by  doxygen 1.5.2