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

2013-08-03 スレッド表示 山田太郎
茂木さん、いつも詳細なご回答ありがとうございます。

■--enable-dbgutilについて

・ChangeLogに「--enable-dbgutil doesn't cause -D_DEBUG any more」と記載されていました。
英語はよくわからないので解釈間違ってるかもしれませんが、恐らく--enable-dbgutilを使用
しても -D_DEBUGは有効にならない様ですね。

■環境変数CPPFLAGSについて

・autogen.shのオプションに環境変数が渡せた事を忘れていました。以下の設定で、現在ビルドを
行なっています。結果は後ほどご報告させて頂きます。

◆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
--with-lang=en-US ja
CPPFLAGS=-D_DEBUG

■外部の依存ライブラリへの影響について

・「外部の依存ライブラリ」がExternalモジュールを指しているとしてご回答させて頂きます。
各Externalモジュールのメイクファイル(ExternalProject_モジュール名.mk)は以下の様に
なっています。
ifeq ($(VCVER),110)
(中略)
&& MAKEFLAGS= MSBuild.exe ソリューションファイル名またはvcxprojファイル名
/t:Build /p:Configuration=Release /p:PlatformToolset=v110 \
(以下略)
つまり常にReleaseモードでビルドされます。
全てDebugモードでビルドしたい所ですが、とりあえずExternalモジュールはRelease
モードのままでビルドしています。
※ /p:Configuration=Debugにすると、さらにMakefileの修正
(例えばpython3モジュールの場合、ExternalPackage_python3.mkのライブラリ名やlib名
に_dを付加する必要あり)
が必要となりますし、過去に試してみたのですが、Externalモジュールがビルドに失敗して
しまいます(例えばpython3モジュールの場合LO_lib/python3_d.dllやLO_lib/python3_d.libが
無いため失敗します)。

影響が有るか無いかについては、後ほどご報告させて頂きます。

■gb_COMPILERDEFSへの追加について

・こちらも後でトライしてみます。

■メモリリークチェック方法について

・教えて頂いたURLに記載の内容を1つずつ試してみます。
※結果報告に時間が掛かるかもしれませんがご容赦願います。

■wineの使用について

・こちらも後でトライしてみます。現在LibreOfficeのカスタマイズ案件の対応中なのですが
wineでの検証結果でクライアント様が納得するか不安なので、最終手段として検証
してみます。

以上です。




2013年8月3日 22:39 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=src&version=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



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=src&version=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