[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