« さて、物欲にフタをして... | メイン | 名前を奪おうというのか »
2007年01月25日
振り回すメモリカード
...あ、えーと。メモリカード上のファイルをイジるロジックを書いてまして。
数日前から、メモリカード上のファイルを列挙する処理が原因不明のフリーズをしていたんですね。Palm OS Simulator では再現しない。どれだけ条件を整えても再現しない。実機でだけ発生するんです。正直言ってどうしていいのかわからない...というわけで途方にくれておったのです。途方に。
で、どういう弾みだったか覚えていませんが、別のメモリカードで試したんです。そしたら発生しない。なんの問題もなく動作します...これはもしや...? と思って、問題の発生するメモリカードの内容をバックアップしてからフォーマット、そしてファイルを戻して再度実行...あ、動いた。(汗
...というわけで、どうやらメモリカードのファイルアロケーションテーブルが壊れておったようです。PC に挿すとなんともなかったので疑うのが遅れました。まぁ、挙動がおかしくなったときに真っ先に自分の書いたプログラムを疑うというのは開発者としてはまっとうだと思っております。しかし、自分のロジックを疑い抜いても原因がわからないとき、そこで別の可能性を考える方向に切り替えるタイミングが遅すぎるというのも考えもの。こういうバランスは難しいですね。
とくに結論はありませんけれども、メモリカードをイジるアプリを書く場合、テストでは容量少なめのカードを使いましょう。1GB のカードを使っていたので、バックアップにとっても時間がかかったので。(汗
投稿者 kagelow : 2007年01月25日 01:30
トラックバック
このエントリーのトラックバックURL:
http://www.project-enigma.jp/members/kagelow/locus/mt-tb.cgi/480
コメント
「挙動がおかしくなったときに真っ先に自分の書いたプログラムを疑う」
これ、できそうでできないですよね。
特にリリース後だと特に。
環境のせいにしたり、オペレーションのせいにしたり。
気をつけよう。
投稿者 hanabishi : 2007年01月25日 08:52
>> hanabishi さん
>これ、できそうでできないですよね。
そうなんですよね...でも悲しいかな、大抵自分のせいだったりするわけで。(汗
時には理不尽なバグや仕様に行き当たったとしても正しく動作させるためにはこちらが合わせなきゃならない。そう考えると、プログラミングというのは常に屈従を強いられる行為なわけで、何が楽しいんだという気がしないでもないです。でも好きなんですよね...こういうのをマゾっ気というのかしら。
投稿者 陰郎 : 2007年01月26日 01:19
ぼくの SD もおかしくなりましたよ。
昔のマシン(m505 とか)は大容量のカードに対応してなかったみたいですが、どこかにアップデータが、、、あ、これこれ。
http://www.palm.com/us/support/downloads/file_manager_update.html
他にも、kb.palm.com で検索するといろいろ出てきます。
投稿者 ほし : 2007年01月26日 15:09