[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Speak.exe のデバッグ
- To: bep@argv.org
- Subject: Speak.exe のデバッグ
- From: shirafuji@mail.com (Hideki Shirafuji)
- Date: Sat, 05 Aug 2000 14:02:12 +0900
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
白藤です
やっと bep の実行環境とデバッグ環境がそろったのでSpeak.exe の
デバッグを始めました。
デバッグ方法は以下のようにしています。
1.CVS からソースをとってくる
2.VC++6 で Speak.exe を Debug モードでビルド
3.Debug/ にあるSpeak.exe, Speak.pdb, vc60.pdb をパスの
通っている適当な所へコピーする
4.Meadow + BEP を起動する
5.VC++ のメニューから
ビルド(B), デバッグの開始(D), プロセスへアタッチ(A)...
としてSeak.exe につなぐ
※この時、プロジェクトは閉じておくこと
6.MainFrm.cpp かVoiceManager.cpp を開いて、適当な所
(OnSayIt(), start_queue() など)にブレークポイントを仕掛ける
7.Meadow のカーソルを動かして、ブレークポイントで止める
Speak.exe のソースは8/2 朝の物です。
既知のバグだと思いますが
(まだ始めたばかりなのではずしていることも多いと思います)
1.半角スペースの後に日本語があるとそれ以降読まない
start_queue() かなと思ったのですがまだ分かりません。
もしかするとProTALKER ?
2.長いソースでC-n で連続して移動すると行読みしなくなる場合がある
デバッグ中にもなるので、Thread か Windows Message で非同期の動作が
あり、VoiceManager の中でhead, speaking_head がくるうのではないか
と疑っています。クリティカルセクションの必要な部分はありませんか?
3.半角カタカナだけの行を日本語で読まない
International.cpp の IsJapanese() のfor ループの中に
if (_ismbbkana((unsigned char)*str)) return 1;
のようなコードを入れて半角カタカナのチェックも必要なようです。
4.Find file でミニバッファに入ったときに、C-i を3回以上おすと
2回でファイルリストが表示され、3回目以降はスクロールするはずですが
表示ページが切り替わってしまいます。
elisp は全く分かりませんので、C/C++ で分かる部分を追っかけます。
# 仕事中 Meaddow と VC++ はいつも立ち上がっているので気持ちを切り替え
# たい時に追っかけます。
とりあえず。
// Name : Hideki Shirafuji
//
// mailto:shirafuji@mail.com