Index: Include/system/debug.sbp
===================================================================
--- Include/system/debug.sbp	(revision 258)
+++ Include/system/debug.sbp	(revision 259)
@@ -84,2 +84,8 @@
 	MessageBox( NULL, "esp is wrong value.", "debug check error", MB_OK or MB_ICONEXCLAMATION )
 End Sub
+
+Sub _System_DebugOnly_OutputDebugString(buffer As *Char)
+#ifdef _DEBUG
+	OutputDebugString(buffer)
+#endif
+End Sub
Index: Include/system/gc.sbp
===================================================================
--- Include/system/gc.sbp	(revision 258)
+++ Include/system/gc.sbp	(revision 259)
@@ -126,5 +126,5 @@
 		'_System_pobj_AllThreads->SuspendAnotherThread()
 
-		OutputDebugString( Ex"garbage colletion sweeping all memory objects!\r\n" )
+		_System_DebugOnly_OutputDebugString( Ex"garbage colletion sweeping all memory objects!\r\n" )
 		DeleteAllGarbageMemories()
 
@@ -216,5 +216,5 @@
 					Else
 						If isFinish = False Then
-							OutputDebugString( Ex"heap free missing!\r\n" )
+							_System_DebugOnly_OutputDebugString( Ex"heap free missing!\r\n" )
 						End If
 					End If
@@ -319,5 +319,5 @@
 				Context.ContextFlags=CONTEXT_CONTROL
 				If _System_pobj_AllThreads->ppobj_Thread[i]->__GetContext(Context)=0 Then
-					OutputDebugString(Ex"レジスタ情報の取得に失敗しました。\r\n")
+					_System_DebugOnly_OutputDebugString(Ex"レジスタ情報の取得に失敗しました。\r\n")
 				End If
 
@@ -413,5 +413,5 @@
 		Dim startTime = GetTickCount()
 
-		OutputDebugString( Ex"garbage colletion sweep start!\r\n" )
+		_System_DebugOnly_OutputDebugString( Ex"garbage colletion sweep start!\r\n" )
 
 
@@ -460,14 +460,14 @@
 			limitMemoryObjectNum *= 2
 
-			OutputDebugString( Ex"memory size is extended for gc!\r\n" )
+			_System_DebugOnly_OutputDebugString( Ex"memory size is extended for gc!\r\n" )
 		End If
 
 		Dim temp[100] As Char
 		wsprintf(temp,Ex"object items         ... %d -> %d  ( %d MB -> %d MB )\r\n",iBeforeN,n, iBackAllSize\1024\1024, iAllSize\1024\1024)
-		OutputDebugString( temp )
+		_System_DebugOnly_OutputDebugString( temp )
 		wsprintf(temp,Ex"limit size of memory ... %d\r\n",limitMemorySize)
-		OutputDebugString( temp )
+		_System_DebugOnly_OutputDebugString( temp )
 		wsprintf(temp,Ex"garbage colletion sweep finish! (%d ms)\r\n\r\n", GetTickCount()-startTime)
-		OutputDebugString( temp )
+		_System_DebugOnly_OutputDebugString( temp )
 
 
@@ -488,12 +488,12 @@
 				If (pdwFlags[i] and _System_GC_FLAG_NEEDFREE)<>0 Then
 					If isLeak = False Then
-						OutputDebugString( Ex"Detected memory leaks!\r\n" )
+						_System_DebugOnly_OutputDebugString( Ex"Detected memory leaks!\r\n" )
 						isLeak = True
 					End If
 
 					Dim temp[100] As Char
-					OutputDebugString( Ex"heap free missing!\r\n" )
+					_System_DebugOnly_OutputDebugString( Ex"heap free missing!\r\n" )
 					wsprintf(temp,Ex"{%d} normal block at &H%08X, %d bytes long.\r\n", i, ppPtr[i], pSize[i])
-					OutputDebugString( temp )
+					_System_DebugOnly_OutputDebugString( temp )
 				End If
 			End If
@@ -501,5 +501,5 @@
 
 		If isLeak Then
-			OutputDebugString( Ex"Object dump complete.\r\n" )
+			_System_DebugOnly_OutputDebugString( Ex"Object dump complete.\r\n" )
 		End If
 
