プレイ日記
myu314 myu314
2台目の3DSを使ってPRINTデバッグをちょっと快適にする提案です。2DSLLもでましたし:) 【KDVN33NJ】 プログラムの書き方や文字数に制限がありますが、もしかしたらプチコンBIGより3号の方がデバッグ快適になる場合もあるかも……画面ちっさいしキーボードつながらないけど。BIGはデバッグ用にTVつかったりできるようになればいいのに。 以下説明。
7そうだね
プレイ済み
返信[1]
親投稿
myu314 myu314
■_DBGCON.PRG デバッグ用コンソール。デバッグ用メッセージ表示したりコマンド送ったりできます。 [スライドパッド] 上下でメッセージスクロール。L/R押しながらだと高速スクロール、LR両方押しながらでログの先頭/最後に移動(ログの先頭に居る時は常に最新の状態に更新されます) [↑↓] 入力窓の履歴をいったりきたり [←→] 入力窓のカーソル移動、L/R押しながらだと先頭/最後までジャンプ [A] コマンド送信 [B] メニュー [X] 終了 [Y] バックスペース。L/R押しながらで消去 通信については手動で開始/終了する必要があります。起動したらBボタンでメニューに入り、Connectを選んで通信を開始してください。親/子はどちらでも構いません。 メニューは改造しやすいように作ってます。プログラムにあわせて必要な機能を追加していくイメージです。
1そうだね
プレイ済み
返信[2]
親投稿
myu314 myu314
■SAMPLE.PRG デバッグメッセージ送信と簡単なコマンドを受け付けるサンプルです。「ON」か「OFF」を送ってやると、デバッグ出力を制御できます。ちなみに送られたコマンドは整数か文字列を判別して分割しているので、命令の追加はしやすいと思います。 このプログラムの送ってるデバッグメッセージの量で結構ギリギリです。毎フレーム送らないとか、utf8とかに変換して圧縮するとか必要かもしれません。 もっとデバッガっぽいことをやろうかと思いましたが、面倒だし使わない予感がしたので省略しました(DBG_BP()とか呼ぶようにして、ブレークポイントとか) 特定のボタン押したらデバッグ情報送るーとかで十分な予感。
1そうだね
プレイ済み
返信[3]
親投稿
myu314 myu314
■制限とか注意事項 MPSENDは一度に256bytesまでしか送れず、毎フレーム送るとバッファオーバーフローをおこします。そのため送信データは一旦内部バッファにためて2フレーム毎に送信するようになっています。さらに送られてきたデータはMPRECVで受け取らないとそのうちバッファが溢れます。よって以下の制限があります。 - 毎フレーム DBG_UPDATE を呼ぶ - 1フレームに付き64文字(128bytes)以上送り"続けない"(バッファが足りなくなるので) あと送信データをバッファにためている都合、プログラム停止時にDBG_FLASHを呼び出してバッファに溜まったメッセージを吐き出す必要があるかもしれません。ファンクションキーに設定しておくと便利かも。
0そうだね
プレイ済み
返信[4]
親投稿
MIKI ifconfig
面白いこと考えますね~ 夢は広がるって感じ?
0そうだね
プレイ済み
返信[5]
親投稿
myu314 myu314
(自分で応答しなきゃいけないけど)動作中に弄れるのは結構楽しい感じですね。 あと単純にPRINTデバッグでログが遡れるのは便利です。 もうちょっとだけ公式でデバッグ周りのサポートくれたらツール作りも捗るんだけどなぁ、とか。デバッガ付けてとまでは言わないので:)
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
協調型マルチタスクみたいな感じのタスクの一つとしてコマンドラインインタープリタを実装すればいいんですよね。 var() 関数があるから、結構汎用的なのが書けそう(var()は左辺値にもなるし)。 printデバッグの代用として prgset 使ってますが、あれは n^2 で遅くなるので、大量にログ吐くような使い方だと破綻します。 まあデバッグ環境の貧弱さには泣けますね。 太古のポケコンですらステップ実行を実装していたのに、なんだこの体たらくはって感じです。エディタの貧弱さもあり、3DSでの実機デバッグが辛いです。
0そうだね
プレイ済み