Palm OS 3.0 Cookbook for windows
Debugging in Standalone Mode on the Device
コードウオーリアデバッカでアプリケーションをPalm機器上にダウンロード(転送)することができる。またデバッカを使ってPalm機器上のアプリケーションを実行させ、ステップ実行することができる。
NOTE:コードウオーリアドキュメントフォルダにある"Targeting PalmOS"マニュアルにデバッカについての詳しい説明がある
この章では、コードウオーリアデバッカをしようして、Palm機器にアプリケーションを転送する方法を簡単に説明する。以下のトピックについて述べる
2.1Debugging on the Device with Code Warrior Debugger
コードウオーリアの主要な機能は、アプリケーションをPalm機器上に転送したり、デバッキングしたりすることである。このツールのドキュメントは、コードウオーリアドキュメントフォルダーにあるので、この章では、どのように使うのかの簡潔な説明をする。
コードウオーリアデバッカで、アプリケーションを転送するには、以下のステップで操作をする
- クレイドルを正しく、コンピューターと接続されているのを確認する
- コードウオーリア上で、転送するアプリケーションのプロジェクトを開く
- "Project"メニューから"Remove Object Code"を選択し、古いオブジェクトコードを削除する。
この操作は、絶対に必要なわけでないけれど、お勧めする。
- デバッカが enableになっているのを確認する("Project"メニューで"enable Debugger"が表示されている状態にする)
- F7キーを押して、アプリケーションを作成する。
コードウオーリアは新しい、".prc"ファイルと、 ".prc.psym"ファイルを作成する。
- 新しく作成された、".psym"ファイルをダブルクリックする。
コードウオーリアは、 Palm上で、"Shortcut.2"を入力しなさいと表示する。
- Palm機器を起動し、"Shortcut .2"を入力する。
Shortcut .2 の入力の仕方は、1、ショートカットシンボルを入力する(エルみたいなもの)。2、2回タップする、3、数字の2を入力する。数字の2は、Graffiri領域の右側(数字エリア)で入力するのを間違えないようにすること。何を入力しているのか良く分かるようにするために、Findダイアログを立ち上げて入力すると良い。
”Shortcut .2"を入力すると、コードウオーリアは、Palm上にアプリケーションを転送する。
- コードウオーリア上で"Run"コマンドを実行する
これで、コードウオーリアを使って、Palm機器上のアプリケーションをデバックすることができる
Debugging Notes
コードウオーリアデバッカを使って、Palm機器上のアプリケーションをデバックする上で注意する点が2点ある
- Palm機器で、メモリーアプリケーション内のデバックを開始するとき(意味がわかなない、わかる人教えて)は、"Shortcut.2"を入力した後で、コードウオーリアデバッカでRUNを指示する前に、スクリーン上に1回タップをすべきである。
- デバックセッションが終了したら、正常な動作でデバッカを終了させなさい(可能であれば)そしてPalmをリセットしなさい。この処理はデバッカがPalmをクリーンアップできるようにする。普通の終了の仕方をしなかった場合2つの潜在的な問題が発生するだろう
- デバイスのシリアルポートがオープンしっぱなしになる。こうなると、バッテリーを消費し、ホットシンクができなくなる。
- デバックするアプリケーション内に挿入されたブレークポイントが、そのままになってしまう。こうなると、デバッカのメニューから終了を選択してデバッカを終了するか、Palm上のアプリケーションを削除するかしないと、正常にもどせない。
NOTE:PilotMainが呼ばれる前のスタートアップコードにブレークポイントを置き、リセットすると、アプリケーションが削除されるまで、リセットを繰り返すようになる。
それゆえに、ユニットをリセットするまえに、全てのブレークポイントをはずしなさい
2.2 Resetting the Device
アプリケーションをデバックしていると、Palmをリセットしなければならなくなるでしょう
ペーパークリップを曲げるか、大きな刺繍針をPalmの裏側にある遠さ名穴に差しこむことでリセットが実行される。この穴は、”リセットスイッチ”と呼ばれ、シリアル番号のステッカーの真中にある。その他のキーを押しながら、このリセットをすることで、いろいろなリセットが可能である。
SoftReset
ソフトリセットは、全てのダイナミックヒープをクリーンアップする(Heap0,Card0)。ストレージヒープは、そのままである。OSは、新しいスタック、新しいグローバル変数、ドライバーのリスタート、コモンポートのリスタートの状態で再起動する。Palm上の全てのアプリケーションは、SysAppLaunchCmdResetメッセージを受け取る。
Soft Reset + Up Arrow
上スクロールキーを押しながら、クリップでリセットボタンを押すと、以下の2つの例外を除いて、ソフトリセットと同じ動作をする。
- SysAppLaunchCmdResetメッセージは、アプリケーションに送られない。
これは、このメッセージを受け取ることでクラッシュするアプリケーションがあるとき(普通はないけど)、システムのリブートができなくなる。このような時に有効である
- OSはスタートアップ時に、システムパッチをロードしない。
システムパッチファイルを消し、新しいパッチを当てたいときに役にたつ。通常は、 システムパッチは、ロードされ、オープンされているので、システムから消したり、リプレイスしたりできない。
HardReset
ハードリセットは、電源ボタンを押しながら、クリップでリセットボタンを押すことで実行される。ハードリセットは、ソフトリセットの動作に加え、ストレージヒープが全て消される。その結果、全てのプログラム、データ、パッチ、ユーザー情報、その他が失われる。ハードリセットすると確認メッセージが表示され、全てのデーターを消しても良いかたずねる。
SysAppLaunchCmdResetメッセージが、この時アプリケーションに送られる。ユーザーが”DeleteAllDataを選択すると、デジタイザーキャリブレイションスクリーンが最初に現れる。4つのメインアプリケーションのデフォルトデータベースは、ROMにコピーされる。
”DeleteAll Data"メッセージが現れた時に、上スクロールキーを押しっぱなしにして、そして、4つのアプリケーションキーどれかを押すと(上スクロールキーは押したまま)システムは4つのメインアプリケーションのデフォルトデータベースを読むことなくブートする。(これも意味がわかりません)
2.3 Debugger Nub Signal
PalmOSが飛び、小さい四角がスクリーンの左上隅に点滅したら、Palmはクラッシュしており、デバッキングモードになっている。このときできることは、以下の2つである
2.4 Copying Database From the Device to Your Computer
デバイスデータベースを細かく調査するするとき、一そろいのデバッキングツールが役立つ
アプリケーションデータベースもしくは、データデータベースをPalmOS機器からコンピューターへコピーするには以下の手順にを踏む
- コードウオーリアのコンソールウインドウで、以下のコマンドを入力する
dir 0
コンソールウインドウは、Palm機器上のデータベースリストを表示する。ここでコピーしたいデータベース名を確認できる
- コードウオーリアコンソールウインドウで、以下のコマンドを入力する
export 0 dbname
そして、Enterキーを押す。
dbnameはコピーしたいデータベース名で、大文字小文字の区別がある。
- アプリケーションとデータベースを混同するな
- dbnameがスペースを含んでいるときは、ダブルクオーテーションで囲む
コンソールウインドウに以下のような表示が現れるでしょう
Exporting record #0.....
Exporting record #1.....
Success!!