デバッグ支援ツールとしてペーストボードを活用する
日付 | 2009/08/10 |
---|---|
ID | 75861 (英語原文参照) |
バージョン | 11.4 |
プラットフォーム | Mac & Win |
ペーストボードを活用すれば、デバッガを介せずに受け渡しされている値を知ることができるので、とても便利です。特にコンパイルされたコードの場合、デバッガを表示することができないので、この方法は重宝します
たとえば次のようなコードをデータベースに用意し、SET TEXT TO PASTEBOARDコマンドをデバッグ目的で使用することができます。コード中、重要な箇所にこのメソッドへのコールをちりばめておくのです。メソッドの実行は、<>Debugging_Bのようなブールタイプのインタープロセス変数で制御すると良いでしょう。データベースを実行し、適当なテキストエディタに対して「ペースト」を実行すれば、簡単なデバッグログを作成することができます。
`UTIL_PasteboardDebugLogger ($Caller_T;$Action_T;$TextToPaste_T) C_TEXT($Caller_T;$1) C_TEXT($Action_T;$2) C_TEXT($TextToPaste_T;$3) C_TEXT($Buf_T) If (<>Debugging_B) `// Make sure this boolean is defined early in the application $Caller_T:=$1 $Action_T:=$2 $TextToPaste_T:=$3 `======================== Method Actions ================================== If ($Action_T="Append") $Buf_T:=Get text from pasteboard+"\r\r" $Buf_T:=$Buf_T+$Caller_T+": "+$TextToPaste_T SET TEXT TO PASTEBOARD($Buf_T) Else CLEAR PASTEBOARD SET TEXT TO PASTEBOARD($Caller_T+": "+$TextToPaste_T) End if `======================== Clean up and Exit ================================= End if
メソッドの動作を確認するには、次のようなメソッドを実行します。
C_TEXT($MethodName_T) $MethodName_T:=Current method name C_BOOLEAN(×Debugging_B) ×Debugging_B:=True UTIL_PasteboardDebugLogger ($MethodName_T;"Paste";"This is paste #1") UTIL_PasteboardDebugLogger ($MethodName_T;"Append";"This is paste #2") UTIL_PasteboardDebugLogger ($MethodName_T;"Append";"This is paste #3")