Re: [ja-discuss] Window7環境のLibreOffice4.0.3.3でメモリリークを検出する方法、または_DEBUGを有効にする方法について

2013-08-25 スレッド表示 Isamu Mogi
茂木です。

今更になってしまいましたが、情報共有ありがとうございます。Windowsでのビ
ルドはものすごく時間がかかるので、このような情報は非常にありがたいです。

山田さんのほうではすでに既知かもしれませんが、周知のため: バージョン4.1
以降ではmsvcのデバッグビルドに切り替える機能が追加されたようです。

gbuild: add support for building against MSVC debug runtime
http://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-4-1id=3b65852f37f1c8daf8c5c0af1d810c68cc71d8e3

しかしながら、個人的には4.1はカスタマイズして製品とするには早いかなとい
う感じがするため、山田さんの報告していた情報はまだまだ活躍すると思います。

(2013/08/20 8:36), 山田太郎 wrote:
 お世話になっております。
 
 ■Windows環境のLibreOffice4.0.3.3で_DEBUGを有効にする手順について
 
  ・なんとか_DEBUGを有効にすることに成功しましたので、手順を展開させて頂 
 きます。
   ここまで辿り着くのにかなりの時間を費やしてしまいました。
   ※一部調査が必要な項目がまだ残っています。
 
   ◆ステップ1:solenv\gbuild\gbuild.mk http://gbuild.mkの修正
 
    「ifneq ($(COM),MSC)
 gb_GLOBALDEFS += -D_DEBUG \」を
    「ifeq ($(COM),MSC)
 gb_GLOBALDEFS += -D_DEBUG \」に修正。
 
    ・_HAS_ITERATOR_DEBUGGING=0を追加。
    # free.toolcreator add start
    gb_GLOBALDEFS += -D_HAS_ITERATOR_DEBUGGING=0
    # free.toolcreator add end
 
    ※「_HAS_ITERATOR_DEBUGGING=0」はboostをVisualStudioのデバッグ
 ビルドでビルドすると発生するエラーを回避するためのものです。
 詳細は以下のURLを参照願います。
 参考URL:http://social.msdn.microsoft.com/Forums/vstudio/en-US 
 /03087447-620f-402b-9182-0da5ae6bf61f/boostmultiarray-vs2010debug
 
   ◆ステップ2:autoge.shの実行
 
    ・--enable-dbgutilを付加して実行します。参考までに、私の環境の 
 autogen.lastrun
 は以下のとおりです。
    --disable-activex
    --disable-atl
    --with-nss-build-tools=/cygdrive/c/mozilla-build
    --with-ant-home=/cygdrive/d/apache-ant-1.9.0
    --without-junit
    --with-cl-home=C:\PROGRA~2\MICROS~2.0\VC
    --without-help
    --without-myspell-dicts
    --enable-debug
    --enable-dbgutil
    --with-lang=en-US ja
 
    ◆ステップ3:Externalモジュールのメイクファイルの修正
 
 ・ExternalProject_Externalモジュール名.mk 
 http://xn--yck6dky8fx60y.mkの「/p:Configuration=Release」を
  「/p:Configuration=Debug」に修正。
 
 ・ExternalPackage_Externalモジュール名.mk 
 http://xn--yck6dky8fx60y.mkの「#$(eval $(call 
 gb_ExternalPackage_add_file」
  のパラメータに渡されているパスのReleaseをDebugに修正。
 
 ※少なくともlibcdr,libwpd,libmspub,libvisioに同様の修正が必要です。
 
 ◆ステップ4:python3モジュールのメイクファイルの修正
 
  ・ExternalProject_python3.mkの「/p:Configuration=Release」を
  「/p:Configuration=Debug」に修正。
 
  ・python3\ExternalPackage_python3.mkのlib,dll,pyd名に_dを付加 
 します。
   ※_d.lib,_d.dll,_d.pydに変更します。
 
 ◆ステップ5:ビルドの実行
 
  ・ビルドエラーが発生した時点で、適宜以下のステップの修正を行い 
 ます。
 
 ◆ステップ6:Externalモジュールのソリューションファイルの修正
 
  ・libcdr,libmspub,libvisio,libwpd,liborcusのソリューションファ 
 イルを
   Visual Studio 2012 Express for Desktopで開いてプロジェクト変 
 換します。
  ・上記ソリューションファイルの「追加のインクルードディレクト 
 リ」に以下を
   追加します。
   solver\inc\external
   solver\inc\zlib
 
 ・上記ソリューションファイルの「プリプロセッサ」に以下を追加します。
  _HAS_ITERATOR_DEBUGGING=0
  BOOST_ALL_NO_LIB(liborcusのみ。オートリンク無効化マクロ。)
  ※BOOST_ALL_NO_LIBとはboostのオートリンク機能で、ライブラリ名が
   変更されることを防ぐためのものだそうです。
 
 ・Visual Studio 2012 Express for Desktopでリビルドします。
  ※liborcusはliborcus-static-nozipのみリビルドします。 
 debug\orcus.libが
   生成されるのでILIB環境変数が指すディレクトリにコピーします。
   (ILIB環境変数の定義はconfig.statusに記載されています)
 
 ◆ステップ7:python3モジュールのソリューションファイルの修正
 
  ・workdir\wntmsci14\UnpackedTarball\python3\PCbuild\pcbuild.slnを
   Visual Studio 2012 Express for Desktopで開きます。
  ・構成プロパティのxxlimitedとpython3dllのReleaseをDebugに変更 
 します。
  ・ターゲット名に_dを付加します。
 
 ◆ステップ8:testtools\source\bridgetest\cppobj.cxxのdothrow() 
 の修正(要原因調査)
 
   ・throw ::std::bad_alloc();の後のcatchブロックのtry-catchを 
 コメントアウトします。
    ※bad_alloc例外をキャッチ出来るかのテストコードの様ですが、 
 ビルド中に何故か
 キャッチ後のエラー「getCaughtException() failed!」が発生 
 するため、コメントアウト
 しています。原因はまだ調査していません。
 
 ◆ステップ9:unittestの無効化(要原因調査)
 
  ・ビルドエラーを起こすunittestを無効化します。
   具体的にはModule_モジュール名.mkの
   「$(eval $(call gb_Module_add_check_targets,モジュール名,\」 
 の行をコメントアウト
   します。
   ※これも原因がまだわかっていませんが、ビルド中にユニットテス 
 トに失敗するため
    コメントアウトしています。
 
 ■Windows環境のLibreOffice4.0.3.3でmsvcrtdを使用したメモリリークチェック 
 の方法に
  ついて
 
  ・現在環境構築中です。環境が出来たら、また展開させて頂きます。
 
 以上です。
 
 
 
 
 
 2013年8月5日 16:09 山田太郎 free.toolcrea...@gmail.com 
 mailto:free.toolcrea...@gmail.com:
  
   お世話になっております。
  
   ■環境変数CPPFLAGSについて
  
    ・autogen.shに環境変数を渡してビルドした結果ですが、config.statusは
     S[CPPFLAGS]=-D_DEBUG
     となっているのですが結果的にReleaseモードになっている様です。
  
     ◆確認用コード(vcl\source\app\svmain.cxx)
      (中略)
      #if OSL_DEBUG_LEVEL  0
      #include typeinfo
      #include rtl/strbuf.hxx
      #endif
  
      // free.toolcreator add start
      #ifdef _DEBUG
      #pragma message(##DEBUG   
  MODE##)
      #else
      #pragma message(##RELEASE 
  MODE##)
      #endif
      // free.toolcreator add end
  
      using ::rtl::OUString;
      using namespace ::com::sun::star;
      (以下略)
  
     ◆確認結果(ビルド実行結果)
      (略)
      [build MOD] connectivity
      [build CHK] sot
      ##RELEASE 
 MODE##
      [build LNK] Library/ivcl.lib
  

[ja-discuss] Re: [ja-discuss] Window7環境のLibreOffice4.0.3.3でメモリリークを検出する方法、または_DEBUGを有効にする方法について

2013-08-25 スレッド表示 山田太郎
お世話になっております。

茂木さん、いつも有用な情報ありがとうございます!

教えていただいた情報は知りませんでした。

ちょうど先ほど、com_MSC_defs.mkに/MDdを追加してもリンカに無視されていて
原因が分からなかったのですが、教えて頂いた情報を見たら/MDの定義が
邪魔していた様です。

他の変更点も確認させて頂きます。

ありがとう御座いました!

以上です。




2013年8月25日 15:51 Isamu Mogi d...@lunaport.net:

 茂木です。

 今更になってしまいましたが、情報共有ありがとうございます。Windowsでのビ
 ルドはものすごく時間がかかるので、このような情報は非常にありがたいです。

 山田さんのほうではすでに既知かもしれませんが、周知のため: バージョン4.1
 以降ではmsvcのデバッグビルドに切り替える機能が追加されたようです。

 gbuild: add support for building against MSVC debug runtime

http://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-4-1id=3b65852f37f1c8daf8c5c0af1d810c68cc71d8e3

 しかしながら、個人的には4.1はカスタマイズして製品とするには早いかなとい
 う感じがするため、山田さんの報告していた情報はまだまだ活躍すると思います。

 (2013/08/20 8:36), 山田太郎 wrote:
  お世話になっております。
 
  ■Windows環境のLibreOffice4.0.3.3で_DEBUGを有効にする手順について
 
  ・なんとか_DEBUGを有効にすることに成功しましたので、手順を展開させて頂
  きます。
  ここまで辿り着くのにかなりの時間を費やしてしまいました。
  ※一部調査が必要な項目がまだ残っています。
 
  ◆ステップ1:solenv\gbuild\gbuild.mk http://gbuild.mkの修正
 
  「ifneq ($(COM),MSC)
  gb_GLOBALDEFS += -D_DEBUG \」を
  「ifeq ($(COM),MSC)
  gb_GLOBALDEFS += -D_DEBUG \」に修正。
 
  ・_HAS_ITERATOR_DEBUGGING=0を追加。
  # free.toolcreator add start
  gb_GLOBALDEFS += -D_HAS_ITERATOR_DEBUGGING=0
  # free.toolcreator add end
 
  ※「_HAS_ITERATOR_DEBUGGING=0」はboostをVisualStudioのデバッグ
  ビルドでビルドすると発生するエラーを回避するためのものです。
  詳細は以下のURLを参照願います。
  参考URL:http://social.msdn.microsoft.com/Forums/vstudio/en-US
  /03087447-620f-402b-9182-0da5ae6bf61f/boostmultiarray-vs2010debug
 
  ◆ステップ2:autoge.shの実行
 
  ・--enable-dbgutilを付加して実行します。参考までに、私の環境の
  autogen.lastrun
  は以下のとおりです。
  --disable-activex
  --disable-atl
  --with-nss-build-tools=/cygdrive/c/mozilla-build
  --with-ant-home=/cygdrive/d/apache-ant-1.9.0
  --without-junit
  --with-cl-home=C:\PROGRA~2\MICROS~2.0\VC
  --without-help
  --without-myspell-dicts
  --enable-debug
  --enable-dbgutil
  --with-lang=en-US ja
 
  ◆ステップ3:Externalモジュールのメイクファイルの修正
 
  ・ExternalProject_Externalモジュール名.mk http://xn--yck6dky8fx60y.mk
  http://xn--yck6dky8fx60y.mkの「/p:Configuration=Release」を
  「/p:Configuration=Debug」に修正。
 
  ・ExternalPackage_Externalモジュール名.mk http://xn--yck6dky8fx60y.mk
  http://xn--yck6dky8fx60y.mkの「#$(eval $(call
  gb_ExternalPackage_add_file」
  のパラメータに渡されているパスのReleaseをDebugに修正。
 
  ※少なくともlibcdr,libwpd,libmspub,libvisioに同様の修正が必要です。
 
  ◆ステップ4:python3モジュールのメイクファイルの修正
 
  ・ExternalProject_python3.mkの「/p:Configuration=Release」を
  「/p:Configuration=Debug」に修正。
 
  ・python3\ExternalPackage_python3.mkのlib,dll,pyd名に_dを付加
  します。
  ※_d.lib,_d.dll,_d.pydに変更します。
 
  ◆ステップ5:ビルドの実行
 
  ・ビルドエラーが発生した時点で、適宜以下のステップの修正を行い
  ます。
 
  ◆ステップ6:Externalモジュールのソリューションファイルの修正
 
  ・libcdr,libmspub,libvisio,libwpd,liborcusのソリューションファ
  イルを
  Visual Studio 2012 Express for Desktopで開いてプロジェクト変
  換します。
  ・上記ソリューションファイルの「追加のインクルードディレクト
  リ」に以下を
  追加します。
  solver\inc\external
  solver\inc\zlib
 
  ・上記ソリューションファイルの「プリプロセッサ」に以下を追加します。
  _HAS_ITERATOR_DEBUGGING=0
  BOOST_ALL_NO_LIB(liborcusのみ。オートリンク無効化マクロ。)
  ※BOOST_ALL_NO_LIBとはboostのオートリンク機能で、ライブラリ名が
  変更されることを防ぐためのものだそうです。
 
  ・Visual Studio 2012 Express for Desktopでリビルドします。
  ※liborcusはliborcus-static-nozipのみリビルドします。
  debug\orcus.libが
  生成されるのでILIB環境変数が指すディレクトリにコピーします。
  (ILIB環境変数の定義はconfig.statusに記載されています)
 
  ◆ステップ7:python3モジュールのソリューションファイルの修正
 
  ・workdir\wntmsci14\UnpackedTarball\python3\PCbuild\pcbuild.slnを
  Visual Studio 2012 Express for Desktopで開きます。
  ・構成プロパティのxxlimitedとpython3dllのReleaseをDebugに変更
  します。
  ・ターゲット名に_dを付加します。
 
  ◆ステップ8:testtools\source\bridgetest\cppobj.cxxのdothrow()
  の修正(要原因調査)
 
  ・throw ::std::bad_alloc();の後のcatchブロックのtry-catchを
  コメントアウトします。
  ※bad_alloc例外をキャッチ出来るかのテストコードの様ですが、
  ビルド中に何故か
  キャッチ後のエラー「getCaughtException() failed!」が発生
  するため、コメントアウト
  しています。原因はまだ調査していません。
 
  ◆ステップ9:unittestの無効化(要原因調査)
 
  ・ビルドエラーを起こすunittestを無効化します。
  具体的にはModule_モジュール名.mkの
  「$(eval $(call gb_Module_add_check_targets,モジュール名,\」
  の行をコメントアウト
  します。
  ※これも原因がまだわかっていませんが、ビルド中にユニットテス
  トに失敗するため
  コメントアウトしています。
 
  ■Windows環境のLibreOffice4.0.3.3でmsvcrtdを使用したメモリリークチェック
  の方法に
  ついて
 
  ・現在環境構築中です。環境が出来たら、また展開させて頂きます。
 
  以上です。
 
 
 
 
 
  2013年8月5日 16:09 山田太郎 free.toolcrea...@gmail.com
  mailto:free.toolcrea...@gmail.com:
   
お世話になっております。
   
■環境変数CPPFLAGSについて
   
・autogen.shに環境変数を渡してビルドした結果ですが、config.statusは
S[CPPFLAGS]=-D_DEBUG
となっているのですが結果的にReleaseモードになっている様です。
   
◆確認用コード(vcl\source\app\svmain.cxx)
(中略)
#if OSL_DEBUG_LEVEL  0
#include typeinfo
#include rtl/strbuf.hxx
#endif
   
// free.toolcreator add start
#ifdef _DEBUG
#pragma message(##DEBUG
  MODE##)
#else
#pragma message(##RELEASE
  MODE##)
#endif
// free.toolcreator add end
   
using ::rtl::OUString;
using namespace ::com::sun::star;
(以下略)
   
◆確認結果(ビルド実行結果)
(略)
[build MOD] connectivity
[build CHK] sot
##RELEASE
  MODE##
[build LNK] 

[ja-discuss] Re: [ja-discuss] Window7環境のLibreOffice4.0.3.3でメモリリークを検出する方法、または_DEBUGを有効にする方法について

2013-08-19 スレッド表示 山田太郎
お世話になっております。

■Windows環境のLibreOffice4.0.3.3で_DEBUGを有効にする手順について

・なんとか_DEBUGを有効にすることに成功しましたので、手順を展開させて頂きます。
ここまで辿り着くのにかなりの時間を費やしてしまいました。
※一部調査が必要な項目がまだ残っています。

◆ステップ1:solenv\gbuild\gbuild.mkの修正

「ifneq ($(COM),MSC)
gb_GLOBALDEFS += -D_DEBUG \」を
「ifeq ($(COM),MSC)
gb_GLOBALDEFS += -D_DEBUG \」に修正。

・_HAS_ITERATOR_DEBUGGING=0を追加。
# free.toolcreator add start
gb_GLOBALDEFS += -D_HAS_ITERATOR_DEBUGGING=0
# free.toolcreator add end

※「_HAS_ITERATOR_DEBUGGING=0」はboostをVisualStudioのデバッグ
ビルドでビルドすると発生するエラーを回避するためのものです。
詳細は以下のURLを参照願います。
参考URL:
http://social.msdn.microsoft.com/Forums/vstudio/en-US/03087447-620f-402b-9182-0da5ae6bf61f/boostmultiarray-vs2010debug

◆ステップ2:autoge.shの実行

・--enable-dbgutilを付加して実行します。参考までに、私の環境のautogen.lastrun
は以下のとおりです。
--disable-activex
--disable-atl
--with-nss-build-tools=/cygdrive/c/mozilla-build
--with-ant-home=/cygdrive/d/apache-ant-1.9.0
--without-junit
--with-cl-home=C:\PROGRA~2\MICROS~2.0\VC
--without-help
--without-myspell-dicts
--enable-debug
--enable-dbgutil
--with-lang=en-US ja

◆ステップ3:Externalモジュールのメイクファイルの修正

・ExternalProject_Externalモジュール名.mk http://xn--yck6dky8fx60y.mk
の「/p:Configuration=Release」を
「/p:Configuration=Debug」に修正。

・ExternalPackage_Externalモジュール名.mk http://xn--yck6dky8fx60y.mkの「#$(eval
$(call gb_ExternalPackage_add_file」
のパラメータに渡されているパスのReleaseをDebugに修正。

※少なくともlibcdr,libwpd,libmspub,libvisioに同様の修正が必要です。

◆ステップ4:python3モジュールのメイクファイルの修正

・ExternalProject_python3.mkの「/p:Configuration=Release」を
「/p:Configuration=Debug」に修正。

・python3\ExternalPackage_python3.mkのlib,dll,pyd名に_dを付加します。
※_d.lib,_d.dll,_d.pydに変更します。

◆ステップ5:ビルドの実行

・ビルドエラーが発生した時点で、適宜以下のステップの修正を行います。

◆ステップ6:Externalモジュールのソリューションファイルの修正

・libcdr,libmspub,libvisio,libwpd,liborcusのソリューションファイルを
Visual Studio 2012 Express for Desktopで開いてプロジェクト変換します。
・上記ソリューションファイルの「追加のインクルードディレクトリ」に以下を
追加します。
solver\inc\external
solver\inc\zlib

・上記ソリューションファイルの「プリプロセッサ」に以下を追加します。
_HAS_ITERATOR_DEBUGGING=0
BOOST_ALL_NO_LIB(liborcusのみ。オートリンク無効化マクロ。)
※BOOST_ALL_NO_LIBとはboostのオートリンク機能で、ライブラリ名が
変更されることを防ぐためのものだそうです。

・Visual Studio 2012 Express for Desktopでリビルドします。
※liborcusはliborcus-static-nozipのみリビルドします。debug\orcus.libが
生成されるのでILIB環境変数が指すディレクトリにコピーします。
(ILIB環境変数の定義はconfig.statusに記載されています)

◆ステップ7:python3モジュールのソリューションファイルの修正

・workdir\wntmsci14\UnpackedTarball\python3\PCbuild\pcbuild.slnを
Visual Studio 2012 Express for Desktopで開きます。
・構成プロパティのxxlimitedとpython3dllのReleaseをDebugに変更します。
・ターゲット名に_dを付加します。

◆ステップ8:testtools\source\bridgetest\cppobj.cxxのdothrow()の修正(要原因調査)

・throw ::std::bad_alloc();の後のcatchブロックのtry-catchをコメントアウトします。
※bad_alloc例外をキャッチ出来るかのテストコードの様ですが、ビルド中に何故か
キャッチ後のエラー「getCaughtException() failed!」が発生するため、コメントアウト
しています。原因はまだ調査していません。

◆ステップ9:unittestの無効化(要原因調査)

・ビルドエラーを起こすunittestを無効化します。
具体的にはModule_モジュール名.mkの
「$(eval $(call gb_Module_add_check_targets,モジュール名,\」の行をコメントアウト
します。
※これも原因がまだわかっていませんが、ビルド中にユニットテストに失敗するため
コメントアウトしています。

■Windows環境のLibreOffice4.0.3.3でmsvcrtdを使用したメモリリークチェックの方法に
ついて

・現在環境構築中です。環境が出来たら、また展開させて頂きます。

以上です。





2013年8月5日 16:09 山田太郎 free.toolcrea...@gmail.com:

 お世話になっております。

 ■環境変数CPPFLAGSについて

 ・autogen.shに環境変数を渡してビルドした結果ですが、config.statusは
 S[CPPFLAGS]=-D_DEBUG
 となっているのですが結果的にReleaseモードになっている様です。

 ◆確認用コード(vcl\source\app\svmain.cxx)
 (中略)
 #if OSL_DEBUG_LEVEL  0
 #include typeinfo
 #include rtl/strbuf.hxx
 #endif

 // free.toolcreator add start
 #ifdef _DEBUG
 #pragma message(##DEBUG
MODE##)
 #else
 #pragma message(##RELEASE
MODE##)
 #endif
 // free.toolcreator add end

 using ::rtl::OUString;
 using namespace ::com::sun::star;
 (以下略)

 ◆確認結果(ビルド実行結果)
 (略)
 [build MOD] connectivity
 [build CHK] sot
 ##RELEASE
MODE##
 [build LNK] Library/ivcl.lib
 ライブラリ C:/cygwin/home/test/Debug/libreoffice-4.0.3.3/workdir/
wntmsci14.pro/LinkTarget/Library/ivcl.lib とオブジェクト
C:/cygwin/home/test/Debug/libreoffice-4.0.3.3/workdir/
wntmsci14.pro/LinkTarget/Library/ivcl.exp を作成中
 (以下略)

 ※dmake\Makefileに、
 CPPFLAGS =
 と定義されているため、もしかしたらundefされているかもしれません(未確認です)。

 ※メイクファイルを追おうとしたのですが、_DEBUGを定義している所を別に見つけたので、
 そちらを先に確認しようと思います。

 ■gb_COMPILERDEFSへの追加について

 ・gbuild.mkに以下の様なコードを見つけました。

 (略)
 gb_GLOBALDEFS := \
 -D_REENTRANT \
 -DOSL_DEBUG_LEVEL=$(gb_DEBUGLEVEL) \
 -DSUPD=$(UPD) \
 $(gb_OSDEFS) \
 $(gb_COMPILERDEFS) \
 $(gb_CPUDEFS) \

 # This is used to detect whether LibreOffice is being built (as opposed
to building
 # 3rd-party code). Used for tag deprecation for API we want to
 # ensure is not used at all externally while we clean
 # out our internal usage, for code in sal/ that should be used only
internally, etc.
 gb_GLOBALDEFS += \
 -DLIBO_INTERNAL_ONLY \

 ifeq ($(gb_ENABLE_DBGUTIL),$(true))
 gb_GLOBALDEFS += -DDBG_UTIL \

 ifneq ($(COM),MSC)
 gb_GLOBALDEFS += -D_DEBUG \

 endif
 endif
 (以下略)

 ※多分ifneq ($(COM),MSC)ではなくifeq ($(COM),MSC)が正しいと思われるため、
 ここを修正してビルドしてみます。

 以上です。


 2013年8月4日 15:05 山田太郎 

Re: [ja-discuss] Window7環境のLibreOffice4.0.3.3でメモリリークを検出する方法、または_DEBUGを有効にする方法について

2013-08-03 スレッド表示 Isamu Mogi
茂木です。

 ■不明点1

環境変数CPPFLAGSに当該マクロを書いて、configureし直しでできます。ただ、
確認はしていませんが外部の依存ライブラリまで影響がいきそうな気がします。
それが嫌な場合はsolenv/gbuild/platform/com_MSC_defs.mkの40行目付近
gb_COMPILERDEFSに手動で追加するのが良いと思います。自動で付加する機能が
みつかればそっちが良いのですが、僕は見つけられなかったです。

 ■不明点2

ここで聞くよりstackoverflowを見るほうがよさそうです。
http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows

valgrindが得意なら、下記コマンドを使うのが良いと思います。

  valgrind --trace-children=yes wine soffice.exe


(2013/08/02 17:14), 山田太郎 wrote:
 お世話になっております。
 
 不明点が2点あり、ご存知の方はご回答をお願い致します。
 
 ■不明点1
 ・メモリリークを検出するために、下記の「ビルド環境」に記載の環境で日本語版LibreOffice4.0.3.3を
 ビルドしたのですが、_DEBUGが有効になっていない様です。
 どなたか解決方法をご存知の方いらっしゃいますでしょうか?
 ※この不明点の質問意図はmsvcrtd.dllを使用したメモリリークチェックを実施する際に_DEBUGが
 有効である必要があるために質問させて頂いております。
 
 ■不明点2
 ・Windows環境で、LibreOfficeのメモリリークを検出する方法(どの行でnewまたはmalloc()した
 メモリが解放されていないかを知る方法)をご存知の方いらっしゃいましたら
 ご回答をお願い致します。
 ※Linux環境であればvalgrindで検出出来るのですが、valgrindはcygwinに対応して
 おりません。
 ※WinDbgやApplication Verifier、パフォーマンスモニター、Performance Analyzer、
 Xperf等も試してみたのですが、使い方に問題があるせいなのか不明ですが
 リークを検出できませんでした。
 
 ■ソースファイル
 http://ja.libreoffice.org/download/?type=srcversion=4.0.3からダウンロードした
 バージョン4.0.3.3ソースファイル
 
 ■ビルド環境
 OS:Windows7(64bit)
 Cygwin:1.7.18(0.263/5/3)
 コンパイラ:Visual Studio 2012 Express for Desktop
 make:LOパッチが当てられたGNU make 3.82
 http://dev-www.libreoffice.org/bin/cygwin/make
 
 ■autogen.shに渡したパラメータ(autogen.lastrun)
 --disable-activex
 --disable-atl
 --with-nss-build-tools=/cygdrive/c/mozilla-build
 --with-ant-home=D:\apache-ant-1.9.0
 --without-junit
 --with-cl-home=C:\PROGRA~2\MICROS~2.0\VC
 --without-help
 --without-myspell-dicts
 --enable-debug
 --enable-dbgutil ←これが有効な場合、_DEBUGが有効になると考えていたのですが、だめでした。
 --with-lang=en-US ja
 
 
 以上、宜しくお願い致します。
 


-- 
Unsubscribe instructions: E-mail to discuss+unsubscr...@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/discuss/
All messages sent to this list will be publicly archived and cannot be deleted