[openrtm-staff:993] 10/3の作業報告(河内)
河内のぶ
n.kawauchi @ aist.go.jp
2017年 10月 3日 (火) 19:10:55 JST
安藤様
河内です
本日の作業内容をお知らせします。
------------
■産総研メールアドレスの確認
・ようやく不具合が解消しメールの送受信が可能となった
・川崎さんをRedmineとopenrtm-staffに登録
■OpenRTM-aistインストーラ生成
・下記にあるmsi(10/3版)は、PATHへの追加でOMNI_ROOTとOpenCV_DIRの
システム環境変数を使っておりません。使っているのはRTM_VC_VERSIONだけ
です。
http://staging.openrtm.org/pub/Windows/OpenRTM-aist/1.2.0/
⇒私の2つのWindows10環境では、インストール直後のsetコマンドでの確認
で、OpenRTM-aistのパスは展開された状態になっています
⇒このインストーラに含まれるVCVerChangerはバグが含まれてます。
明日には差し替える予定
■VCVerChangerのテスト
・先日のWM_SETTINGCHANGEメッセージ送信処理の修正に問題があったため
発生条件ははっきりしないがヒープが壊れる場合があると判明
・修正後は問題の動作も解決。このまま修正ソースでテストを進め、終了時
にOpenRTM-aistインストーラを作り直す予定。(明日中の対応予定)
*-*-*-* トラブルの詳細は下記の通り
・exeを直接実行している際は関数内のローカル変数が勝手にクリアされて
いるという状況しか分からなかったが、Visual Studio上でデバッグ実行
したら、下記のメッセージが表示された
-----
WindowsによってVCVerChanger.exeでブレークポイントが発生しました。
ヒープが壊れていることが原因として考えられます。VCVerChangerまたは
読み込まれたDLLにバグがあります。
あるいは、VCVerChanger.exeがフォーカスを持っているときに、ユーザが
F12キーを押したことが原因と考えられます。
可能であれば、出力ウィンドウに詳細な診断情報が表示されます。
-----
・改めて確認したところ、ビルド時にワーニングが出ており、その内容から
ポインタの初期化が抜けていることが原因と判明
------ SettingChange関数処理
PDWORD_PTR ReturnValue = NULL; ←★ここ
LRESULT Ret = SendMessageTimeout(
HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)("Environment"),
SMTO_ABORTIFHUNG, 5000, ReturnValue);
------
・この初期化が無くてもVCVerChangerの動作に問題は出ず、テストを進めて
いたところ、OpenRTM-aistの32bit版、64bit版の両方をインストールし、
切り替えての動作確認をしていたところ、GUI画面への結果表示用に確保
していた関数内のローカル変数inputがクリアされてしまう状況が発生して
気がついた。
-----
void CVCVerChangerDlg::OnClickedArchChange()
{
CString input; ←この変数の値が途中でクリアされてしまう
:
GetDlgItem(IDC_ARCH)->GetWindowTextA(input);
TRACE("OnClickedArchChange : Combo Boxの入力値 : %s\n", input);
※32bitへの切替を選択するとinputには"32bit"の文字列が入力される
//WM_SETTINGCHANGE
SettingChange(); ←問題の処理
//書き換え後のレジストリを読み込む
ret = RegistryReadProc();
if (!ret)
{
m_RegistryUtil.RegClose();
return;
}
TRACE("OnClickedArchChange : input(%s)\n", input);
※ここで確認したらinputの値がクリアされていた
------
以上です。
---------------------------------------------------
河内 のぶ n.kawauchi @ aist.go.jp
産業技術総合研究所 ロボットイノベーション研究センター
ロボットソフトウエアプラットフォーム研究チーム
テクニカルスタッフ
More information about the openrtm-staff
mailing list