| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | program gdbstub;{$J+}{$macro on}{$mode objfpc}uses  cmem, ctypes, gctypes, debug, gccore;var  xfb: pcuint32 = nil;  rmode: PGXRModeObj = nil;begin	VIDEO_Init();	WPAD_Init();		rmode := VIDEO_GetPreferredMode(nil);	xfb := SYS_AllocateFramebuffer(rmode);	console_init(xfb,20,20,rmode^.fbWidth,rmode^.xfbHeight,rmode^.fbWidth*VI_DISPLAY_PIX_SZ);			VIDEO_Configure(rmode);	VIDEO_SetNextFramebuffer(xfb);	VIDEO_SetBlack(FALSE);	VIDEO_Flush();	VIDEO_WaitVSync();	if(rmode^.viTVMode and VI_NON_INTERLACE) <> 0 then VIDEO_WaitVSync();	// Configure for use with USB on EXI channel 1 (memcard slot B) 	// Other option: GDBSTUB_DEVICE_TCP. Note: second parameter acts as port for this type of device 	DEBUG_Init(GDBSTUB_DEVICE_USB,1);	printf('Waiting for debugger ...'#10);	// This function call enters the debug stub for the first time   // It's needed to call this if one wants to start debugging. 	_break();	printf('debugger connected ...'#10);     	while true do	begin		VIDEO_WaitVSync();		WPAD_ScanPads();		if (WPAD_ButtonsDown(0) and WPAD_BUTTON_A) <> 0 then 			printf('Button A pressed.'#10);		if (WPAD_ButtonsDown(0) and WPAD_BUTTON_HOME) <> 0 then break;	end;end.
 |